EgtGeomKernel 1.6w3 :
- correzioni nell'intersezione di archi tangenti o quasi - pulizia uso distanze e relative costanti minime.
This commit is contained in:
+5
-5
@@ -91,18 +91,18 @@ PointsPCA::Finalize( void)
|
||||
// se l'autovalore corrente è il più grande in modulo
|
||||
if ( fabs( es.eigenvalues()(i)) >= fabs( es.eigenvalues()(j)) &&
|
||||
fabs( es.eigenvalues()(i)) >= fabs( es.eigenvalues()(k)) &&
|
||||
fabs( es.eigenvalues()(i)) > EPS_SMALL * EPS_SMALL) {
|
||||
fabs( es.eigenvalues()(i)) > SQ_EPS_SMALL) {
|
||||
// il suo autovettore è il primo
|
||||
++ m_nRank ;
|
||||
m_vtPC[0].Set( es.eigenvectors()(0,i), es.eigenvectors()(1,i), es.eigenvectors()(2,i)) ;
|
||||
// se il successivo autovalore è maggiore del rimanente in modulo
|
||||
if ( fabs( es.eigenvalues()(j)) >= fabs(es.eigenvalues()(k)) &&
|
||||
fabs( es.eigenvalues()(j)) > EPS_SMALL * EPS_SMALL) {
|
||||
fabs( es.eigenvalues()(j)) > SQ_EPS_SMALL) {
|
||||
// il suo autovettore è il secondo
|
||||
++ m_nRank ;
|
||||
m_vtPC[1].Set( es.eigenvectors()(0,j), es.eigenvectors()(1,j), es.eigenvectors()(2,j)) ;
|
||||
// se il rimanente autovalore è non nullo
|
||||
if ( fabs( es.eigenvalues()(k)) > EPS_SMALL * EPS_SMALL) {
|
||||
if ( fabs( es.eigenvalues()(k)) > SQ_EPS_SMALL) {
|
||||
// il suo autovettore è il terzo
|
||||
++ m_nRank ;
|
||||
m_vtPC[2].Set( es.eigenvectors()(0,k), es.eigenvectors()(1,k), es.eigenvectors()(2,k)) ;
|
||||
@@ -110,12 +110,12 @@ PointsPCA::Finalize( void)
|
||||
}
|
||||
// altrimenti, se il rimanente autovalore è maggiore del successivo in modulo
|
||||
else if ( fabs( es.eigenvalues()(k)) >= fabs( es.eigenvalues()(j)) &&
|
||||
fabs( es.eigenvalues()(k)) > EPS_SMALL * EPS_SMALL) {
|
||||
fabs( es.eigenvalues()(k)) > SQ_EPS_SMALL) {
|
||||
// il suo autovettore è il secondo
|
||||
++ m_nRank ;
|
||||
m_vtPC[1].Set( es.eigenvectors()(0,k), es.eigenvectors()(1,k), es.eigenvectors()(2,k)) ;
|
||||
// se il rimanente autovalore è non nullo
|
||||
if ( fabs( es.eigenvalues()(j)) > EPS_SMALL * EPS_SMALL) {
|
||||
if ( fabs( es.eigenvalues()(j)) > SQ_EPS_SMALL) {
|
||||
// il suo autovettore è il terzo
|
||||
++ m_nRank ;
|
||||
m_vtPC[2].Set( es.eigenvectors()(0,j), es.eigenvectors()(1,j), es.eigenvectors()(2,j)) ;
|
||||
|
||||
Reference in New Issue
Block a user