|
Graph Framework
|
Basic arithmetic operations. More...
#include "node.hpp"Go to the source code of this file.
Classes | |
| class | graph::add_node< T, SAFE_MATH > |
| An addition node. More... | |
| class | graph::subtract_node< T, SAFE_MATH > |
| A subtraction node. More... | |
| class | graph::multiply_node< T, SAFE_MATH > |
| A multiplication node. More... | |
| class | graph::divide_node< T, SAFE_MATH > |
| A division node. More... | |
| class | graph::fma_node< T, SAFE_MATH > |
| A fused multiply add node. More... | |
| class | graph::modulo_node< T, SAFE_MATH > |
| An Modulo node. More... | |
Namespaces | |
| namespace | graph |
| Name space for graph nodes. | |
Typedefs | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| using | graph::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 | graph::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 | graph::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 | graph::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 | graph::shared_fma = std::shared_ptr< fma_node< T, SAFE_MATH > > |
| Convenience type alias for shared add nodes. | |
| template<std::floating_point T, bool SAFE_MATH = false> | |
| using | graph::shared_modulo = std::shared_ptr< modulo_node< T, SAFE_MATH > > |
| Convenience type alias for shared modulo nodes. | |
Functions | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | graph::is_constant_combinable (shared_leaf< T, SAFE_MATH > a, shared_leaf< T, SAFE_MATH > b) |
| Check if nodes are constant combinable. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| bool | graph::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 | graph::is_variable_combinable (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 | graph::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 | 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. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::operator- (shared_leaf< T, SAFE_MATH > a) |
| Negate a node. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_subtract< T, SAFE_MATH > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | graph::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 > | 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. | |
| template<jit::float_scalar T, jit::float_scalar L, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, jit::float_scalar M, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, jit::float_scalar R, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, jit::float_scalar L, jit::float_scalar M, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, jit::float_scalar M, jit::float_scalar R, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, jit::float_scalar L, jit::float_scalar R, bool SAFE_MATH = false> | |
| 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. | |
| template<jit::float_scalar T, bool SAFE_MATH = false> | |
| shared_fma< T, SAFE_MATH > | graph::fma_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a fma node. | |
| template<std::floating_point T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | graph::modulo (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build modulo node from two leaves. | |
| template<std::floating_point T, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | graph::operator% (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r) |
| Build modulo node from two leaves. | |
| template<std::floating_point T, std::floating_point L, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | graph::operator% (const L l, shared_leaf< T, SAFE_MATH > r) |
| Build modulo node from two leaves. | |
| template<std::floating_point T, std::floating_point R, bool SAFE_MATH = false> | |
| shared_leaf< T, SAFE_MATH > | graph::operator% (shared_leaf< T, SAFE_MATH > l, const R r) |
| Build modulo node from two leaves. | |
| template<std::floating_point T, bool SAFE_MATH = false> | |
| shared_modulo< T, SAFE_MATH > | graph::modulo_cast (shared_leaf< T, SAFE_MATH > x) |
| Cast to a modulo node. | |
Basic arithmetic operations.
Defines basic operators.