stator
A math, geometry, and utility library
Public Member Functions | List of all members
sym::detail::VisitorHelper< Derived > Struct Template Reference

A CRTP helper base class which transforms the visitor interface into a call to the derived classes apply function. More...

#include <runtime.hpp>

Inheritance diagram for sym::detail::VisitorHelper< Derived >:
sym::detail::VisitorInterface

Public Member Functions

virtual Expr visit (const double &x)
 
virtual Expr visit (const VarRT &x)
 
virtual Expr visit (const UnaryOp< Expr, detail::Sine > &x)
 
virtual Expr visit (const UnaryOp< Expr, detail::Cosine > &x)
 
virtual Expr visit (const UnaryOp< Expr, detail::Log > &x)
 
virtual Expr visit (const UnaryOp< Expr, detail::Exp > &x)
 
virtual Expr visit (const UnaryOp< Expr, detail::Absolute > &x)
 
virtual Expr visit (const UnaryOp< Expr, detail::Arbsign > &x)
 
virtual Expr visit (const BinaryOp< Expr, detail::Add, Expr > &x)
 
virtual Expr visit (const BinaryOp< Expr, detail::Subtract, Expr > &x)
 
virtual Expr visit (const BinaryOp< Expr, detail::Multiply, Expr > &x)
 
virtual Expr visit (const BinaryOp< Expr, detail::Divide, Expr > &x)
 
virtual Expr visit (const BinaryOp< Expr, detail::Power, Expr > &x)
 

Detailed Description

template<typename Derived>
struct sym::detail::VisitorHelper< Derived >

This makes implementing visitors simpler, as a generic templated apply function can be used (i.e., all UnaryOp/BinaryOp can be treated with one imlementation each).

Definition at line 135 of file runtime.hpp.

Member Function Documentation

◆ visit() [1/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const double &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 136 of file runtime.hpp.

◆ visit() [2/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const VarRT x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 137 of file runtime.hpp.

◆ visit() [3/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const UnaryOp< Expr, detail::Sine > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 139 of file runtime.hpp.

◆ visit() [4/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const UnaryOp< Expr, detail::Cosine > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 141 of file runtime.hpp.

◆ visit() [5/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const UnaryOp< Expr, detail::Log > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 143 of file runtime.hpp.

◆ visit() [6/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const UnaryOp< Expr, detail::Exp > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 145 of file runtime.hpp.

◆ visit() [7/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const UnaryOp< Expr, detail::Absolute > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 147 of file runtime.hpp.

◆ visit() [8/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const UnaryOp< Expr, detail::Arbsign > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 149 of file runtime.hpp.

◆ visit() [9/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const BinaryOp< Expr, detail::Add, Expr > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 151 of file runtime.hpp.

◆ visit() [10/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const BinaryOp< Expr, detail::Subtract, Expr > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 153 of file runtime.hpp.

◆ visit() [11/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const BinaryOp< Expr, detail::Multiply, Expr > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 155 of file runtime.hpp.

◆ visit() [12/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const BinaryOp< Expr, detail::Divide, Expr > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 157 of file runtime.hpp.

◆ visit() [13/13]

template<typename Derived>
virtual Expr sym::detail::VisitorHelper< Derived >::visit ( const BinaryOp< Expr, detail::Power, Expr > &  x)
inlinevirtual

Implements sym::detail::VisitorInterface.

Definition at line 159 of file runtime.hpp.


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