Solves for roots of system of real polynomials. More...
#include <vnl_rnpoly_solve.h>
Public Member Functions | |
vnl_rnpoly_solve (vcl_vector< vnl_real_npolynomial * > const &ps) | |
The constructor already does all the calculations. | |
~vnl_rnpoly_solve () | |
vcl_vector< vnl_vector< double > * > | real () |
Array of real parts of roots. | |
vcl_vector< vnl_vector< double > * > | imag () |
Array of imaginary parts of roots. | |
vcl_vector< vnl_vector< double > * > | realroots (double tol=1e-12) |
Return real roots only. | |
Private Member Functions | |
bool | compute () |
Compute roots using continuation algorithm. | |
void | Read_Input (vcl_vector< unsigned int > &ideg, vcl_vector< unsigned int > &terms, vcl_vector< int > &polyn, vcl_vector< double > &coeff) |
This will read the input polynomials from a data file. | |
Private Attributes | |
vcl_vector < vnl_real_npolynomial * > | ps_ |
vcl_vector< vnl_vector< double > * > | r_ |
vcl_vector< vnl_vector< double > * > | i_ |
Solves for roots of system of real polynomials.
Calculates all the roots of a system of N polynomials in N variables through continuation. Adapted from the PARALLEL CONTINUATION algorithm, written by Darrell Stam, 1991, and further improved by Kriegman and Ponce, 1992.
Definition at line 32 of file vnl_rnpoly_solve.h.
vnl_rnpoly_solve::vnl_rnpoly_solve | ( | vcl_vector< vnl_real_npolynomial * > const & | ps | ) | [inline] |
The constructor already does all the calculations.
Definition at line 44 of file vnl_rnpoly_solve.h.
vnl_rnpoly_solve::~vnl_rnpoly_solve | ( | ) |
Definition at line 763 of file vnl_rnpoly_solve.cxx.
bool vnl_rnpoly_solve::compute | ( | ) | [private] |
Compute roots using continuation algorithm.
Definition at line 769 of file vnl_rnpoly_solve.cxx.
vcl_vector<vnl_vector<double>*> vnl_rnpoly_solve::imag | ( | ) | [inline] |
Array of imaginary parts of roots.
Definition at line 57 of file vnl_rnpoly_solve.h.
void vnl_rnpoly_solve::Read_Input | ( | vcl_vector< unsigned int > & | ideg, |
vcl_vector< unsigned int > & | terms, | ||
vcl_vector< int > & | polyn, | ||
vcl_vector< double > & | coeff | ||
) | [private] |
This will read the input polynomials from a data file.
Definition at line 725 of file vnl_rnpoly_solve.cxx.
vcl_vector<vnl_vector<double>*> vnl_rnpoly_solve::real | ( | ) | [inline] |
Array of real parts of roots.
Definition at line 54 of file vnl_rnpoly_solve.h.
vcl_vector< vnl_vector< double > * > vnl_rnpoly_solve::realroots | ( | double | tol = 1e-12 | ) |
Return real roots only.
Roots are real if the absolute value of their imaginary part is less than the optional argument tol, which defaults to 1e-12 [untested]
Definition at line 61 of file vnl_rnpoly_solve.cxx.
vcl_vector<vnl_vector<double>*> vnl_rnpoly_solve::i_ [private] |
Definition at line 37 of file vnl_rnpoly_solve.h.
vcl_vector<vnl_real_npolynomial*> vnl_rnpoly_solve::ps_ [private] |
Definition at line 35 of file vnl_rnpoly_solve.h.
vcl_vector<vnl_vector<double>*> vnl_rnpoly_solve::r_ [private] |
Definition at line 36 of file vnl_rnpoly_solve.h.