38 #ifndef FCL_NARROWPHASE_DETAIL_POLYSOLVER_INL_H 
   39 #define FCL_NARROWPHASE_DETAIL_POLYSOLVER_INL_H 
   74     return solveLinear(c, s);
 
   77   p = c[1] / (2.0 * c[2]);
 
  102 template <
typename S>
 
  106   S sub, A, B, C, sq_A, p, q, cb_p, D;
 
  107   const S ONE_OVER_THREE = 1 / 3.0;
 
  108   const S PI = 3.14159265358979323846;
 
  112     return solveQuadric(c, s);
 
  121   p = (-ONE_OVER_THREE * sq_A + B) * ONE_OVER_THREE;
 
  122   q = 0.5 * (2.0 / 27.0 * A * sq_A - ONE_OVER_THREE * A * B + C);
 
  150       S phi = ONE_OVER_THREE * acos(-q / sqrt(-cb_p));
 
  151       S t = 2.0 * sqrt(-p);
 
  153       s[1] = -t * cos(phi + PI / 3.0);
 
  154       s[2] = -t * cos(phi - PI / 3.0);
 
  161       S u = cbrt(sqrt_D + fabs(q));
 
  171   sub = ONE_OVER_THREE * A;
 
  172   for(i = 0; i < num; i++)
 
  178 template <
typename S>
 
  181   return (v < getNearZeroThreshold()) && (v > -getNearZeroThreshold());
 
  185 template <
typename S>
 
  188   return std::pow(v, 1.0 / 3.0);
 
  192 template <
typename S>