Analytics Template Library
 All Classes Namespaces Functions Variables Pages
Public Member Functions | Public Attributes | List of all members
atl::Multiply< REAL_T, LHS, RHS > Struct Template Reference

#include <Multiply.hpp>

Inheritance diagram for atl::Multiply< REAL_T, LHS, RHS >:
atl::ExpressionBase< REAL_T, Multiply< REAL_T, LHS, RHS > > atl::ExpressionBase< REAL_T, Multiply< REAL_T, LHS, RHS > >

Public Member Functions

 Multiply (const ExpressionBase< REAL_T, LHS > &lhs, const ExpressionBase< REAL_T, RHS > &rhs)
 
 Multiply (const REAL_T &lhs, const ExpressionBase< REAL_T, RHS > &rhs)
 
 Multiply (const ExpressionBase< REAL_T, LHS > &lhs, const REAL_T &rhs)
 
const REAL_T GetValue () const
 
const REAL_T GetValue (size_t i, size_t j=0) const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids) const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids, size_t i, size_t j=0) const
 
const REAL_T EvaluateDerivative (uint32_t id) const
 
REAL_T EvaluateDerivative (uint32_t a, uint32_t b) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z) const
 
REAL_T EvaluateDerivative (uint32_t a, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t a, uint32_t b, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z, size_t i, size_t j=0) const
 
size_t GetColumns () const
 
size_t GetRows () const
 
bool IsScalar () const
 
 Multiply (const ExpressionBase< REAL_T, LHS > &lhs, const ExpressionBase< REAL_T, RHS > &rhs)
 
 Multiply (const REAL_T &lhs, const ExpressionBase< REAL_T, RHS > &rhs)
 
 Multiply (const ExpressionBase< REAL_T, LHS > &lhs, const REAL_T &rhs)
 
const REAL_T GetValue () const
 
const REAL_T GetValue (size_t i, size_t j=0) const
 
bool IsNonlinear () const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids) const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids, size_t i, size_t j=0) const
 
const REAL_T EvaluateDerivative (uint32_t x) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z) const
 
REAL_T EvaluateDerivative (uint32_t x, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z, size_t i, size_t j=0) const
 
size_t GetColumns () const
 
size_t GetRows () const
 
bool IsScalar () const
 
const std::string ToExpressionTemplateString () const
 
- Public Member Functions inherited from atl::ExpressionBase< REAL_T, Multiply< REAL_T, LHS, RHS > >
const Multiply< REAL_T, LHS,
RHS > & 
Cast () const
 
const Multiply< REAL_T, LHS,
RHS > & 
Cast () const
 
const REAL_T GetValue () const
 
const REAL_T GetValue (size_t i, size_t j=0) const
 
const REAL_T GetValue () const
 
const REAL_T GetValue (size_t i, size_t j=0) const
 
bool IsNonlinear () const
 
bool IsNonlinear () const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids) const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids, size_t i, size_t j=0) const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids) const
 
void PushIds (typename atl::StackEntry< REAL_T >::vi_storage &ids, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t a) const
 
REAL_T EvaluateDerivative (uint32_t a, uint32_t b) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z) const
 
REAL_T EvaluateDerivative (uint32_t a, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t a, uint32_t b, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z) const
 
REAL_T EvaluateDerivative (uint32_t x, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, size_t i, size_t j=0) const
 
REAL_T EvaluateDerivative (uint32_t x, uint32_t y, uint32_t z, size_t i, size_t j=0) const
 
const ExpressionBaseoperator= (const ExpressionBase &exp) const
 
const ExpressionBaseoperator= (const ExpressionBase &exp) const
 
size_t GetColumns () const
 
size_t GetColumns () const
 
size_t GetRows () const
 
size_t GetRows () const
 
bool IsScalar () const
 
bool IsScalar () const
 
std::string ToExpressionTemplateString () const
 

Public Attributes

bool mm_multiply = false
 
atl::Real< REAL_T > real_m
 
const LHS & lhs_m
 
const RHS & rhs_m
 
REAL_T value_m
 

Detailed Description

template<class REAL_T, class LHS, class RHS>
struct atl::Multiply< REAL_T, LHS, RHS >

Expression template to handle multiplication.

\( f(x) * g(x) \)

or

\( f_{i,j}(x) * g_{i,j}(x) \)

Constructor & Destructor Documentation

template<class REAL_T, class LHS , class RHS >
atl::Multiply< REAL_T, LHS, RHS >::Multiply ( const ExpressionBase< REAL_T, LHS > &  lhs,
const ExpressionBase< REAL_T, RHS > &  rhs 
)
inline

Constructor for Variable types.

