24#define MPS_SECULAR_EQUATION(t) (MPS_POLYNOMIAL_CAST (mps_secular_equation, t))
25#define MPS_IS_SECULAR_EQUATION(t) (mps_polynomial_check_type (t, "mps_secular_equation"))
35#define MPS_SECULAR_STARTING_MP_PRECISION 128
43#define MPS_SECULAR_EQUIVALENT_FP_PRECISION (MPS_SECULAR_STARTING_MP_PRECISION / 2)
251#define mps_secular_equation_from_status(s) (mps_secular_equation*)(s)->secular_equation
259mps_boolean mps_secular_ga_regenerate_coefficients (
mps_context * s);
264void mps_secular_check_data (
mps_context * s,
char *which_case);
268void mps_secular_switch_phase (
mps_context * s, mps_phase phase);
272void mps_secular_raise_precision (
mps_context * s,
int wp);
274void mps_secular_raise_root_precision (
mps_context * s,
int wp);
282int mps_secular_ga_fiterate (
mps_context * s,
int maxit, mps_boolean just_regenerated);
284int mps_secular_ga_diterate (
mps_context * s,
int maxit, mps_boolean just_regenerated);
286int mps_secular_ga_miterate (
mps_context * s,
int maxit, mps_boolean just_regenerated);
289mps_boolean mps_secular_ga_check_stop (
mps_context * s);
291void mps_secular_ga_update_coefficients (
mps_context * s);
297 unsigned long int n);
300 unsigned long int n);
309mps_boolean mps_secular_poly_feval_with_error (
mps_context * ctx,
mps_polynomial * p, cplx_t x, cplx_t value,
double * error);
311mps_boolean mps_secular_poly_deval_with_error (
mps_context * ctx,
mps_polynomial * p, cdpe_t x, cdpe_t value, rdpe_t error);
313mps_boolean mps_secular_poly_meval_with_error (
mps_context * ctx,
mps_polynomial * p, mpc_t x, mpc_t value, rdpe_t error);
322 mps_structure structure, mps_density density,
Definition approximation.h:24
this struct holds the state of the mps computation
Definition context.h:60
Struct that represents an abstract polynomial. All the other real polynomial implementations (such as...
Definition polynomial.h:111
Definition secular-equation.h:45
Secular equation data.
Definition secular-equation.h:63
pthread_mutex_t * ampc_mutex
Mutexes thatn need to be locked to ensure consistent access to ampc[j] variable.
Definition secular-equation.h:102
mpq_t * initial_bmpqrc
Initial rational coefficients, if rational input is selected. This value is the real part of the coe...
Definition secular-equation.h:162
mpc_t * bmpc
Same as bfpc, but the multiprecision version.
Definition secular-equation.h:108
mpc_t * ampc
Same as afpc, but the multiprecision version.
Definition secular-equation.h:96
mpc_t * initial_ampc
Initial multiprecision coefficients saved for latter regeneration in mps_secular_ga_regenerate_coeffi...
Definition secular-equation.h:144
rdpe_t * aadpc
DPE Moduli of the CDPE of Multiprecision a_i coefficients of the secular equation.
Definition secular-equation.h:132
cdpe_t * bdpc
Same as bfpc, but the dpe version.
Definition secular-equation.h:90
pthread_mutex_t * bmpc_mutex
Mutexes that need to be locked to ensure consistent access to bmpc[j] variable.
Definition secular-equation.h:114
rdpe_t * abdpc
DPE Moduli of the CDPE of Multiprecision b_i coefficients of the secular equation.
Definition secular-equation.h:138
cplx_t * bfpc
Vector with the values of as complex floating point numbers.
Definition secular-equation.h:84
cplx_t * afpc
Vector of as complex floating point numbers.
Definition secular-equation.h:72
mpq_t * initial_bmpqic
Initial rational coefficients, if rational input is selected. This value is the imaginary part of the...
Definition secular-equation.h:174
pthread_mutex_t precision_mutex
This mutex is locked while changing precision.
Definition secular-equation.h:179
double * abfpc
Moduli of the floating point b_i coefficients of the secular equation.
Definition secular-equation.h:126
mpc_t * initial_bmpc
Initial multiprecision coefficients saved for latter regeneration in mps_secular_ga_regenerate_coeffi...
Definition secular-equation.h:150
mpq_t * initial_ampqrc
Initial rational coefficients, if rational input is selected. This value is the real part of the coe...
Definition secular-equation.h:156
mpq_t * initial_ampqic
Initial rational coefficients, if rational input is selected. This value is the imaginary part of the...
Definition secular-equation.h:168
cdpe_t * adpc
Same as afpc, but the dpe version.
Definition secular-equation.h:78
double * aafpc
Moduli of the floating point a_i coefficients of the secular equation.
Definition secular-equation.h:120
This is a struct that represent an iteration on a root. It contains information that could be useful ...
Definition secular-equation.h:189
cdpe_t * local_bdpc
Thread local copy of the CDPE coefficients of the secular equation.
Definition secular-equation.h:244
cplx_t * local_bfpc
Thread local copy of the floating point coefficients of the secular equation.
Definition secular-equation.h:232
long int k
The index of the roots on which the iterations is being carried out.
Definition secular-equation.h:194
pthread_mutex_t * gs_mutex
Global mutex used to synchronization, but mainly while testing new MP implementations.
Definition secular-equation.h:208
mpc_t * local_bmpc
Thread local copy of the coefficients of the secular equation.
Definition secular-equation.h:220
mps_boolean radius_set
The state of the iteration. This is a pointer to a boolean that tells if the iterator has been able t...
Definition secular-equation.h:202
cdpe_t * local_adpc
Thread local copy of the CDPE coefficients of the secular equation.
Definition secular-equation.h:238
mpc_t * local_ampc
Thread local copy of the coefficients of the secular equation.
Definition secular-equation.h:214
cplx_t * local_afpc
Thread local copy of the floating point coefficients of the secular equation.
Definition secular-equation.h:226