Validated integrator for ODEs based on Taylor models with ellipsoidal remainder term. More...
#include <ellipsoidal_integrator.hpp>
Public Member Functions | |
Tmatrix< Interval > | boundQ () const |
EllipsoidalIntegrator () | |
EllipsoidalIntegrator (const DifferentialEquation &rhs_, const int &N_=3) | |
EllipsoidalIntegrator (const EllipsoidalIntegrator &arg) | |
template<typename T > | |
Tmatrix< Interval > | getStateBound (const Tmatrix< T > &x) const |
returnValue | init (const DifferentialEquation &rhs_, const int &N_=3) |
Tmatrix< Interval > | integrate (double t0, double tf, int M, const Tmatrix< Interval > &x) |
Tmatrix< Interval > | integrate (double t0, double tf, int M, const Tmatrix< Interval > &x, const Tmatrix< Interval > &p) |
Tmatrix< Interval > | integrate (double t0, double tf, int M, const Tmatrix< Interval > &x, const Tmatrix< Interval > &p, const Tmatrix< Interval > &w) |
template<typename T > | |
returnValue | integrate (double t0, double tf, Tmatrix< T > *x, Tmatrix< T > *p=0, Tmatrix< T > *w=0) |
virtual EllipsoidalIntegrator & | operator= (const EllipsoidalIntegrator &arg) |
template<typename T > | |
double | step (const double &t, const double &tf, Tmatrix< T > *x, Tmatrix< T > *p=0, Tmatrix< T > *w=0) |
virtual | ~EllipsoidalIntegrator () |
Private Member Functions | |
template<typename T > | |
Tmatrix< Interval > | bound (const Tmatrix< T > &x) const |
template<typename T > | |
void | center (Tmatrix< T > &x) const |
void | copy (const EllipsoidalIntegrator &arg) |
Tmatrix< Interval > | evalC (const Tmatrix< double > &C, double h) const |
Tmatrix< double > | evalC2 (const Tmatrix< double > &C, double h) const |
template<typename T > | |
Tmatrix< T > | evaluate (Function &f, double t, Tmatrix< T > *x, Tmatrix< T > *p, Tmatrix< T > *w) const |
template<typename T > | |
Tmatrix< T > | evaluate (Function &f, Interval t, Tmatrix< T > *x, Tmatrix< T > *p, Tmatrix< T > *w) const |
template<typename T > | |
Tmatrix< T > | getPolynomial (const Tmatrix< T > &x) const |
template<typename T > | |
Tmatrix< Interval > | getRemainder (const Tmatrix< T > &x) const |
template<typename T > | |
Tmatrix< double > | hat (const Tmatrix< T > &x) const |
BooleanType | isIncluded (const Tmatrix< Interval > &A, const Tmatrix< Interval > &B) const |
double | norm (const Tmatrix< Interval > &E, Tmatrix< Interval > &X) const |
template<typename T > | |
void | phase0 (double t, Tmatrix< T > *x, Tmatrix< T > *p, Tmatrix< T > *w, Tmatrix< T > &coeff, Tmatrix< double > &C) |
template<typename T > | |
double | phase1 (double t, double tf, Tmatrix< T > *x, Tmatrix< T > *p, Tmatrix< T > *w, Tmatrix< T > &coeff, Tmatrix< double > &C) |
template<typename T > | |
void | phase2 (double t, double h, Tmatrix< T > *x, Tmatrix< T > *p, Tmatrix< T > *w, Tmatrix< T > &coeff, Tmatrix< double > &C) |
template<typename T > | |
Tmatrix< T > | phi (const Tmatrix< T > &coeff, const double &h) const |
double | scale (const Interval &E, const Interval &X) const |
void | setInfinity () |
virtual returnValue | setupOptions () |
void | updateQ (Tmatrix< double > C, Tmatrix< Interval > R) |
Private Attributes | |
Function | ddg |
Function | dg |
Function | g |
Function | gr |
int | N |
int | nx |
RealClock | Phase0Time |
RealClock | Phase1Time |
Tmatrix< double > | Q |
RealClock | totalTime |
Validated integrator for ODEs based on Taylor models with ellipsoidal remainder term.
Definition at line 60 of file ellipsoidal_integrator.hpp.
Default constructor.
Definition at line 44 of file ellipsoidal_integrator.cpp.
EllipsoidalIntegrator::EllipsoidalIntegrator | ( | const DifferentialEquation & | rhs_, |
const int & | N_ = 3 |
||
) |
Constructor that takes the differential equation and the order (default 3) as an argument.
rhs_ | The differential equation. |
N_ | The order of the intergrator (default = 3). |
Definition at line 46 of file ellipsoidal_integrator.cpp.
Copy constructor (deep copy).
Definition at line 53 of file ellipsoidal_integrator.cpp.
EllipsoidalIntegrator::~EllipsoidalIntegrator | ( | ) | [virtual] |
Destructor.
Definition at line 55 of file ellipsoidal_integrator.cpp.
Tmatrix<Interval> EllipsoidalIntegrator::bound | ( | const Tmatrix< T > & | x | ) | const [private] |
Tmatrix< Interval > EllipsoidalIntegrator::boundQ | ( | ) | const |
Definition at line 258 of file ellipsoidal_integrator.cpp.
void EllipsoidalIntegrator::center | ( | Tmatrix< T > & | x | ) | const [private] |
void EllipsoidalIntegrator::copy | ( | const EllipsoidalIntegrator & | arg | ) | [private] |
Definition at line 166 of file ellipsoidal_integrator.cpp.
Tmatrix< Interval > EllipsoidalIntegrator::evalC | ( | const Tmatrix< double > & | C, |
double | h | ||
) | const [private] |
Definition at line 178 of file ellipsoidal_integrator.cpp.
Tmatrix< double > EllipsoidalIntegrator::evalC2 | ( | const Tmatrix< double > & | C, |
double | h | ||
) | const [private] |
Definition at line 193 of file ellipsoidal_integrator.cpp.
Tmatrix<T> EllipsoidalIntegrator::evaluate | ( | Function & | f, |
double | t, | ||
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p, | ||
Tmatrix< T > * | w | ||
) | const [private] |
Tmatrix<T> EllipsoidalIntegrator::evaluate | ( | Function & | f, |
Interval | t, | ||
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p, | ||
Tmatrix< T > * | w | ||
) | const [private] |
Tmatrix<T> EllipsoidalIntegrator::getPolynomial | ( | const Tmatrix< T > & | x | ) | const [private] |
Tmatrix<Interval> EllipsoidalIntegrator::getRemainder | ( | const Tmatrix< T > & | x | ) | const [private] |
Tmatrix<Interval> EllipsoidalIntegrator::getStateBound | ( | const Tmatrix< T > & | x | ) | const |
Tmatrix<double> EllipsoidalIntegrator::hat | ( | const Tmatrix< T > & | x | ) | const [private] |
returnValue EllipsoidalIntegrator::init | ( | const DifferentialEquation & | rhs_, |
const int & | N_ = 3 |
||
) |
Definition at line 68 of file ellipsoidal_integrator.cpp.
Tmatrix< Interval > EllipsoidalIntegrator::integrate | ( | double | t0, |
double | tf, | ||
int | M, | ||
const Tmatrix< Interval > & | x | ||
) |
Definition at line 102 of file ellipsoidal_integrator.cpp.
Tmatrix< Interval > EllipsoidalIntegrator::integrate | ( | double | t0, |
double | tf, | ||
int | M, | ||
const Tmatrix< Interval > & | x, | ||
const Tmatrix< Interval > & | p | ||
) |
Definition at line 110 of file ellipsoidal_integrator.cpp.
Tmatrix< Interval > EllipsoidalIntegrator::integrate | ( | double | t0, |
double | tf, | ||
int | M, | ||
const Tmatrix< Interval > & | x, | ||
const Tmatrix< Interval > & | p, | ||
const Tmatrix< Interval > & | w | ||
) |
Definition at line 118 of file ellipsoidal_integrator.cpp.
returnValue EllipsoidalIntegrator::integrate | ( | double | t0, |
double | tf, | ||
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p = 0 , |
||
Tmatrix< T > * | w = 0 |
||
) |
BooleanType EllipsoidalIntegrator::isIncluded | ( | const Tmatrix< Interval > & | A, |
const Tmatrix< Interval > & | B | ||
) | const [private] |
Definition at line 265 of file ellipsoidal_integrator.cpp.
double EllipsoidalIntegrator::norm | ( | const Tmatrix< Interval > & | E, |
Tmatrix< Interval > & | X | ||
) | const [private] |
Definition at line 218 of file ellipsoidal_integrator.cpp.
EllipsoidalIntegrator & EllipsoidalIntegrator::operator= | ( | const EllipsoidalIntegrator & | arg | ) | [virtual] |
Assignment operator (deep copy).
Definition at line 57 of file ellipsoidal_integrator.cpp.
void EllipsoidalIntegrator::phase0 | ( | double | t, |
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p, | ||
Tmatrix< T > * | w, | ||
Tmatrix< T > & | coeff, | ||
Tmatrix< double > & | C | ||
) | [private] |
double EllipsoidalIntegrator::phase1 | ( | double | t, |
double | tf, | ||
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p, | ||
Tmatrix< T > * | w, | ||
Tmatrix< T > & | coeff, | ||
Tmatrix< double > & | C | ||
) | [private] |
void EllipsoidalIntegrator::phase2 | ( | double | t, |
double | h, | ||
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p, | ||
Tmatrix< T > * | w, | ||
Tmatrix< T > & | coeff, | ||
Tmatrix< double > & | C | ||
) | [private] |
Tmatrix<T> EllipsoidalIntegrator::phi | ( | const Tmatrix< T > & | coeff, |
const double & | h | ||
) | const [private] |
double EllipsoidalIntegrator::scale | ( | const Interval & | E, |
const Interval & | X | ||
) | const [private] |
Definition at line 207 of file ellipsoidal_integrator.cpp.
void EllipsoidalIntegrator::setInfinity | ( | ) | [private] |
Definition at line 279 of file ellipsoidal_integrator.cpp.
returnValue EllipsoidalIntegrator::setupOptions | ( | ) | [private, virtual] |
Definition at line 282 of file ellipsoidal_integrator.cpp.
double EllipsoidalIntegrator::step | ( | const double & | t, |
const double & | tf, | ||
Tmatrix< T > * | x, | ||
Tmatrix< T > * | p = 0 , |
||
Tmatrix< T > * | w = 0 |
||
) |
void EllipsoidalIntegrator::updateQ | ( | Tmatrix< double > | C, |
Tmatrix< Interval > | R | ||
) | [private] |
Definition at line 230 of file ellipsoidal_integrator.cpp.
Function EllipsoidalIntegrator::ddg [private] |
Definition at line 183 of file ellipsoidal_integrator.hpp.
Function EllipsoidalIntegrator::dg [private] |
Definition at line 182 of file ellipsoidal_integrator.hpp.
Function EllipsoidalIntegrator::g [private] |
Definition at line 180 of file ellipsoidal_integrator.hpp.
Function EllipsoidalIntegrator::gr [private] |
Definition at line 181 of file ellipsoidal_integrator.hpp.
int EllipsoidalIntegrator::N [private] |
Definition at line 178 of file ellipsoidal_integrator.hpp.
int EllipsoidalIntegrator::nx [private] |
Definition at line 177 of file ellipsoidal_integrator.hpp.
RealClock EllipsoidalIntegrator::Phase0Time [private] |
Definition at line 188 of file ellipsoidal_integrator.hpp.
RealClock EllipsoidalIntegrator::Phase1Time [private] |
Definition at line 189 of file ellipsoidal_integrator.hpp.
Tmatrix<double> EllipsoidalIntegrator::Q [private] |
Definition at line 185 of file ellipsoidal_integrator.hpp.
RealClock EllipsoidalIntegrator::totalTime [private] |
Definition at line 187 of file ellipsoidal_integrator.hpp.