Defines | |
#define | IRPLIB_SWAP(a, b) { const double t=(a);(a)=(b);(b)=t; } |
#define | irplib_trace() |
Functions | |
static double | irplib_polynomial_eval_2_max (double p2, double p1, double p0, cpl_boolean is_c, double x1, double x2) |
Find the max residual on a 2nd degree 1D-polynomial on the roots. | |
static double | irplib_polynomial_eval_3_max (double p3, double p2, double p1, double p0, cpl_boolean is_c, double x1, double x2, double x3) |
Find the max residual on a 3rd degree 1D-polynomial on the roots. | |
static cpl_boolean | irplib_polynomial_solve_1d_2 (double, double, double, double *, double *) |
static cpl_boolean | irplib_polynomial_solve_1d_3 (double, double, double, double, double *, double *, double *, cpl_boolean *, cpl_boolean *) |
static void | irplib_polynomial_solve_1d_31 (double, double, double *, double *, double *, cpl_boolean *) |
static void | irplib_polynomial_solve_1d_32 (double, double, double, double *, double *, double *, cpl_boolean *) |
static void | irplib_polynomial_solve_1d_3r (double, double, double, double, double *, double *, double *) |
static void | irplib_polynomial_solve_1d_3c (double, double, double, double, double, double, double *, double *, double *, cpl_boolean *, cpl_boolean *) |
static cpl_error_code | irplib_polynomial_solve_1d_4 (double, double, double, double, double, int *, double *, double *, double *, double *) |
static cpl_error_code | irplib_polynomial_solve_1d_nonzero (cpl_polynomial *, cpl_vector *, int *) |
static cpl_error_code | irplib_polynomial_divide_1d_root (cpl_polynomial *, double, double *) |
cpl_error_code | irplib_polynomial_add (cpl_polynomial *self, const cpl_polynomial *first, const cpl_polynomial *second) |
Add two polynomials of the same dimension. | |
cpl_error_code | irplib_polynomial_subtract (cpl_polynomial *self, const cpl_polynomial *first, const cpl_polynomial *second) |
Subtract two polynomials of the same dimension. | |
cpl_error_code | irplib_polynomial_multiply_scalar (cpl_polynomial *self, double factor) |
Multiply a polynomial with a scalar. | |
cpl_error_code | irplib_polynomial_solve_1d_all (const cpl_polynomial *self, cpl_vector *roots, int *preal) |
Compute all n roots of p(x) = 0, where p(x) is of degree n, n > 0. |
static double irplib_polynomial_eval_2_max | ( | double | p2, | |
double | p1, | |||
double | p0, | |||
cpl_boolean | is_c, | |||
double | x1, | |||
double | x2 | |||
) | [static] |
Find the max residual on a 2nd degree 1D-polynomial on the roots.
p2 | p2 | |
p1 | p1 | |
p0 | p0 | |
is_c | CPL_TRUE iff the two roots are complex | |
x1 | The 1st point of evaluation (or real part on complex) | |
x2 | The 2nd point of evaluation (or imaginary part on complex) |
Definition at line 600 of file irplib_polynomial.c.
static double irplib_polynomial_eval_3_max | ( | double | p3, | |
double | p2, | |||
double | p1, | |||
double | p0, | |||
cpl_boolean | is_c, | |||
double | x1, | |||
double | x2, | |||
double | x3 | |||
) | [static] |
Find the max residual on a 3rd degree 1D-polynomial on the roots.
p3 | p3 | |
p2 | p2 | |
p1 | p1 | |
p0 | p0 | |
is_c | CPL_TRUE iff two roots are complex | |
x1 | The 1st point of evaluation (real) | |
x2 | The 2nd point of evaluation (or real part on complex) | |
x3 | The 3rd point of evaluation (or imaginary part on complex) |
Definition at line 637 of file irplib_polynomial.c.
cpl_error_code irplib_polynomial_add | ( | cpl_polynomial * | self, | |
const cpl_polynomial * | first, | |||
const cpl_polynomial * | second | |||
) |
Add two polynomials of the same dimension.
self | The polynomial to hold the result | |
first | The 1st polynomial to add | |
second | The 2nd polynomial to add |
Definition at line 132 of file irplib_polynomial.c.
cpl_error_code irplib_polynomial_subtract | ( | cpl_polynomial * | self, | |
const cpl_polynomial * | first, | |||
const cpl_polynomial * | second | |||
) |
Subtract two polynomials of the same dimension.
self | The polynomial to hold the result | |
first | The polynomial to subtract from | |
second | The polynomial to subtract |
Definition at line 193 of file irplib_polynomial.c.
cpl_error_code irplib_polynomial_multiply_scalar | ( | cpl_polynomial * | self, | |
double | factor | |||
) |
Multiply a polynomial with a scalar.
self | The polynomial to hold the result | |
factor | The factor to multiply with |
Definition at line 250 of file irplib_polynomial.c.
cpl_error_code irplib_polynomial_solve_1d_all | ( | const cpl_polynomial * | self, | |
cpl_vector * | roots, | |||
int * | preal | |||
) |
Compute all n roots of p(x) = 0, where p(x) is of degree n, n > 0.
self | The 1D-polynomial | |
roots | A pre-allocated vector of length n to hold the roots | |
preal | The number of real roots found, or undefined on error |
Possible CPL error code set in this function:
Definition at line 298 of file irplib_polynomial.c.