OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
This class manages and solves an equation of the fourth degree. More...
#include <Equation.h>
Public Member Functions | |
Equation () | |
Constructor. More... | |
~Equation () | |
Destructor. More... | |
Equation (const Equation &rhs) | |
Equation & | operator= (const Equation &rhs) |
Equation (int degree, std::complex< double > *coefficients) | |
void | CreateEquation (int degree, std::complex< double > *coefficients) |
void | Solve () |
int | get_nbrSol () const |
const std::complex< double > * | get_solutions () const |
std::vector< int > | get_order () const |
Protected Member Functions | |
void | ComputeTrueDegree () |
void | Normalisation () |
void | DeNormalisation () |
Protected Attributes | |
std::complex< double > * | _coefficients |
Equation coefficients. More... | |
int | _degree |
Equation degree. More... | |
int | _nbrSol |
std::vector< int > | _order |
std::complex< double > * | _solutions |
Static Protected Attributes | |
static const double | Epsilon = 1.e-12 |
Private Types | |
enum | NormalisationType { GreatValues, SmallValues } |
Private Member Functions | |
void | Solve1 () |
void | Solve2 () |
void | Solve3 (int d4=0) |
void | Solve4 () |
std::complex< double > | Proche (std::complex< double > z, double epsilon) |
?? More... | |
int | TestDegree3Triple (std::complex< double > *a, double epsilon) |
Tests whether a triple root exists in a third degree equation. More... | |
int | TestDegree3SimpleDouble (std::complex< double > *a, double epsilon) |
Tests whether a double root and a simple root exist in a third degree equation. More... | |
int | IndiceMin (int n, double *list) |
Returns the index of the smaller list element. More... | |
int | IndiceMax (int n, double *list) |
Returns the index of the greater list element. More... | |
int | TestDegree4Quad (std::complex< double > *a, double epsilon) |
Tests whether a quadruple root exists in a fourth degree equation. More... | |
int | TestDegree4DoubleDouble (std::complex< double > *a, std::complex< double > *k, double epsilon) |
Tests whether two double roots exist in a fourth degree equation. More... | |
int | TestDegree4SimpleTriple (std::complex< double > *a, std::complex< double > *k, double epsilon) |
Tests whether one simple root and one triple root exist in a fourth degree equation. More... | |
int | TestDegreeSimpleSimpleDouble (std::complex< double > *a, double epsilon) |
Tests whether two simple root and one double root exist in a fourth degree equation. More... | |
Private Attributes | |
NormalisationType | _normalisationType |
double | _normalisationCoefficient |
int | _trueDegree |
This class manages and solves an equation of the fourth degree.
Definition at line 26 of file Equation.h.
|
private |
Enumerator | |
---|---|
GreatValues | |
SmallValues |
Definition at line 85 of file Equation.h.
ossimplugins::Equation::Equation | ( | ) |
Constructor.
Definition at line 20 of file Equation.cpp.
References _order.
ossimplugins::Equation::~Equation | ( | ) |
Destructor.
Definition at line 29 of file Equation.cpp.
References _coefficients, and _solutions.
ossimplugins::Equation::Equation | ( | const Equation & | rhs | ) |
Definition at line 68 of file Equation.cpp.
References _coefficients, _degree, and CreateEquation().
ossimplugins::Equation::Equation | ( | int | degree, |
std::complex< double > * | coefficients | ||
) |
Definition at line 37 of file Equation.cpp.
References _order, and CreateEquation().
|
protected |
Definition at line 79 of file Equation.cpp.
References _coefficients, _degree, _trueDegree, and abs.
Referenced by Solve().
void ossimplugins::Equation::CreateEquation | ( | int | degree, |
std::complex< double > * | coefficients | ||
) |
Definition at line 47 of file Equation.cpp.
References _coefficients, _degree, _order, and _solutions.
Referenced by Equation(), and operator=().
|
protected |
Definition at line 149 of file Equation.cpp.
References _nbrSol, _normalisationCoefficient, _normalisationType, _solutions, and GreatValues.
Referenced by Solve().
|
inline |
Definition at line 48 of file Equation.h.
Referenced by ossimplugins::SarSensor::localisationSAR().
|
inline |
Definition at line 58 of file Equation.h.
|
inline |
Definition at line 53 of file Equation.h.
Referenced by ossimplugins::SarSensor::localisationSAR(), and Solve4().
|
private |
Returns the index of the greater list element.
Definition at line 804 of file Equation.cpp.
References n.
Referenced by Solve4(), TestDegree3SimpleDouble(), TestDegree4DoubleDouble(), TestDegree4SimpleTriple(), and TestDegreeSimpleSimpleDouble().
|
private |
Returns the index of the smaller list element.
Definition at line 785 of file Equation.cpp.
References n.
Referenced by Solve3(), and Solve4().
|
protected |
Definition at line 90 of file Equation.cpp.
References _coefficients, _normalisationCoefficient, _normalisationType, _trueDegree, abs, Epsilon, GreatValues, and SmallValues.
Referenced by Solve().
Definition at line 73 of file Equation.cpp.
References _coefficients, _degree, and CreateEquation().
|
private |
void ossimplugins::Equation::Solve | ( | ) |
Definition at line 195 of file Equation.cpp.
References _trueDegree, ComputeTrueDegree(), DeNormalisation(), Normalisation(), Solve1(), Solve2(), Solve3(), and Solve4().
Referenced by ossimplugins::SarSensor::localisationSAR().
|
private |
Definition at line 219 of file Equation.cpp.
References _coefficients, _nbrSol, _order, _solutions, Epsilon, and Proche().
Referenced by Solve().
|
private |
Definition at line 234 of file Equation.cpp.
References _coefficients, _nbrSol, _order, _solutions, abs, Epsilon, and Proche().
Referenced by Solve().
|
private |
Definition at line 300 of file Equation.cpp.
References _coefficients, _nbrSol, _order, _solutions, abs, Epsilon, IndiceMin(), Proche(), TestDegree3SimpleDouble(), and TestDegree3Triple().
Referenced by Solve(), and Solve4().
|
private |
Definition at line 458 of file Equation.cpp.
References _coefficients, _nbrSol, _order, _solutions, abs, Epsilon, get_solutions(), IndiceMax(), IndiceMin(), Proche(), Solve3(), TestDegree4DoubleDouble(), TestDegree4Quad(), TestDegree4SimpleTriple(), TestDegreeSimpleSimpleDouble(), x, and y.
Referenced by Solve().
|
private |
Tests whether a double root and a simple root exist in a third degree equation.
Definition at line 758 of file Equation.cpp.
References abs, and IndiceMax().
Referenced by Solve3().
|
private |
Tests whether a triple root exists in a third degree equation.
Definition at line 733 of file Equation.cpp.
References abs.
Referenced by Solve3().
|
private |
Tests whether two double roots exist in a fourth degree equation.
Definition at line 833 of file Equation.cpp.
References abs, and IndiceMax().
Referenced by Solve4().
|
private |
Tests whether a quadruple root exists in a fourth degree equation.
Definition at line 822 of file Equation.cpp.
References abs.
Referenced by Solve4().
|
private |
Tests whether one simple root and one triple root exist in a fourth degree equation.
Definition at line 865 of file Equation.cpp.
References abs, and IndiceMax().
Referenced by Solve4().
|
private |
Tests whether two simple root and one double root exist in a fourth degree equation.
Definition at line 903 of file Equation.cpp.
References abs, and IndiceMax().
Referenced by Solve4().
|
protected |
Equation coefficients.
Definition at line 61 of file Equation.h.
Referenced by ComputeTrueDegree(), CreateEquation(), Equation(), Normalisation(), operator=(), Solve1(), Solve2(), Solve3(), Solve4(), and ~Equation().
|
protected |
Equation degree.
Definition at line 72 of file Equation.h.
Referenced by ComputeTrueDegree(), CreateEquation(), Equation(), and operator=().
|
protected |
Definition at line 80 of file Equation.h.
Referenced by DeNormalisation(), Solve1(), Solve2(), Solve3(), and Solve4().
|
private |
Definition at line 92 of file Equation.h.
Referenced by DeNormalisation(), and Normalisation().
|
private |
Definition at line 91 of file Equation.h.
Referenced by DeNormalisation(), and Normalisation().
|
protected |
Definition at line 81 of file Equation.h.
Referenced by CreateEquation(), Equation(), Solve1(), Solve2(), Solve3(), and Solve4().
|
protected |
Definition at line 82 of file Equation.h.
Referenced by CreateEquation(), DeNormalisation(), Solve1(), Solve2(), Solve3(), Solve4(), and ~Equation().
|
private |
Definition at line 93 of file Equation.h.
Referenced by ComputeTrueDegree(), Normalisation(), and Solve().
|
staticprotected |
Definition at line 78 of file Equation.h.
Referenced by Normalisation(), Solve1(), Solve2(), Solve3(), and Solve4().