Defines the wrapper class for all unary operations. More...
#include <string>
#include <vector>
#include <math.h>
#include "viennamath/forwards.h"
#include "viennamath/runtime/op_interface.hpp"
#include "viennamath/compiletime/unary_op_tags.hpp"
Go to the source code of this file.
Data Structures | |
class | op_unary< UnaryOperation, InterfaceType > |
Main class for all unary operations. More... | |
Namespaces | |
namespace | viennamath |
The main ViennaMath namespace. All types and functions for the user reside here. | |
Functions | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_id< NumericT >, const InterfaceType *diff_var) |
Differentation of a unary expression containing identity. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_exp< NumericT >, const InterfaceType *diff_var) |
Differentation of exp(e), where e is an expression. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_sin< NumericT >, const InterfaceType *diff_var) |
Differentation of sin(e), where e is an expression. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_cos< NumericT >, const InterfaceType *diff_var) |
Differentation of cos(e), where e is an expression. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_tan< NumericT >, const InterfaceType *diff_var) |
Differentation of tan(e), where e is an expression. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_fabs< NumericT >, const InterfaceType *diff_var) |
Implementation of the differentation of |e|, where e is an expression. Since the modulus is not differentiable everywhere, an exception is thrown. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_sqrt< NumericT >, const InterfaceType *diff_var) |
Implementation of the differentation of \sqrt{e}, where e is an expression. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_log< NumericT >, const InterfaceType *diff_var) |
Implementation of the differentation of ln(e), where e is an expression. | |
template<typename InterfaceType , typename NumericT > | |
InterfaceType * | diff_impl (const InterfaceType *e, op_log10< NumericT >, const InterfaceType *diff_var) |
Implementation of the differentation of log10(e), where e is an expression. | |
template<typename T > | |
bool | unary_op_equal (T const &lhs, T const &rhs) |
Helper function returning true if the two arguments are of the same type. |
Defines the wrapper class for all unary operations.