11 #pragma implementation 
   26 static inline double safe_acos (
double x) {
 
   27   if (std::abs(x) <= 1.0) 
return std::acos(x);
 
   28   return ( (x>0) ? 0 : CLHEP::pi );
 
   32         its_d(proper(ddelta)), its_s(std::sin(ddelta)), its_c(std::cos(ddelta))
 
   67   return (
yx() == 0.0 && 
xx() == 0.0) ? 0.0 : std::atan2(
yx(),
xx());
 
   72   return (
yy() == 0.0 && 
xy() == 0.0) ? 0.0 : std::atan2(
yy(),
xy());
 
   76   return (
yz() == 0.0 && 
xz() == 0.0) ? 0.0 : std::atan2(
yz(),
xz());
 
   81   return safe_acos(
zx());
 
   86   return safe_acos(
zy());
 
   91   return safe_acos(
zz());  
 
  102   rotation = axisAngle();
 
  108   rotation = axisAngle();
 
  125   return (answer >= 0) ? answer : 0;
 
  129   double sum =    
xx() * r.
xx() + 
xy() * r.
xy()
 
  132   double answer = 3.0 - sum;
 
  133   return (answer >= 0 ) ? answer : 0;
 
  140   double bet = b.
beta();
 
  141   double bet2 = bet*bet;
 
  163   return (
distance2(r) <= epsilon*epsilon);
 
  166   return (
distance2(r) <= epsilon*epsilon);
 
  169   return (
distance2(lt) <= epsilon*epsilon);
 
  172                                      double epsilon)
 const {
 
  173   return (
distance2(lt) <= epsilon*epsilon);
 
  177   return 2.0 - 2.0 * 
its_c;
 
  181   os << 
"\nRotation about Z (" << 
its_d <<
 
  182                 ") [cos d = " << 
its_c << 
" sin d = " << 
its_s << 
"]\n";