| 140 | 
  | 
 | 
| 141 | 
  | 
    //test diagonalize | 
| 142 | 
  | 
 | 
| 143 | 
< | 
    RotMat3x3d m4; | 
| 143 | 
> | 
    RotMat3x3d m4;     | 
| 144 | 
  | 
    RotMat3x3d a; | 
| 145 | 
  | 
    Vector3d w; | 
| 146 | 
< | 
    RotMat3x3d v; | 
| 147 | 
< | 
    m4(0,0) = 1.0; | 
| 148 | 
< | 
    m4(0,1) = 5.0; | 
| 149 | 
< | 
    m4(0,2) = 3.0; | 
| 150 | 
< | 
    m4(1,0) = 3.0; | 
| 151 | 
< | 
    m4(1,1) = 1.0; | 
| 152 | 
< | 
    m4(1,2) = 2.0; | 
| 153 | 
< | 
    m4(2,0) = 0.0; | 
| 154 | 
< | 
    m4(2,1) = -21.0; | 
| 155 | 
< | 
    m4(2,2) = -81.0;  | 
| 156 | 
< | 
    m4.diagonalize(a, w, v); | 
| 146 | 
> | 
    RotMat3x3d m5L; | 
| 147 | 
> | 
    RotMat3x3d m5R; | 
| 148 | 
> | 
    m4(0, 0) = 3.0; | 
| 149 | 
> | 
    m4(0, 1) = 4.0; | 
| 150 | 
> | 
    m4(0, 2) = 5.0; | 
| 151 | 
> | 
    m4(1, 0) = 4.0; | 
| 152 | 
> | 
    m4(1, 1) = 5.0; | 
| 153 | 
> | 
    m4(1, 2) = 6.0;     | 
| 154 | 
> | 
    m4(2, 0) = 5.0; | 
| 155 | 
> | 
    m4(2, 1) = 6.0; | 
| 156 | 
> | 
    m4(2, 2) = 7.0;  | 
| 157 | 
> | 
    a = m4; | 
| 158 | 
> | 
     | 
| 159 | 
> | 
    RotMat3x3d::diagonalize(a, w, m5L); | 
| 160 | 
  | 
 | 
| 161 | 
< | 
    std::cout << std::endl; | 
| 162 | 
< | 
    std::cout << a << std::endl;     | 
| 161 | 
> | 
    m5R(0, 0) = 0.789067 ; | 
| 162 | 
> | 
    m5R(0, 1) = -0.408248; | 
| 163 | 
> | 
    m5R(0, 2) = 0.459028; | 
| 164 | 
> | 
    m5R(1, 0) = 0.090750; | 
| 165 | 
> | 
    m5R(1, 1) = 0.816497; | 
| 166 | 
> | 
    m5R(1, 2) = 0.570173;     | 
| 167 | 
> | 
    m5R(2, 0) = -0.607567; | 
| 168 | 
> | 
    m5R(2, 1) = -0.408248 ; | 
| 169 | 
> | 
    m5R(2, 2) = 0.681319;  | 
| 170 | 
  | 
 | 
| 171 | 
< | 
    std::cout << std::endl; | 
| 162 | 
< | 
    std::cout << w << std::endl;     | 
| 163 | 
< | 
 | 
| 164 | 
< | 
    std::cout << std::endl; | 
| 165 | 
< | 
    std::cout << v << std::endl;     | 
| 166 | 
< | 
 | 
| 171 | 
> | 
    CPPUNIT_ASSERT(m5L == m5R); | 
| 172 | 
  | 
} |