| 179 | 
  | 
      Real ad1, ad2, ad3;     | 
| 180 | 
  | 
      t = this->data_[0][0] + this->data_[1][1] + this->data_[2][2] + 1.0; | 
| 181 | 
  | 
 | 
| 182 | 
< | 
      if( t > 0.0 ){ | 
| 182 | 
> | 
      if( t > NumericConstant::epsilon ){ | 
| 183 | 
  | 
 | 
| 184 | 
  | 
        s = 0.5 / sqrt( t ); | 
| 185 | 
  | 
        q[0] = 0.25 / s; | 
| 316 | 
  | 
 | 
| 317 | 
  | 
      m /= det; | 
| 318 | 
  | 
      return m; | 
| 319 | 
+ | 
    } | 
| 320 | 
+ | 
 | 
| 321 | 
+ | 
    SquareMatrix3<Real> transpose() const{ | 
| 322 | 
+ | 
      SquareMatrix3<Real> result; | 
| 323 | 
+ | 
                 | 
| 324 | 
+ | 
      for (unsigned int i = 0; i < 3; i++) | 
| 325 | 
+ | 
        for (unsigned int j = 0; j < 3; j++)               | 
| 326 | 
+ | 
          result(j, i) = this->data_[i][j]; | 
| 327 | 
+ | 
 | 
| 328 | 
+ | 
      return result; | 
| 329 | 
  | 
    } | 
| 330 | 
  | 
    /** | 
| 331 | 
  | 
     * Extract the eigenvalues and eigenvectors from a 3x3 matrix. |