Implements the scalar quotient operator within the symbolic operators family. More...
#include <quotient.hpp>
Public Member Functions | |
virtual returnValue | AD_backward (int dim, VariableType *varType, int *component, Operator *seed, Operator **df, int &nNewIS, TreeProjection ***newIS) |
virtual returnValue | AD_backward (int number, double seed, double *df) |
virtual returnValue | AD_backward2 (int number, double seed1, double seed2, double *df, double *ddf) |
virtual Operator * | AD_forward (int dim, VariableType *varType, int *component, Operator **seed, int &nNewIS, TreeProjection ***newIS) |
virtual returnValue | AD_forward (int number, double *seed, double *df) |
virtual returnValue | AD_forward (int number, double *x, double *seed, double *f, double *df) |
virtual returnValue | AD_forward2 (int number, double *seed1, double *seed2, double *df, double *ddf) |
virtual returnValue | AD_symmetric (int dim, VariableType *varType, int *component, Operator *l, Operator **S, int dimS, Operator **dfS, Operator **ldf, Operator **H, int &nNewLIS, TreeProjection ***newLIS, int &nNewSIS, TreeProjection ***newSIS, int &nNewHIS, TreeProjection ***newHIS) |
virtual Operator * | clone () const |
virtual Operator * | differentiate (int index) |
virtual returnValue | evaluate (int number, double *x, double *result) |
virtual returnValue | evaluate (EvaluationBase *x) |
virtual CurvatureType | getCurvature () |
virtual MonotonicityType | getMonotonicity () |
virtual OperatorName | getName () |
virtual double | getValue () const |
virtual returnValue | initDerivative () |
virtual BooleanType | isLinearIn (int dim, VariableType *varType, int *component, BooleanType *implicit_dep) |
virtual BooleanType | isPolynomialIn (int dim, VariableType *varType, int *component, BooleanType *implicit_dep) |
virtual BooleanType | isRationalIn (int dim, VariableType *varType, int *component, BooleanType *implicit_dep) |
Quotient & | operator= (const Quotient &arg) |
virtual std::ostream & | print (std::ostream &stream) const |
Quotient () | |
Quotient (Operator *_argument1, Operator *_argument2) | |
Quotient (const Quotient &arg) | |
virtual Operator * | substitute (int index, const Operator *sub) |
~Quotient () | |
Protected Attributes | |
TreeProjection * | derivative0 |
TreeProjection * | derivative1 |
TreeProjection * | derivative2 |
Implements the scalar quotient operator within the symbolic operators family.
The class Quotient implements the scalar quotient operator within the symbolic operators family.
Definition at line 55 of file quotient.hpp.
Default constructor.
Definition at line 45 of file quotient.cpp.
Quotient::Quotient | ( | Operator * | _argument1, |
Operator * | _argument2 | ||
) |
Default constructor.
Definition at line 51 of file quotient.cpp.
Quotient::Quotient | ( | const Quotient & | arg | ) |
Copy constructor (deep copy).
Definition at line 60 of file quotient.cpp.
Default destructor.
Definition at line 73 of file quotient.cpp.
returnValue Quotient::AD_backward | ( | int | dim, |
VariableType * | varType, | ||
int * | component, | ||
Operator * | seed, | ||
Operator ** | df, | ||
int & | nNewIS, | ||
TreeProjection *** | newIS | ||
) | [virtual] |
Automatic Differentiation in backward mode on the symbolic
level. This function generates an expression for a
backward derivative
dim | number of directions |
varType | the variable types |
component | and their components |
seed | the backward seed |
df | the result |
nNewIS | the number of new IS |
newIS | the new IS-pointer |
Implements BinaryOperator.
Definition at line 175 of file quotient.cpp.
returnValue Quotient::AD_backward | ( | int | number, |
double | seed, | ||
double * | df | ||
) | [virtual] |
Automatic Differentiation in backward mode based on
buffered values
number | the buffer position |
seed | the seed |
df | the derivative of the expression |
Implements BinaryOperator.
Definition at line 416 of file quotient.cpp.
returnValue Quotient::AD_backward2 | ( | int | number, |
double | seed1, | ||
double | seed2, | ||
double * | df, | ||
double * | ddf | ||
) | [virtual] |
Automatic Differentiation in backward mode for 2nd order
derivatives based on buffered values.
number | the buffer position |
seed1 | the seed1 |
seed2 | the seed2 |
df | the 1st derivative of the expression |
ddf | the 2nd derivative of the expression |
Implements BinaryOperator.
Definition at line 456 of file quotient.cpp.
Operator * Quotient::AD_forward | ( | int | dim, |
VariableType * | varType, | ||
int * | component, | ||
Operator ** | seed, | ||
int & | nNewIS, | ||
TreeProjection *** | newIS | ||
) | [virtual] |
Automatic Differentiation in forward mode on the symbolic
level. This function generates an expression for a
forward derivative
dim | dimension of the seed |
varType | the variable types |
component | and their components |
seed | the forward seed |
nNewIS | the number of new IS |
newIS | the new IS-pointer |
Implements BinaryOperator.
Definition at line 146 of file quotient.cpp.
returnValue Quotient::AD_forward | ( | int | number, |
double * | seed, | ||
double * | df | ||
) | [virtual] |
Automatic Differentiation in forward mode.
This function uses the intermediate
results from a buffer
number | storage position |
seed | the seed |
df | the derivative of the expression |
Implements BinaryOperator.
Definition at line 403 of file quotient.cpp.
returnValue Quotient::AD_forward | ( | int | number, |
double * | x, | ||
double * | seed, | ||
double * | f, | ||
double * | df | ||
) | [virtual] |
Automatic Differentiation in forward mode.
This function stores the intermediate
results in a buffer (needed for 2nd order automatic
differentiation in backward mode)
number | storage position |
x | The evaluation point x |
seed | the seed |
f | the value of the expression at x |
df | the derivative of the expression |
Implements BinaryOperator.
Definition at line 377 of file quotient.cpp.
returnValue Quotient::AD_forward2 | ( | int | number, |
double * | seed1, | ||
double * | seed2, | ||
double * | df, | ||
double * | ddf | ||
) | [virtual] |
Automatic Differentiation in forward mode for
2nd derivatives.
This function uses intermediate
results from a buffer.
number | the buffer position |
seed1 | the seed |
seed2 | the seed for the first derivative |
df | the derivative of the expression |
ddf | the 2nd derivative of the expression |
Implements BinaryOperator.
Definition at line 426 of file quotient.cpp.
returnValue Quotient::AD_symmetric | ( | int | dim, |
VariableType * | varType, | ||
int * | component, | ||
Operator * | l, | ||
Operator ** | S, | ||
int | dimS, | ||
Operator ** | dfS, | ||
Operator ** | ldf, | ||
Operator ** | H, | ||
int & | nNewLIS, | ||
TreeProjection *** | newLIS, | ||
int & | nNewSIS, | ||
TreeProjection *** | newSIS, | ||
int & | nNewHIS, | ||
TreeProjection *** | newHIS | ||
) | [virtual] |
Automatic Differentiation in symmetric mode on the symbolic
level. This function generates an expression for a
second order derivative.
dim | number of directions |
varType | the variable types |
component | and their components |
l | the backward seed |
S | forward seed matrix |
dimS | dimension of forward seed |
dfS | first order foward result |
ldf | first order backward result |
H | upper trianglular part of the Hessian |
nNewLIS | the number of newLIS |
newLIS | the new LIS-pointer |
nNewSIS | the number of newSIS |
newSIS | the new SIS-pointer |
nNewHIS | the number of newHIS |
newHIS | the new HIS-pointer |
Implements BinaryOperator.
Definition at line 211 of file quotient.cpp.
Operator * Quotient::clone | ( | ) | const [virtual] |
Provides a deep copy of the expression.
Implements BinaryOperator.
Definition at line 483 of file quotient.cpp.
Operator * Quotient::differentiate | ( | int | index | ) | [virtual] |
Returns the derivative of the expression with respect
to the variable var(index).
index | diff. index |
Implements BinaryOperator.
Definition at line 126 of file quotient.cpp.
returnValue Quotient::evaluate | ( | int | number, |
double * | x, | ||
double * | result | ||
) | [virtual] |
Evaluates the expression and stores the intermediate
results in a buffer (needed for automatic differentiation
in backward mode)
number | storage position |
x | the input variable x |
result | the result |
Implements BinaryOperator.
Definition at line 100 of file quotient.cpp.
returnValue Quotient::evaluate | ( | EvaluationBase * | x | ) | [virtual] |
Evaluates the expression (templated version)
Implements BinaryOperator.
Definition at line 119 of file quotient.cpp.
CurvatureType Quotient::getCurvature | ( | ) | [virtual] |
Returns the curvature of the expression
Implements BinaryOperator.
Definition at line 333 of file quotient.cpp.
MonotonicityType Quotient::getMonotonicity | ( | ) | [virtual] |
Returns the monotonicity of the expression.
Implements BinaryOperator.
Definition at line 305 of file quotient.cpp.
OperatorName Quotient::getName | ( | ) | [virtual] |
Asks the expression for its name.
Implements BinaryOperator.
Definition at line 489 of file quotient.cpp.
double Quotient::getValue | ( | ) | const [virtual] |
Return the value of the constant
Reimplemented from SmoothOperator.
Definition at line 362 of file quotient.cpp.
returnValue Quotient::initDerivative | ( | ) | [virtual] |
Reimplemented from BinaryOperator.
Definition at line 241 of file quotient.cpp.
BooleanType Quotient::isLinearIn | ( | int | dim, |
VariableType * | varType, | ||
int * | component, | ||
BooleanType * | implicit_dep | ||
) | [virtual] |
Checks whether the expression is linear in
(or not depending on) a variable
dim | number of directions |
varType | the variable types |
component | and their components |
implicit_dep | implicit dependencies |
Implements BinaryOperator.
Definition at line 263 of file quotient.cpp.
BooleanType Quotient::isPolynomialIn | ( | int | dim, |
VariableType * | varType, | ||
int * | component, | ||
BooleanType * | implicit_dep | ||
) | [virtual] |
Checks whether the expression is polynomial in
the specified variables
dim | number of directions |
varType | the variable types |
component | and their components |
implicit_dep | implicit dependencies |
Implements BinaryOperator.
Definition at line 277 of file quotient.cpp.
BooleanType Quotient::isRationalIn | ( | int | dim, |
VariableType * | varType, | ||
int * | component, | ||
BooleanType * | implicit_dep | ||
) | [virtual] |
Checks whether the expression is rational in
the specified variables
dim | number of directions |
varType | the variable types |
component | and their components |
implicit_dep | implicit dependencies |
Implements BinaryOperator.
Definition at line 291 of file quotient.cpp.
Assignment Operator (deep copy).
Definition at line 89 of file quotient.cpp.
std::ostream & Quotient::print | ( | std::ostream & | stream | ) | const [virtual] |
Prints the expression into a stream.
Implements BinaryOperator.
Definition at line 477 of file quotient.cpp.
Operator * Quotient::substitute | ( | int | index, |
const Operator * | sub | ||
) | [virtual] |
Substitutes var(index) with the expression sub.
index | subst. index |
sub | the substitution |
Implements BinaryOperator.
Definition at line 255 of file quotient.cpp.
TreeProjection* Quotient::derivative0 [protected] |
An auxiliary variable to define the quotient.
Definition at line 341 of file quotient.hpp.
TreeProjection* Quotient::derivative1 [protected] |
An auxiliary variable to define the first order derivative of the quotient.
Definition at line 342 of file quotient.hpp.
TreeProjection* Quotient::derivative2 [protected] |
An auxiliary variable to define the second order derivative of the quotient.
Definition at line 343 of file quotient.hpp.