Representation of a constant within the expression setting of ViennaMath.
More...
#include <constant.hpp>
Public Types |
typedef InterfaceType::numeric_type | numeric_type |
Public Member Functions |
| rt_constant (ScalarType s_) |
self_type | operator() () const |
| Evaluates the constant.
|
template<typename VectorType > |
self_type | operator() (const VectorType &p) const |
| Evaluates the constant by returning its value.
|
| operator ScalarType () const |
| A ViennaMath constant is implicity convertible to its underlying scalar. Since the constructor is explicit, this operation is safe.
|
InterfaceType * | clone () const |
| Returns a copy of the constant. The object referred by the pointer is not automatically deleted, thus the caller needs to ensure deletion.
|
numeric_type | eval (std::vector< numeric_type > const &v) const |
| (Trivially) Evaluates the constant.
|
numeric_type | eval (numeric_type v) const |
| (Trivially) Evaluates the constant.
|
bool | is_constant () const |
| A constant is a constant :-).
|
std::string | deep_str () const |
| Returns a textual representation of the constant.
|
numeric_type | unwrap () const |
| Interface requirement: Returns the value of the constant.
|
InterfaceType * | substitute (const InterfaceType *e, const InterfaceType *repl) const |
| Substitutes the constant with an expression 'repl' if it matches the expression 'e'. The object referred by the pointer is not automatically deleted, thus the caller needs to ensure deletion.
|
InterfaceType * | substitute (std::vector< const InterfaceType * > const &e, std::vector< const InterfaceType * > const &repl) const |
| If any of the expressions in 'e' match the constant, the expression in 'repl' is returned. Otherwise, a copy of the constant is returned. The object referred by the pointer is not automatically deleted, thus the caller needs to ensure deletion.
|
bool | deep_equal (const InterfaceType *other) const |
| Returns true if 'other' points to a constant with the same value.
|
bool | shallow_equal (const InterfaceType *other) const |
| Returns true if 'other' is also a constant.
|
InterfaceType * | diff (const InterfaceType *diff_var) const |
| Returns the result of differentiating the constant with respect to a variable, i.e. zero.
|
Detailed Description
template<typename ScalarType, typename InterfaceType>
class viennamath::rt_constant< ScalarType, InterfaceType >
Representation of a constant within the expression setting of ViennaMath.
- Template Parameters:
-
| InterfaceType | The expression runtime interface to inherit from. Usually rt_expression_interface, but extensions are possible. |
Member Typedef Documentation
Constructor & Destructor Documentation
Member Function Documentation
InterfaceType* clone |
( |
|
) |
const [inline] |
Returns a copy of the constant. The object referred by the pointer is not automatically deleted, thus the caller needs to ensure deletion.
bool deep_equal |
( |
const InterfaceType * |
other |
) |
const [inline] |
Returns true if 'other' points to a constant with the same value.
std::string deep_str |
( |
|
) |
const [inline] |
Returns a textual representation of the constant.
InterfaceType* diff |
( |
const InterfaceType * |
diff_var |
) |
const [inline] |
Returns the result of differentiating the constant with respect to a variable, i.e. zero.
(Trivially) Evaluates the constant.
(Trivially) Evaluates the constant.
bool is_constant |
( |
|
) |
const [inline] |
A constant is a constant :-).
operator ScalarType |
( |
|
) |
const [inline] |
A ViennaMath constant is implicity convertible to its underlying scalar. Since the constructor is explicit, this operation is safe.
self_type operator() |
( |
const VectorType & |
p |
) |
const [inline] |
Evaluates the constant by returning its value.
bool shallow_equal |
( |
const InterfaceType * |
other |
) |
const [inline] |
Returns true if 'other' is also a constant.
InterfaceType* substitute |
( |
const InterfaceType * |
e, |
|
|
const InterfaceType * |
repl | |
|
) |
| | const [inline] |
Substitutes the constant with an expression 'repl' if it matches the expression 'e'. The object referred by the pointer is not automatically deleted, thus the caller needs to ensure deletion.
InterfaceType* substitute |
( |
std::vector< const InterfaceType * > const & |
e, |
|
|
std::vector< const InterfaceType * > const & |
repl | |
|
) |
| | const [inline] |
If any of the expressions in 'e' match the constant, the expression in 'repl' is returned. Otherwise, a copy of the constant is returned. The object referred by the pointer is not automatically deleted, thus the caller needs to ensure deletion.
Interface requirement: Returns the value of the constant.
The documentation for this class was generated from the following file:
- /export/development/ViennaMath/viennamath/runtime/constant.hpp