|
| struct | limes::expr::variable_set< E, typename > |
| |
| struct | limes::expr::variable_set< Var< N, T > > |
| | Var<N, T>: Variable N depends on dimension N. More...
|
| |
| struct | limes::expr::variable_set< Binary< Op, L, R > > |
| | Binary<Op, L, R>: Union of both children's dependencies. More...
|
| |
| struct | limes::expr::variable_set< Unary< Op, E > > |
| | Unary<Op, E>: Same dependencies as child. More...
|
| |
| struct | limes::expr::variable_set< UnaryFunc< Tag, E > > |
| | UnaryFunc<Tag, E>: Same dependencies as child. More...
|
| |
| struct | limes::expr::variable_set< ExprBound< E > > |
| | ExprBound<E>: Same dependencies as the expression. More...
|
| |
| struct | limes::expr::variable_set< Integral< E, Dim, Lo, Hi > > |
| |
| struct | limes::expr::variable_set< BoundExpr< E, Dim, BoundValue > > |
| | BoundExpr: Remove the bound dimension, keep remaining dependencies. More...
|
| |
| struct | limes::expr::is_separable< E, D1, D2 > |
| |
|
| template<typename E > |
| constexpr std::uint64_t | limes::expr::variable_set_v = variable_set<E>::value |
| | Helper variable template for cleaner syntax.
|
| |
| template<typename E , std::size_t Dim> |
| constexpr bool | limes::expr::depends_on_v = (variable_set<E>::value & (1ULL << Dim)) != 0 |
| | Check if an expression depends on a specific dimension.
|
| |
| template<typename E , std::uint64_t Mask> |
| constexpr bool | limes::expr::depends_on_any_v = (variable_set<E>::value & Mask) != 0 |
| | Check if an expression depends on any of the given dimensions (mask)
|
| |
| template<typename E , std::uint64_t Mask> |
| constexpr bool | limes::expr::depends_on_all_v = (variable_set<E>::value & Mask) == Mask |
| | Check if an expression depends on all of the given dimensions (mask)
|
| |
| template<typename E > |
| constexpr bool | limes::expr::is_constant_v = (variable_set<E>::value == 0) |
| | Check if an expression is constant (depends on no variables)
|
| |
| template<typename E > |
| constexpr std::size_t | limes::expr::dependency_count_v |
| | Count the number of dimensions an expression depends on.
|
| |
| template<typename E > |
| constexpr std::size_t | limes::expr::max_dimension_v |
| | Get the maximum dimension index an expression depends on (0 if constant)
|
| |
| template<typename E , std::uint64_t AllowedMask> |
| constexpr bool | limes::expr::detail::depends_only_on_v = (variable_set<E>::value & ~AllowedMask) == 0 |
| | Helper to check if an expression depends only on certain dimensions.
|
| |
| template<typename E , std::size_t D1, std::size_t D2> |
| constexpr bool | limes::expr::detail::single_child_separable_v |
| |
| template<typename E , std::size_t D1, std::size_t D2> |
| constexpr bool | limes::expr::is_separable_v = is_separable<E, D1, D2>::value |
| |