|
| triple_node (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > m, shared_leaf< T, SAFE_MATH > r, const std::string s) |
| Reduces and assigns the left and right branches.
|
|
virtual void | compile_preamble (std::ostringstream &stream, jit::register_map ®isters, jit::visiter_map &visited, jit::register_usage &usage, jit::texture1d_list &textures1d, jit::texture2d_list &textures2d, int &avail_const_mem) |
| Compile preamble.
|
|
shared_leaf< T, SAFE_MATH > | get_middle () |
| Get the right branch.
|
|
virtual bool | is_all_variables () const |
| Test if node acts like a variable.
|
|
| branch_node (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r, const std::string s) |
| Assigns the left and right branches.
|
|
| branch_node (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r, const std::string s, const size_t count, const bool pseudo) |
| Assigns the left and right branches.
|
|
shared_leaf< T, SAFE_MATH > | get_left () |
| Get the left branch.
|
|
shared_leaf< T, SAFE_MATH > | get_right () |
| Get the right branch.
|
|
virtual std::shared_ptr< leaf_node< T, SAFE_MATH > > | get_power_exponent () const |
| Get the exponent of a power.
|
|
| leaf_node (const std::string s, const size_t count, const bool pseudo) |
| Construct a basic node.
|
|
virtual | ~leaf_node () |
| Destructor.
|
|
virtual backend::buffer< T > | evaluate ()=0 |
| Evaluate method.
|
|
virtual std::shared_ptr< leaf_node > | reduce ()=0 |
| Reduction method.
|
|
virtual std::shared_ptr< leaf_node< T, SAFE_MATH > > | df (std::shared_ptr< leaf_node< T, SAFE_MATH > > x)=0 |
| Transform node to derivative.
|
|
virtual std::shared_ptr< leaf_node< T, SAFE_MATH > > | compile (std::ostringstream &stream, jit::register_map ®isters, jit::register_map &indices, const jit::register_usage &usage)=0 |
| Compile the node.
|
|
virtual bool | is_match (std::shared_ptr< leaf_node< T, SAFE_MATH > > x) |
| Querey if the nodes match.
|
|
bool | is_power_base_match (std::shared_ptr< leaf_node< T, SAFE_MATH > > x) |
| Check if the base of the powers match.
|
|
virtual void | set (const T d) |
| Set the value of variable data.
|
|
virtual void | set (const size_t index, const T d) |
| Set the value of variable data.
|
|
virtual void | set (const std::vector< T > &d) |
| Set the value of variable data.
|
|
virtual void | set (const backend::buffer< T > &d) |
| Set the value of variable data.
|
|
virtual void | to_latex () const =0 |
| Convert the node to latex.
|
|
virtual std::shared_ptr< leaf_node< T, SAFE_MATH > > | to_vizgraph (std::stringstream &stream, jit::register_map ®isters)=0 |
| Convert the node to vizgraph.
|
|
virtual bool | is_constant () const |
| Test if node is a constant.
|
|
virtual bool | has_constant_zero () const |
| Test the constant node has a zero.
|
|
bool | is_normal () |
| Test if the result is normal.
|
|
virtual bool | is_power_like () const |
| Test if the node acts like a power of variable.
|
|
virtual std::shared_ptr< leaf_node< T, SAFE_MATH > > | get_power_base () |
| Get the base of a power.
|
|
size_t | get_hash () const |
| Get the hash for the node.
|
|
size_t | get_complexity () const |
| Get the number of nodes in the subgraph.
|
|
virtual bool | has_pseudo () const |
| Query if the node contains pseudo variables.
|
|
virtual std::shared_ptr< leaf_node< T, SAFE_MATH > > | remove_pseudo () |
| Remove pseudo variable nodes.
|
|
virtual void | endline (std::ostringstream &stream, const jit::register_usage &usage) const final |
| End a line in the kernel source.
|
|
Class representing a triple branch node.
- Template Parameters
-
T | Base type of the calculation. |
SAFE_MATH | Use Safe Math operations. |
This ensures that the base leaf type has the common type between the two template arguments.