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. |