| 
| void  | numeric::kinematic_closure::initialize_sturm (double *tol_secant, int *max_iter_sturm, int *max_iter_secant) | 
|   | 
| double  | numeric::kinematic_closure::hyper_tan (double a, double x) | 
|   | 
| int  | numeric::kinematic_closure::modp (poly *u, poly *v, poly *r) | 
|   | 
| int  | numeric::kinematic_closure::buildsturm (int ord, poly *sseq) | 
|   | 
| int  | numeric::kinematic_closure::numroots (int np, poly *sseq, int *atneg, int *atpos) | 
|   | 
| double  | numeric::kinematic_closure::evalpoly (int ord, double *coef, double x) | 
|   | 
| int  | numeric::kinematic_closure::numchanges (int np, poly *sseq, double a) | 
|   | 
| int  | numeric::kinematic_closure::modrf (int ord, double *coef, double a, double b, double *val) | 
|   | 
| void  | numeric::kinematic_closure::sbisect (int np, poly *sseq, double min, double max, int atmin, int atmax, double *roots) | 
|   | 
| void  | numeric::kinematic_closure::solve_sturm (const int &p_order, int &n_root, const utility::vector1< double > &poly_coeffs, utility::vector1< double > &roots) | 
|   | 
implements sturm chain solver 
- Author
 - Daniel J. Mandell