12 #pragma implementation 
   29   register double sinDelta = std::sin(ddelta), cosDelta = std::cos(ddelta);
 
   30   register double oneMinusCosDelta = 1.0 - cosDelta;
 
   34   register double uX = u.
getX();
 
   35   register double uY = u.
getY();
 
   36   register double uZ = u.
getZ();
 
   38   rxx = oneMinusCosDelta * uX * uX  +  cosDelta;
 
   39   rxy = oneMinusCosDelta * uX * uY  -  sinDelta * uZ;
 
   40   rxz = oneMinusCosDelta * uX * uZ  +  sinDelta * uY;
 
   42   ryx = oneMinusCosDelta * uY * uX  +  sinDelta * uZ;
 
   43   ryy = oneMinusCosDelta * uY * uY  +  cosDelta;
 
   44   ryz = oneMinusCosDelta * uY * uZ  -  sinDelta * uX;
 
   46   rzx = oneMinusCosDelta * uZ * uX  -  sinDelta * uY;
 
   47   rzy = oneMinusCosDelta * uZ * uY  +  sinDelta * uX;
 
   48   rzz = oneMinusCosDelta * uZ * uZ  +  cosDelta;
 
   68   double cosdelta = (
rxx + 
ryy + 
rzz - 1.0) / 2.0;
 
   71   } 
else if (cosdelta < -1.0) {
 
   74     return  std::acos( cosdelta ); 
 
   88   if ( (Uz==0) && (Uy==0) && (Ux==0) ) {