A class that can be passed to the solution testing function instead of the solver that transforms the solutions before testing. More...
#include <TransformedSolution.h>
Public Member Functions | |
TransformedSolution () | |
Default constructor, use add_transformation repeatedly to build the final solution. More... | |
TransformedSolution (const std::vector< const Core::OneArgumentDiffFunction *> &transforms, double start_age) | |
Create a single piece transformed solution. More... | |
void | add_transformation (const std::vector< const Core::OneArgumentDiffFunction *> &transforms, double change_age) |
Add more pieces to the transformation. More... | |
const std::vector< const std::list< double > *> & | operator() (const std::vector< const std::list< double > * > &solution) |
Apply this transformatiot to the given solution. More... | |
const std::vector< const std::list< double > *> & | get_transformed_solution () const |
The last transformed solution. More... | |
~TransformedSolution () | |
The derivative of a transformed variable at the tabulated ages. More... | |
Private Attributes | |
std::vector< const std::list< double > * > | __transformed_orbit |
The transformed orbit values. More... | |
std::vector< std::list< const Core::OneArgumentDiffFunction * > > | __transforms |
The transformed derivatives. More... | |
std::list< double > | __change_ages |
The boundaries between consecutive trasformation functions. More... | |
A class that can be passed to the solution testing function instead of the solver that transforms the solutions before testing.
The tranformed orbit is obtained by applying a list of OneArgumentDiffFunction objects to each of the tabulated variables. Each transformation function is used only in a pre-specified age range.
Definition at line 32 of file TransformedSolution.h.
|
inline |
Default constructor, use add_transformation repeatedly to build the final solution.
Definition at line 54 of file TransformedSolution.h.
|
inline |
Create a single piece transformed solution.
transforms | See transforms argument to add_transformation() |
start_age | The age at which this transformation starts to apply |
Definition at line 61 of file TransformedSolution.h.
Evolve::TransformedSolution::~TransformedSolution | ( | ) |
The derivative of a transformed variable at the tabulated ages.
Definition at line 65 of file TransformedSolution.cpp.
void Evolve::TransformedSolution::add_transformation | ( | const std::vector< const Core::OneArgumentDiffFunction *> & | transforms, |
double | change_age | ||
) |
Add more pieces to the transformation.
transforms | The functions to use to transform the real valued quantities. |
change_age | The age up to which this transformation applies. |
Definition at line 5 of file TransformedSolution.cpp.
|
inline |
The last transformed solution.
Returns a reference to member variable, so either copy the result or do not destroy this object before use.
Definition at line 101 of file TransformedSolution.h.
const std::vector< const std::list< double > *> & Evolve::TransformedSolution::operator() | ( | const std::vector< const std::list< double > * > & | solution | ) |
Apply this transformatiot to the given solution.
Returns a reference to member variable, so either copy the result or do not destroy this object before use.
solution | Entries are assumed ordered by RealEvolutionQuantity |
Definition at line 17 of file TransformedSolution.cpp.
|
private |
The boundaries between consecutive trasformation functions.
Definition at line 49 of file TransformedSolution.h.
|
private |
The transformed orbit values.
Definition at line 35 of file TransformedSolution.h.
|
private |
The transformed derivatives.
The functions to use to transform the solution.
Each vector entry corresponds to one quantity in the order defined by RealEvolutionQuantity and the inner list contains the various patches to apply.
Definition at line 46 of file TransformedSolution.h.