Graph Framework
Loading...
Searching...
No Matches
logical.hpp File Reference

Nodes for boolean logic. More...

#include "node.hpp"

Go to the source code of this file.

Classes

class  graph::isinf_node< T, SAFE_MATH >
 isinf node. More...
 
class  graph::isnan_node< T, SAFE_MATH >
 isnan node. More...
 
class  graph::not_node< T, SAFE_MATH >
 Not node. More...
 
class  graph::equal_node< T, SAFE_MATH >
 An equal node. More...
 
class  graph::not_equal_node< T, SAFE_MATH >
 A not equal node. More...
 
class  graph::greater_than_node< T, SAFE_MATH >
 A greater than node. More...
 
class  graph::less_than_node< T, SAFE_MATH >
 A less than node. More...
 
class  graph::greater_than_equal_node< T, SAFE_MATH >
 A greater than equal node. More...
 
class  graph::less_than_equal_node< T, SAFE_MATH >
 A less than equal node. More...
 
class  graph::and_node< T, SAFE_MATH >
 A and node. More...
 
class  graph::or_node< T, SAFE_MATH >
 A or node. More...
 
class  graph::if_node< T, SAFE_MATH >
 An If conditional node. More...
 
class  graph::min_node< T, SAFE_MATH >
 A Min node. More...
 

Namespaces

namespace  graph
 Name space for graph nodes.
 

Typedefs

template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_isinf = std::shared_ptr< isinf_node< T, SAFE_MATH > >
 Convenience type alias for shared isinf nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_isnan = std::shared_ptr< isnan_node< T, SAFE_MATH > >
 Convenience type alias for shared isnan nodes.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
using graph::shared_not = std::shared_ptr< not_node< T, SAFE_MATH > >
 Convenience type alias for shared not nodes.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
using graph::shared_equal = std::shared_ptr< equal_node< T, SAFE_MATH > >
 Convenience type alias for shared equal nodes.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
using graph::shared_not_equal = std::shared_ptr< not_equal_node< T, SAFE_MATH > >
 Convenience type alias for shared not equal nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_greater_than = std::shared_ptr< greater_than_node< T, SAFE_MATH > >
 Convenience type alias for shared greater than nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_less_than = std::shared_ptr< less_than_node< T, SAFE_MATH > >
 Convenience type alias for shared less than nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_greater_than_equal = std::shared_ptr< greater_than_equal_node< T, SAFE_MATH > >
 Convenience type alias for shared greater than equal nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_less_than_equal = std::shared_ptr< less_than_equal_node< T, SAFE_MATH > >
 Convenience type alias for shared less than equal nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_and = std::shared_ptr< and_node< T, SAFE_MATH > >
 Convenience type alias for shared and nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_or = std::shared_ptr< or_node< T, SAFE_MATH > >
 Convenience type alias for shared or nodes.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
using graph::shared_if = std::shared_ptr< if_node< T, SAFE_MATH > >
 Convenience type alias for shared add nodes.
 
template<std::floating_point T, bool SAFE_MATH = false>
using graph::shared_min = std::shared_ptr< min_node< T, SAFE_MATH > >
 Convenience type alias for shared min nodes.
 

Functions

template<jit::float_scalar T, bool SAFE_MATH = false>
constexpr shared_leaf< T, SAFE_MATH > graph::true_constant ()
 Convenience type for true constant.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
constexpr shared_leaf< T, SAFE_MATH > graph::false_constant ()
 Convenience type for false constant.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::isinf (shared_leaf< T, SAFE_MATH > arg)
 Build not node from the argument leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_isinf< T, SAFE_MATH > graph::isinf_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a isinf node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::isnan (shared_leaf< T, SAFE_MATH > arg)
 Build isnan node from the argument leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_isnan< T, SAFE_MATH > graph::isnan_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to an isnan node.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::not_ (shared_leaf< T, SAFE_MATH > arg)
 Build not node from the argument leaves.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::operator! (shared_leaf< T, SAFE_MATH > arg)
 Build not node from two leaves.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_not< T, SAFE_MATH > graph::not_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a not node.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::equal (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build equal 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 equal 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 equal 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 equal node from two leaves.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_equal< T, SAFE_MATH > graph::equal_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a equal node.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::not_equal (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build note equal 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 not equal 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 not equal 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 not equal node from two leaves.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_not_equal< T, SAFE_MATH > graph::not_equal_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a equal node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::greater_than (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build greater than 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 greater than 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 greater than 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 greater than node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_greater_than< T, SAFE_MATH > graph::greater_than_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a greater than node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::less_than (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build less than 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 less than 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 less than 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 less than node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_less_than< T, SAFE_MATH > graph::less_than_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a less than node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::greater_than_equal (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build greater than equal 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 greater than equal 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 greater than equal 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 greater than equal node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_greater_than_equal< T, SAFE_MATH > graph::greater_than_equal_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a greater than equal node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::less_than_equal (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build less than equal 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 less than equal 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 less than equal 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 less than equal node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_less_than_equal< T, SAFE_MATH > graph::less_than_equal_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a less than equal node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::and_ (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build and 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 and node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::operator&& (const bool l, shared_leaf< T, SAFE_MATH > r)
 Build and 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, const bool r)
 Build and node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_and< T, SAFE_MATH > graph::and_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to an and node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::or_ (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build or 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 or node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::operator|| (const bool l, shared_leaf< T, SAFE_MATH > r)
 Build or 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, const bool r)
 Build or node from two leaves.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_or< T, SAFE_MATH > graph::or_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to a or node.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::if_ (shared_leaf< T, SAFE_MATH > c, shared_leaf< T, SAFE_MATH > t, shared_leaf< T, SAFE_MATH > f)
 Build an if node from a condition and two leaves.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_if< T, SAFE_MATH > graph::if_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to an if node.
 
template<std::floating_point T, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::min (shared_leaf< T, SAFE_MATH > l, shared_leaf< T, SAFE_MATH > r)
 Build a max node from a condition and two leaves.
 
template<std::floating_point T, jit::float_scalar L, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::min (const L l, shared_leaf< T, SAFE_MATH > r)
 Build min node.
 
template<std::floating_point T, jit::float_scalar R, bool SAFE_MATH = false>
shared_leaf< T, SAFE_MATH > graph::min (shared_leaf< T, SAFE_MATH > l, const R r)
 Build min node.
 
template<jit::float_scalar T, bool SAFE_MATH = false>
shared_min< T, SAFE_MATH > graph::min_cast (shared_leaf< T, SAFE_MATH > x)
 Cast to an min node.
 

Detailed Description

Nodes for boolean logic.

Defines a tree of operations that allows automatic differentiation.