------------------------------------------------------------------------------
| 584 | |
| 585 | //------------------------------------------------------------------------------ |
| 586 | static void vtkPCAStatisticsNormalizeVariance(vtkVariantArray* normData, Eigen::MatrixXd& cov) |
| 587 | { |
| 588 | vtkIdType i, j; |
| 589 | vtkIdType m = cov.rows(); |
| 590 | for (i = 0; i < m; ++i) |
| 591 | { |
| 592 | normData->InsertNextValue(cov(i, i)); |
| 593 | double norm = sqrt(cov(i, i)); |
| 594 | // normalization factor applied down and to the right. |
| 595 | for (j = i + 1; j < m; ++j) |
| 596 | { |
| 597 | cov(i, j) /= norm; |
| 598 | cov(j, i) /= norm; |
| 599 | } |
| 600 | // normalization factor applied up and to the left. |
| 601 | for (j = 0; j < i; ++j) |
| 602 | { |
| 603 | cov(i, j) /= norm; |
| 604 | cov(j, i) /= norm; |
| 605 | } |
| 606 | cov(i, i) = 1.; |
| 607 | } |
| 608 | } |
| 609 | |
| 610 | //------------------------------------------------------------------------------ |
| 611 | void vtkPCAStatistics::Derive(vtkStatisticalModel* inMeta) |
no test coverage detected