|
Graph Framework
|
Name space for graph nodes. More...
Classes | |
| class | add_node |
| An addition node. More... | |
| class | arctan_node |
| Class representing a sine_node leaf. More... | |
| class | branch_node |
| Class representing a branch node. More... | |
| class | constant_node |
| Class representing data that cannot change. More... | |
| class | cosine_node |
| Class representing a cosine_node leaf. More... | |
| class | divide_node |
| A division node. More... | |
| class | erfi_node |
| An imaginary error function node. More... | |
| class | exp_node |
| A exp node. More... | |
| class | fma_node |
| A fused multiply add node. More... | |
| class | leaf_node |
| Class representing a node leaf. More... | |
| class | log_node |
| A log node. More... | |
| class | matrix_quantity |
| Class to represent matrix quantities. More... | |
| class | multiply_node |
| A multiplcation node. More... | |
| class | piecewise_1D_node |
| Class representing a 1D piecewise constant. More... | |
| class | piecewise_2D_node |
| Class representing a 2D piecewise constant. More... | |
| class | pow_node |
| An power node. More... | |
| class | pseudo_variable_node |
| Class representing a subexpression that acts like a variable. More... | |
| class | random_node |
| Class representing a random_node leaf. More... | |
| class | random_state_node |
| Random state. More... | |
| class | sine_node |
| Class representing a sine_node leaf. More... | |
| class | sqrt_node |
| A sqrt node. More... | |
| class | straight_node |
| Class representing a straight node. More... | |
| class | subtract_node |
| A subtraction node. More... | |
| class | triple_node |
| Class representing a triple branch node. More... | |
| class | variable_node |
| Class representing data that can change. More... | |
| class | vector_quantity |
| Class to represent vector quantities. More... | |
Typedefs | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_add = std::shared_ptr< add_node< T, SAFE_MATH > > |
| Convenience type alias for shared add nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_subtract = std::shared_ptr< subtract_node< T, SAFE_MATH > > |
| Convenience type alias for shared subtract nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_multiply = std::shared_ptr< multiply_node< T, SAFE_MATH > > |
| Convenience type alias for shared multiply nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_divide = std::shared_ptr< divide_node< T, SAFE_MATH > > |
| Convenience type alias for shared divide nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_fma = std::shared_ptr< fma_node< T, SAFE_MATH > > |
| Convenience type alias for shared add nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_sqrt = std::shared_ptr< sqrt_node< T, SAFE_MATH > > |
| Convenience type alias for shared sqrt nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_exp = std::shared_ptr< exp_node< T, SAFE_MATH > > |
| Convenience type alias for shared exp nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_log = std::shared_ptr< log_node< T, SAFE_MATH > > |
| Convenience type alias for shared log nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_pow = std::shared_ptr< pow_node< T, SAFE_MATH > > |
| Convenience type alias for shared add nodes. | |
| template<jit::complex_scalar T, bool SAFE_MATH = false> | |
| using | shared_erfi = std::shared_ptr< erfi_node< T, SAFE_MATH > > |
| Convenience type alias for shared exp nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_leaf = std::shared_ptr< leaf_node< T, SAFE_MATH > > |
| Convenience type alias for shared leaf nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | output_nodes = std::vector< shared_leaf< T, SAFE_MATH > > |
| Convenience type alias for a vector of output nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_constant = std::shared_ptr< constant_node< T, SAFE_MATH > > |
| Convenience type alias for shared constant nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_variable = std::shared_ptr< variable_node< T, SAFE_MATH > > |
| Convenience type alias for shared variable nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | input_nodes = std::vector< shared_variable< T, SAFE_MATH > > |
| Convenience type alias for a vector of inputs. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | map_nodes = std::vector< std::pair< shared_leaf< T, SAFE_MATH >, shared_variable< T, SAFE_MATH > > > |
| Convenience type alias for maping end codes back to inputs. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_pseudo_variable = std::shared_ptr< pseudo_variable_node< T, SAFE_MATH > > |
| Convenience type alias for shared pseudo variable nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_piecewise_1D = std::shared_ptr< piecewise_1D_node< T, SAFE_MATH > > |
| Convenience type alias for shared piecewise 1D nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_piecewise_2D = std::shared_ptr< piecewise_2D_node< T, SAFE_MATH > > |
| Convenience type alias for shared piecewise 2D nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_random_state = std::shared_ptr< random_state_node< T, SAFE_MATH > > |
| Convenience type alias for shared sqrt nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_random = std::shared_ptr< random_node< T, SAFE_MATH > > |
| Convenience type alias for shared sqrt nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_sine = std::shared_ptr< sine_node< T, SAFE_MATH > > |
| Convenience type alias for shared sine nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_cosine = std::shared_ptr< cosine_node< T, SAFE_MATH > > |
| Convenience type alias for shared cosine nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_atan = std::shared_ptr< arctan_node< T, SAFE_MATH > > |
| Convenience type alias for shared add nodes. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_vector = std::shared_ptr< vector_quantity< T, SAFE_MATH > > |
| Convenience type for shared vector quantities. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | shared_matrix = std::shared_ptr< matrix_quantity< T, SAFE_MATH > > |
| Convenience type for shared vector quantities. | |
Functions | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | is_constant_combineable (shared_leaf< T, SAFE_MATH > a, shared_leaf< T, SAFE_MATH > b) |
| Check if nodes are constant combineable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | is_constant_promotable (shared_leaf< T, SAFE_MATH > a, shared_leaf< T, SAFE_MATH > b) |
| Check if the constants are promotable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | is_variable_combineable (shared_leaf< T, SAFE_MATH > a, shared_leaf< T, SAFE_MATH > b) |
| Check if the variable is combinable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | is_variable_promotable (shared_leaf< T, SAFE_MATH > a, shared_leaf< T, SAFE_MATH > b) |
| Check if the variable is variable is promotable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | is_greater_exponent (shared_leaf< T, SAFE_MATH > a, shared_leaf< T, SAFE_MATH > b) |
| Check if the exponent is greater than the other. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | add (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build add node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator+ (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build add node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator+ (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build add node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator+ (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build add node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_add< T, SAFE_MATH > | add_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a add node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | subtract (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build subtract node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator- (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build subtract node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator- (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build subtract node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator- (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build subtract node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator- (shared_leaf< T, SAFE_MATH > a) |
| Negate a node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_subtract< T, SAFE_MATH > | subtract_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a subtract node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | multiply (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator* (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator* (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator* (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_multiply< T, SAFE_MATH > | multiply_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a multiply node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | divide (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator/ (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator/ (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | operator/ (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_divide< T, SAFE_MATH > | divide_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a divide node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > m, shared_leaf< T, SAFE_MATH > r) |
| Build fused multiply add node. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (const L l, shared_leaf< T, SAFE_MATH > m, shared_leaf< T, SAFE_MATH > r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar M, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (shared_leaf< T, SAFE_MATH > l, const M m, shared_leaf< T, SAFE_MATH > r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > m, const R r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar L, jit::float_scalar M, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (const L l, const M m, shared_leaf< T, SAFE_MATH > r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar M, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (shared_leaf< T, SAFE_MATH > l, const M m, const R r) |
| Build divide node from two leaves. | |
| template<jit::float_scalar T, jit::float_scalar L, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | fma (const L l, shared_leaf< T, SAFE_MATH > m, const R r) |
| Build multiply node from two leaves. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_fma< T, SAFE_MATH > | fma_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a fma node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | sqrt (shared_leaf< T, SAFE_MATH > x) |
| Define sqrt convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_sqrt< T, SAFE_MATH > | sqrt_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a sqrt node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | exp (shared_leaf< T, SAFE_MATH > x) |
| Define exp convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_exp< T, SAFE_MATH > | exp_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a exp node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | log (shared_leaf< T, SAFE_MATH > x) |
| Define log convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_log< T, SAFE_MATH > | log_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a exp node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | pow (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build power node. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | pow (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build power node. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | pow (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build power node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_pow< T, SAFE_MATH > | pow_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a power node. | |
| template<jit::complex_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | erfi (shared_leaf< T, SAFE_MATH > x) |
| Define erfi convience function. | |
| template<jit::complex_scalar T, bool SAFE_MATH = false> | |
| shared_erfi< T, SAFE_MATH > | erfi_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a exp node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| constexpr shared_leaf< T, SAFE_MATH > | null_leaf () |
| Create a null leaf. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| constexpr shared_leaf< T, SAFE_MATH > | zero () |
| Forward declare for zero. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| constexpr shared_leaf< T, SAFE_MATH > | one () |
| Forward declare for one. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| void | make_vizgraph (shared_leaf< T, SAFE_MATH > node) |
| Build the vizgraph input. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | constant (const backend::buffer< T > &d) |
| Construct a constant. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | constant (const T d) |
| Construct a constant. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| constexpr shared_leaf< T, SAFE_MATH > | none () |
| Create a one constant. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_constant< T, SAFE_MATH > | constant_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a constant node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | variable (const size_t s, const std::string &symbol) |
| Construct a variable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | variable (const size_t s, const T d, const std::string &symbol) |
| Construct a variable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | variable (const std::vector< T > &d, const std::string &symbol) |
| Construct a variable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | variable (const backend::buffer< T > &d, const std::string &symbol) |
| Construct a variable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_variable< T, SAFE_MATH > | variable_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a variable node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | pseudo_variable (shared_leaf< T, SAFE_MATH > x) |
| Define pseudo variable convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_pseudo_variable< T, SAFE_MATH > | pseudo_variable_cast (shared_leaf< T, SAFE_MATH > &x) |
| Cast to a pseudo variable node. | |
| template<jit::float_scalar T> | |
| void | compile_index (std::ostringstream &stream, const std::string ®ister_name, const size_t length, const T scale, const T offset) |
| Compile an index. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | piecewise_1D (const backend::buffer< T > &d, shared_leaf< T, SAFE_MATH > x, const T scale, const T offset) |
| Define piecewise_1D convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_piecewise_1D< T, SAFE_MATH > | piecewise_1D_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a piecewise 1D node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | piecewise_2D (const backend::buffer< T > &d, const size_t n, shared_leaf< T, SAFE_MATH > x, const T x_scale, const T x_offset, shared_leaf< T, SAFE_MATH > y, const T y_scale, const T y_offset) |
| Define piecewise_2D convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_piecewise_2D< T, SAFE_MATH > | piecewise_2D_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a piecewise 2D node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | random_state (const size_t size, const uint32_t seed=0) |
| Define random_state convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_random_state< T, SAFE_MATH > | random_state_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a random_state node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | random (shared_random_state< T, SAFE_MATH > state) |
| Define random convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_random< T, SAFE_MATH > | random_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a random node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| constexpr shared_leaf< T, SAFE_MATH > | random_scale () |
| Create a random_scale constant. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | sin (shared_leaf< T, SAFE_MATH > x) |
| Define sine convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_sine< T, SAFE_MATH > | sin_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a sine node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | cos (shared_leaf< T, SAFE_MATH > x) |
| Define cosine convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_cosine< T, SAFE_MATH > | cos_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a cosine node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | tan (shared_leaf< T, SAFE_MATH > x) |
| Define tangent convience function. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | atan (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build arctan node. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | atan (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build power node. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | atan (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build power node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_atan< T, SAFE_MATH > | atan_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a power node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (shared_leaf< T, SAFE_MATH > x, shared_leaf< T, SAFE_MATH > y, shared_leaf< T, SAFE_MATH > z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (const L x, shared_leaf< T, SAFE_MATH > y, shared_leaf< T, SAFE_MATH > z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, jit::float_scalar M, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (shared_leaf< T, SAFE_MATH > x, const M y, shared_leaf< T, SAFE_MATH > z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (shared_leaf< T, SAFE_MATH > x, shared_leaf< T, SAFE_MATH > y, const R z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, jit::float_scalar L, jit::float_scalar M, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (const L x, const M y, shared_leaf< T, SAFE_MATH > z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, jit::float_scalar M, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (shared_leaf< T, SAFE_MATH > x, const M y, const R z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, jit::float_scalar L, jit::float_scalar R, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (const L x, shared_leaf< T, SAFE_MATH > y, const R z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | vector (const T x, const T y, const T z) |
| Build a shared vector quantity. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | operator+ (shared_vector< T, SAFE_MATH > l, shared_vector< T, SAFE_MATH > r) |
| Addition operator. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | operator- (shared_vector< T, SAFE_MATH > l, shared_vector< T, SAFE_MATH > r) |
| Subtraction operator. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | operator* (shared_leaf< T, SAFE_MATH > s, shared_vector< T, SAFE_MATH > v) |
| Multiplication operator. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_vector< T, SAFE_MATH > | operator/ (shared_vector< T, SAFE_MATH > v, shared_leaf< T, SAFE_MATH > s) |
| Division operator. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_matrix< T, SAFE_MATH > | matrix (shared_vector< T, SAFE_MATH > r1, shared_vector< T, SAFE_MATH > r2, shared_vector< T, SAFE_MATH > r3) |
| Build a shared vector quantity. | |
Variables | |
| template<jit::complex_scalar T> | |
| constexpr T | i = T(0.0, 1.0) |
| Convinece type for imaginary constant. | |
Name space for graph nodes.
| shared_leaf< T, SAFE_MATH > graph::add | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build add node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_add< T, SAFE_MATH > graph::add_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a add node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::atan | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build power node.
| T | Base type of the calculation. |
| L | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::atan | ( | shared_leaf< T, SAFE_MATH > | l, |
| const R | r | ||
| ) |
Build power node.
| T | Base type of the calculation. |
| R | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::atan | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build arctan node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_atan< T, SAFE_MATH > graph::atan_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a power node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| void graph::compile_index | ( | std::ostringstream & | stream, |
| const std::string & | register_name, | ||
| const size_t | length, | ||
| const T | scale, | ||
| const T | offset | ||
| ) |
Compile an index.
| T | Base type of the calculation. |
| [in,out] | stream | String buffer stream. |
| [in] | register_name | Reister for the argument. |
| [in] | length | Dimension length of argument. |
| [in] | scale | Argument scale factor. |
| [in] | offset | Argument offset factor. |
| shared_leaf< T, SAFE_MATH > graph::constant | ( | const backend::buffer< T > & | d | ) |
Construct a constant.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | d | Array buffer. |
| shared_leaf< T, SAFE_MATH > graph::constant | ( | const T | d | ) |
Construct a constant.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | d | Scalar data to initalize. |
| shared_constant< T, SAFE_MATH > graph::constant_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a constant node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::cos | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define cosine convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_cosine< T, SAFE_MATH > graph::cos_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a cosine node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::divide | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build divide node from two leaves.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_divide< T, SAFE_MATH > graph::divide_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a divide node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::erfi | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define erfi convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_erfi< T, SAFE_MATH > graph::erfi_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a exp node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::exp | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define exp convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_exp< T, SAFE_MATH > graph::exp_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a exp node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | const L | l, |
| const M | m, | ||
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build divide node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| M | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | m, | ||
| const R | r | ||
| ) |
Build multiply node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | m, | ||
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build divide node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | shared_leaf< T, SAFE_MATH > | l, |
| const M | m, | ||
| const R | r | ||
| ) |
Build divide node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| M | Float type for the constant. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | shared_leaf< T, SAFE_MATH > | l, |
| const M | m, | ||
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build divide node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| M | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | m, | ||
| const R | r | ||
| ) |
Build multiply node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::fma | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | m, | ||
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build fused multiply add node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | m | Middle branch. |
| [in] | r | Right branch. |
| shared_fma< T, SAFE_MATH > graph::fma_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a fma node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| bool graph::is_constant_combineable | ( | shared_leaf< T, SAFE_MATH > | a, |
| shared_leaf< T, SAFE_MATH > | b | ||
| ) |
Check if nodes are constant combineable.
| T | Base type of the nodes. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | a | Opperand A |
| [in] | b | Opperand B |
| bool graph::is_constant_promotable | ( | shared_leaf< T, SAFE_MATH > | a, |
| shared_leaf< T, SAFE_MATH > | b | ||
| ) |
Check if the constants are promotable.
| T | Base type of the nodes. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | a | Opperand A |
| [in] | b | Opperand B |
| bool graph::is_greater_exponent | ( | shared_leaf< T, SAFE_MATH > | a, |
| shared_leaf< T, SAFE_MATH > | b | ||
| ) |
Check if the exponent is greater than the other.
| T | Base type of the nodes. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | a | Opperand A |
| [in] | b | Opperand B |
| bool graph::is_variable_combineable | ( | shared_leaf< T, SAFE_MATH > | a, |
| shared_leaf< T, SAFE_MATH > | b | ||
| ) |
Check if the variable is combinable.
| T | Base type of the nodes. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | a | Opperand A |
| [in] | b | Opperand B |
| bool graph::is_variable_promotable | ( | shared_leaf< T, SAFE_MATH > | a, |
| shared_leaf< T, SAFE_MATH > | b | ||
| ) |
Check if the variable is variable is promotable.
| T | Base type of the nodes. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | a | Opperand A |
| [in] | b | Opperand B |
| shared_leaf< T, SAFE_MATH > graph::log | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define log convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_log< T, SAFE_MATH > graph::log_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a exp node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| void graph::make_vizgraph | ( | shared_leaf< T, SAFE_MATH > | node | ) |
Build the vizgraph input.
| [in] | node | Node to build the graph of. |
| shared_matrix< T, SAFE_MATH > graph::matrix | ( | shared_vector< T, SAFE_MATH > | r1, |
| shared_vector< T, SAFE_MATH > | r2, | ||
| shared_vector< T, SAFE_MATH > | r3 | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | r1 | Row 1 matrix component. |
| [in] | r2 | Row 2 matrix component. |
| [in] | r3 | Row 3 matrix component. |
| shared_leaf< T, SAFE_MATH > graph::multiply | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build multiply node from two leaves.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_multiply< T, SAFE_MATH > graph::multiply_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a multiply node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
|
constexpr |
Create a one constant.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
|
constexpr |
Create a null leaf.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
|
constexpr |
Forward declare for one.
Create a one constant.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| shared_leaf< T, SAFE_MATH > graph::operator* | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build multiply node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator* | ( | shared_leaf< T, SAFE_MATH > | l, |
| const R | r | ||
| ) |
Build multiply node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator* | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build multiply node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_vector< T, SAFE_MATH > graph::operator* | ( | shared_leaf< T, SAFE_MATH > | s, |
| shared_vector< T, SAFE_MATH > | v | ||
| ) |
Multiplication operator.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | s | Scalar term. |
| [in] | v | Vector term. |
| shared_leaf< T, SAFE_MATH > graph::operator+ | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build add node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator+ | ( | shared_leaf< T, SAFE_MATH > | l, |
| const R | r | ||
| ) |
Build add node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator+ | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build add node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_vector< T, SAFE_MATH > graph::operator+ | ( | shared_vector< T, SAFE_MATH > | l, |
| shared_vector< T, SAFE_MATH > | r | ||
| ) |
Addition operator.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left vector. |
| [in] | r | Right vector. |
| shared_leaf< T, SAFE_MATH > graph::operator- | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build subtract node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator- | ( | shared_leaf< T, SAFE_MATH > | a | ) |
Negate a node.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | a | Argument to negate. |
| shared_leaf< T, SAFE_MATH > graph::operator- | ( | shared_leaf< T, SAFE_MATH > | l, |
| const R | r | ||
| ) |
Build subtract node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator- | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build subtract node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_vector< T, SAFE_MATH > graph::operator- | ( | shared_vector< T, SAFE_MATH > | l, |
| shared_vector< T, SAFE_MATH > | r | ||
| ) |
Subtraction operator.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left vector. |
| [in] | r | Right vector. |
| shared_leaf< T, SAFE_MATH > graph::operator/ | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build divide node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator/ | ( | shared_leaf< T, SAFE_MATH > | l, |
| const R | r | ||
| ) |
Build multiply node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::operator/ | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build divide node from two leaves.
Note use templates here to defer this so it can be used in the above classes.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_vector< T, SAFE_MATH > graph::operator/ | ( | shared_vector< T, SAFE_MATH > | v, |
| shared_leaf< T, SAFE_MATH > | s | ||
| ) |
Division operator.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | v | Vector numerator. |
| [in] | s | Scalar denominator. |
| shared_leaf< T, SAFE_MATH > graph::piecewise_1D | ( | const backend::buffer< T > & | d, |
| shared_leaf< T, SAFE_MATH > | x, | ||
| const T | scale, | ||
| const T | offset | ||
| ) |
Define piecewise_1D convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | d | Data to initalize the piecewise constant. |
| [in] | x | Argument. |
| [in] | scale | Argument scale factor. |
| [in] | offset | Argument offset factor. |
| shared_piecewise_1D< T, SAFE_MATH > graph::piecewise_1D_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a piecewise 1D node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::piecewise_2D | ( | const backend::buffer< T > & | d, |
| const size_t | n, | ||
| shared_leaf< T, SAFE_MATH > | x, | ||
| const T | x_scale, | ||
| const T | x_offset, | ||
| shared_leaf< T, SAFE_MATH > | y, | ||
| const T | y_scale, | ||
| const T | y_offset | ||
| ) |
Define piecewise_2D convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | d | Data to initalize the piecewise constant. |
| [in] | n | Number of columns. |
| [in] | x | X argument. |
| [in] | x_scale | Scale for x argument. |
| [in] | x_offset | Offset for x argument. |
| [in] | y | Argument. |
| [in] | y_scale | Scale for y argument. |
| [in] | y_offset | Offset for y argument. |
| shared_piecewise_2D< T, SAFE_MATH > graph::piecewise_2D_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a piecewise 2D node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::pow | ( | const L | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build power node.
| T | Base type of the calculation. |
| L | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::pow | ( | shared_leaf< T, SAFE_MATH > | l, |
| const R | r | ||
| ) |
Build power node.
| T | Base type of the calculation. |
| R | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_leaf< T, SAFE_MATH > graph::pow | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build power node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_pow< T, SAFE_MATH > graph::pow_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a power node.
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::pseudo_variable | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define pseudo variable convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_pseudo_variable< T, SAFE_MATH > graph::pseudo_variable_cast | ( | shared_leaf< T, SAFE_MATH > & | x | ) |
Cast to a pseudo variable node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::random | ( | shared_random_state< T, SAFE_MATH > | state | ) |
Define random convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | state | Random state node. |
| shared_random< T, SAFE_MATH > graph::random_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a random node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
|
constexpr |
Create a random_scale constant.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| shared_leaf< T, SAFE_MATH > graph::random_state | ( | const size_t | size, |
| const uint32_t | seed = 0 |
||
| ) |
Define random_state convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | size | Number of random states. |
| [in] | seed | Inital random seed. |
| shared_random_state< T, SAFE_MATH > graph::random_state_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a random_state node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::sin | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define sine convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_sine< T, SAFE_MATH > graph::sin_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a sine node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::sqrt | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define sqrt convience function.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_sqrt< T, SAFE_MATH > graph::sqrt_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a sqrt node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::subtract | ( | shared_leaf< T, SAFE_MATH > | l, |
| shared_leaf< T, SAFE_MATH > | r | ||
| ) |
Build subtract node from two leaves.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | l | Left branch. |
| [in] | r | Right branch. |
| shared_subtract< T, SAFE_MATH > graph::subtract_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a subtract node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_leaf< T, SAFE_MATH > graph::tan | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Define tangent convience function.
tan(x) = sin(x)/cos(x)
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Argument. |
| shared_leaf< T, SAFE_MATH > graph::variable | ( | const backend::buffer< T > & | d, |
| const std::string & | symbol | ||
| ) |
Construct a variable.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | d | Array buffer. |
| [in] | symbol | Symbol of the variable used in equations. |
| shared_leaf< T, SAFE_MATH > graph::variable | ( | const size_t | s, |
| const std::string & | symbol | ||
| ) |
Construct a variable.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | s | Size of the data buffer. |
| [in] | symbol | Symbol of the variable used in equations. |
| shared_leaf< T, SAFE_MATH > graph::variable | ( | const size_t | s, |
| const T | d, | ||
| const std::string & | symbol | ||
| ) |
Construct a variable.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | s | Size of he data buffer. |
| [in] | d | Scalar data to initalize. |
| [in] | symbol | Symbol of the variable used in equations. |
| shared_leaf< T, SAFE_MATH > graph::variable | ( | const std::vector< T > & | d, |
| const std::string & | symbol | ||
| ) |
Construct a variable.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | d | Array buffer. |
| [in] | symbol | Symbol of the variable used in equations. |
| shared_variable< T, SAFE_MATH > graph::variable_cast | ( | shared_leaf< T, SAFE_MATH > | x | ) |
Cast to a variable node.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | Leaf node to attempt cast. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | const L | x, |
| const M | y, | ||
| shared_leaf< T, SAFE_MATH > | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| M | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | const L | x, |
| shared_leaf< T, SAFE_MATH > | y, | ||
| const R | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | const L | x, |
| shared_leaf< T, SAFE_MATH > | y, | ||
| shared_leaf< T, SAFE_MATH > | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| L | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | const T | x, |
| const T | y, | ||
| const T | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | shared_leaf< T, SAFE_MATH > | x, |
| const M | y, | ||
| const R | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| M | Float type for the constant. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | shared_leaf< T, SAFE_MATH > | x, |
| const M | y, | ||
| shared_leaf< T, SAFE_MATH > | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| M | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | shared_leaf< T, SAFE_MATH > | x, |
| shared_leaf< T, SAFE_MATH > | y, | ||
| const R | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| R | Float type for the constant. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
| shared_vector< T, SAFE_MATH > graph::vector | ( | shared_leaf< T, SAFE_MATH > | x, |
| shared_leaf< T, SAFE_MATH > | y, | ||
| shared_leaf< T, SAFE_MATH > | z | ||
| ) |
Build a shared vector quantity.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |
| [in] | x | X vector component. |
| [in] | y | Y vector component. |
| [in] | z | Z Vector component. |
|
constexpr |
Forward declare for zero.
Create a zero constant.
| T | Base type of the calculation. |
| SAFE_MATH | Use Safe Math operations. |