32 typedef struct sc_polynom sc_polynom_t;
40 int sc_polynom_degree (
const sc_polynom_t * p);
47 double *sc_polynom_coefficient (sc_polynom_t * p,
int i);
55 const double *sc_polynom_coefficient_const (
const sc_polynom_t * p,
59 void sc_polynom_destroy (sc_polynom_t * p);
62 sc_polynom_t *sc_polynom_new (
void);
67 sc_polynom_t *sc_polynom_new_constant (
double c);
77 sc_polynom_t *sc_polynom_new_lagrange (
int degree,
int which,
78 const double *points);
84 sc_polynom_t *sc_polynom_new_from_coefficients (
int degree,
90 sc_polynom_t *sc_polynom_new_from_polynom (
const sc_polynom_t * q);
91 sc_polynom_t *sc_polynom_new_from_scale (
const sc_polynom_t * q,
92 int exponent,
double factor);
93 sc_polynom_t *sc_polynom_new_from_sum (
const sc_polynom_t * q,
94 const sc_polynom_t * r);
95 sc_polynom_t *sc_polynom_new_from_product (
const sc_polynom_t * q,
96 const sc_polynom_t * r);
105 void sc_polynom_set_degree (sc_polynom_t * p,
int degree);
111 void sc_polynom_set_constant (sc_polynom_t * p,
double value);
117 void sc_polynom_set_polynom (sc_polynom_t * p,
118 const sc_polynom_t * q);
124 void sc_polynom_shift (sc_polynom_t * p,
125 int exponent,
double factor);
131 void sc_polynom_scale (sc_polynom_t * p,
132 int exponent,
double factor);
138 void sc_polynom_add (sc_polynom_t * p,
const sc_polynom_t * q);
144 void sc_polynom_sub (sc_polynom_t * p,
const sc_polynom_t * q);
151 void sc_polynom_AXPY (
double A,
const sc_polynom_t * X,
158 void sc_polynom_multiply (sc_polynom_t * p,
159 const sc_polynom_t * q);
168 double sc_polynom_eval (
const sc_polynom_t * p,
double x);
188 int sc_polynom_roots (
const sc_polynom_t * p,
double *roots);
Support for process management (memory allocation, logging, etc.)