Parameters
lhs
rhs
template<class REAL_T, class LHS , class RHS >
atl::Multiply< REAL_T, LHS, RHS >::Multiply ( const REAL_T &  lhs,
const ExpressionBase< REAL_T, RHS > &  rhs 
)
inline

Constructor for a real and Variable type.

Parameters
lhs
rhs
template<class REAL_T, class LHS , class RHS >
atl::Multiply< REAL_T, LHS, RHS >::Multiply ( const ExpressionBase< REAL_T, LHS > &  lhs,
const REAL_T &  rhs 
)
inline

Constructor for Variable and real type.

Parameters
lhs
rhs

Member Function Documentation

template<class REAL_T, class LHS , class RHS >
const REAL_T atl::Multiply< REAL_T, LHS, RHS >::EvaluateDerivative ( uint32_t  x) const
inline

Evaluates the derivative of this expression with respect to x.

\(f\left(x\right)\,\left({{d}\over{d\,x}}\,g\left(x\right)\right)+g\left(x\right)\,\left({{d}\over{d\,x}}\,f\left(x\right)\right)\)

Parameters
x
Returns
template<class REAL_T, class LHS , class RHS >
REAL_T atl::Multiply< REAL_T, LHS, RHS >::EvaluateDerivative ( uint32_t  x,
uint32_t  y 
) const
inline

Evaluates the second-order mixed partial derivative of this expression with respect to x and y.

\({{d}\over{d\,x}}\,f\left(x , y , z\right)\,\left({{d}\over{d\,y}}\, g\left(x , y , z\right)\right)+f\left(x , y , z\right)\,\left({{d^2 }\over{d\,x\,d\,y}}\,g\left(x , y , z\right)\right)+{{d}\over{d\,y}} \,f\left(x , y , z\right)\,\left({{d}\over{d\,x}}\,g\left(x , y , z \right)\right)+g\left(x , y , z\right)\,\left({{d^2}\over{d\,x\,d\,y }}\,f\left(x , y , z\right)\right)\)

Parameters
x
y
Returns
template<class REAL_T, class LHS , class RHS >
REAL_T atl::Multiply< REAL_T, LHS, RHS >::EvaluateDerivative ( uint32_t  x,
uint32_t  y,
uint32_t  z 
) const
inline

Evaluates the third-order mixed partial derivative of this expression with respect to x, y, and z.

\( {{d^2}\over{d\,x\,d\,y}}\,f\left(x , y , z\right)\,\left({{d}\over{ d\,z}}\,g\left(x , y , z\right)\right)+{{d}\over{d\,x}}\,f\left(x , y , z\right)\,\left({{d^2}\over{d\,y\,d\,z}}\,g\left(x , y , z \right)\right)+{{d^2}\over{d\,x\,d\,z}}\,f\left(x , y , z\right)\, \left({{d}\over{d\,y}}\,g\left(x , y , z\right)\right)+{{d}\over{d\, y}}\,f\left(x , y , z\right)\,\left({{d^2}\over{d\,x\,d\,z}}\,g \left(x , y , z\right)\right)+ \\ f\left(x , y , z\right)\,\left({{d^3 }\over{d\,x\,d\,y\,d\,z}}\,g\left(x , y , z\right)\right)+{{d}\over{ d\,z}}\,f\left(x , y , z\right)\,\left({{d^2}\over{d\,x\,d\,y}}\,g \left(x , y , z\right)\right)+{{d^2}\over{d\,y\,d\,z}}\,f\left(x , y , z\right)\,\left({{d}\over{d\,x}}\,g\left(x , y , z\right)\right)+ g\left(x , y , z\right)\,\left({{d^3}\over{d\,x\,d\,y\,d\,z}}\,f \left(x , y , z\right)\right) \)

Parameters
x
y
z
Returns
template<class REAL_T, class LHS , class RHS >
REAL_T atl::Multiply< REAL_T, LHS, RHS >::EvaluateDerivative ( uint32_t  x,
size_t  i,
size_t  j = 0 
) const
inline

Evaluates the derivative of this expression with respect to x at index {i,j}.

\(f_{i,j}(x)\,\left({{d}\over{d\,x}}\,g_{i,j}(x)\right)+g_{i,j}(x)\, \left({{d}\over{d\,x}}\,f_{i,j}(x)\right)\)

Parameters
x
Returns
template<class REAL_T, class LHS , class RHS >
REAL_T atl::Multiply< REAL_T, LHS, RHS >::EvaluateDerivative ( uint32_t  x,
uint32_t  y,
size_t  i,
size_t  j = 0 
) const
inline

Evaluates the second-order mixed partial derivative of this expression with respect to x and y at index {i,j}.

