Auxiliary class for quaternion computation.  
 More...
Auxiliary class for quaternion computation. 
Definition at line 233 of file JSVD3D.hh.
 
  
  
      
        
          | JMATH::JSVD3D::JQuaternion::JQuaternion  | 
          ( | 
          JMatrix3S &  | 
          S | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Constructor. 
Finds transformation that diagonalizes the given symmetric matrix by using Jacobi eigen analysis.
- Parameters
 - 
  
  
 
Definition at line 243 of file JSVD3D.hh.
  252         for (
int i = 0; i != 4; ++i) {
 
void conjugate(const int x, const int y, const int z, JMatrix3S &S)
Get conjugate of symmetric matrix for given order. 
 
 
 
 
  
  
      
        
          | void JMATH::JSVD3D::JQuaternion::conjugate  | 
          ( | 
          const int  | 
          x,  | 
         
        
           | 
           | 
          const int  | 
          y,  | 
         
        
           | 
           | 
          const int  | 
          z,  | 
         
        
           | 
           | 
          JMatrix3S &  | 
          S  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineprivate   | 
  
 
Get conjugate of symmetric matrix for given order. 
- Parameters
 - 
  
    | x | 1st index  | 
    | y | 2nd index  | 
    | z | 3rd index  | 
    | S | matrix  | 
  
   
Definition at line 274 of file JSVD3D.hh.
  279         static const double GAMMA  =  sqrt(8.0) + 3.0;
 
  280         static const double CSTAR  =  cos(
PI/8.0);
 
  281         static const double SSTAR  =  sin(
PI/8.0);
 
  285         double ch = 2.0*(S.
a00 - S.
a11);
 
  288         if (GAMMA*sh*sh < ch*ch) {
 
  290           const double w = 1.0 / sqrt(ch*ch+sh*sh);
 
  301         const double scale =  ch*ch + sh*sh;
 
  302         const double a     = (ch+sh)*(ch-sh) / 
scale;
 
  303         const double b     = (2.0*sh*ch)     / scale;
 
  308         double s10 = S.
a10;  
double s11 = S.
a11;
 
  309         double s20 = S.
a20;  
double s21 = S.
a21;  
double s22 = S.
a22;
 
  314         S.
a00 =  a*( a*s00 + b*s10) + b*( a*s10 + b*s11);
 
  315         S.
a10 =  a*(-b*s00 + a*s10) + b*(-b*s10 + a*s11);
 
  316         S.
a11 = -b*(-b*s00 + a*s10) + a*(-b*s10 + a*s11);
 
  317         S.
a20 =  a*s20 + b*s21;
 
  318         S.
a21 = -b*s20 + a*s21;
 
  340         (*this)[3] -= tmp[z]; 
 
  341         (*this)[
x] += tmp[y];
 
  342         (*this)[y] -= tmp[
x];
 
static const double PI
Mathematical constants. 
 
void scale(vector< double > &v, double c)
scale vector content 
 
 
 
 
The documentation for this struct was generated from the following file: