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