\( {{d}\over{d\,x}}\,f_{i,j}(x,y)\,\left({{d}\over{d\,y}}\,g_{i,j}(x,y )\right)+f_{i,j}(x,y)\,\left({{d^2}\over{d\,x\,d\,y}}\,g_{i,j}(x,y) \right)+{{d}\over{d\,y}}\,f_{i,j}(x,y)\,\left({{d}\over{d\,x}}\,g_{i ,j}(x,y)\right)+g_{i,j}(x,y)\,\left({{d^2}\over{d\,x\,d\,y}}\,f_{i,j }(x,y)\right) \)

Parameters
x
y
i
j
Returns
template<class REAL_T, class LHS , class RHS >
REAL_T atl::Multiply< REAL_T, LHS, RHS >::EvaluateDerivative ( uint32_t  x,
uint32_t  y,
uint32_t  z,
size_t  i,
size_t  j = 0 
) const
inline

Evaluates the third-order mixed partial derivative of this expression with respect to x, y, and z at index {i,j}.

\( {{d^2}\over{d\,x\,d\,y}}\,f_{i,j}(x,y,z)\,\left({{d}\over{d\,z}}\,g _{i,j}(x,y,z)\right)+{{d}\over{d\,x}}\,f_{i,j}(x,y,z)\,\left({{d^2 }\over{d\,y\,d\,z}}\,g_{i,j}(x,y,z)\right)+{{d^2}\over{d\,x\,d\,z}} \,f_{i,j}(x,y,z)\,\left({{d}\over{d\,y}}\,g_{i,j}(x,y,z)\right)+{{d }\over{d\,y}}\,f_{i,j}(x,y,z)\,\left({{d^2}\over{d\,x\,d\,z}}\,g_{i, j}(x,y,z)\right)+ \\ f_{i,j}(x,y,z)\,\left({{d^3}\over{d\,x\,d\,y\,d\,z }}\,g_{i,j}(x,y,z)\right)+{{d}\over{d\,z}}\,f_{i,j}(x,y,z)\,\left({{ d^2}\over{d\,x\,d\,y}}\,g_{i,j}(x,y,z)\right)+{{d^2}\over{d\,y\,d\,z }}\,f_{i,j}(x,y,z)\,\left({{d}\over{d\,x}}\,g_{i,j}(x,y,z)\right)+g _{i,j}(x,y,z)\,\left({{d^3}\over{d\,x\,d\,y\,d\,z}}\,f_{i,j}(x,y,z) \right) \)

Parameters
x
y
z
i
j
Returns
template<class REAL_T, class LHS , class RHS >
size_t atl::Multiply< REAL_T, LHS, RHS >::GetColumns ( ) const
inline

Return the number of columns.

Returns
template<class REAL_T, class LHS , class RHS >
size_t atl::Multiply< REAL_T, LHS, RHS >::GetRows ( ) const
inline

Return the number of rows.

Returns
template<class REAL_T, class LHS , class RHS >
const REAL_T atl::Multiply< REAL_T, LHS, RHS >::GetValue ( ) const
inline

Compute the value of this expression.

Returns
template<class REAL_T, class LHS , class RHS >
const REAL_T atl::Multiply< REAL_T, LHS, RHS >::GetValue ( size_t  i,
size_t  j = 0 
) const
inline

Compute the value of this expression at index {i,j}.

Parameters
i
j
Returns
template<class REAL_T, class LHS , class RHS >
bool atl::Multiply< REAL_T, LHS, RHS >::IsNonlinear ( ) const
inline

Returns true if the left or right side is nonlinear, else false.

Returns
template<class REAL_T, class LHS , class RHS >
bool atl::Multiply< REAL_T, LHS, RHS >::IsScalar ( ) const
inline

True if this expression is a scalar.

Returns
template<class REAL_T, class LHS , class RHS >
void atl::Multiply< REAL_T, LHS, RHS >::PushIds ( typename atl::StackEntry< REAL_T >::vi_storage &  ids) const
inline

Push variable info into a set.

Parameters
ids
template<class REAL_T, class LHS , class RHS >
void atl::Multiply< REAL_T, LHS, RHS >::PushIds ( typename atl::StackEntry< REAL_T >::vi_storage &  ids,
size_t  i,
size_t  j = 0 
) const
inline

Push variable info into a set at index {i,j}.

Parameters
ids
i
j
template<class REAL_T, class LHS , class RHS >
const std::string atl::Multiply< REAL_T, LHS, RHS >::ToExpressionTemplateString ( ) const
inline

Create a string representation of this expression template.

Returns

The documentation for this struct was generated from the following file: