Infrared
|
Functions evaluate assignments of a subset of variables. More...
#include <functions.hpp>
Public Types | |
using | self_t = Function< FunValue > |
using | base_t = self_t |
using | assignment_t = Assignment |
using | fun_value_t = FunValue |
![]() | |
using | var_idx_t = int |
Public Member Functions | |
Function (const std::vector< var_idx_t > &vars) | |
virtual fun_value_t | operator() (const assignment_t &) const =0 |
virtual bool | guaranteed_zero (const assignment_t &a) const |
virtual bool | auto_materialize () const |
virtual std::string | name () const |
virtual | ~Function () |
![]() | |
Dependency (const std::vector< var_idx_t > &vars) | |
const std::vector< var_idx_t > & | vars () const |
virtual | ~Dependency () |
Functions evaluate assignments of a subset of variables.
using ired::Function< FunValue >::assignment_t = Assignment |
using ired::Function< FunValue >::base_t = self_t |
using ired::Function< FunValue >::fun_value_t = FunValue |
using ired::Function< FunValue >::self_t = Function<FunValue> |
|
inlineexplicit |
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in ired::MaterializedFunction< FunValue, ContainerS >.
|
inlinevirtual |
quick check whether function is definitely zero at assignment
a | assignment |
some functions know how to quick check for zero (in particular sparse materialized functions)
Reimplemented in ired::MaterializedFunction< FunValue, ContainerS >.
|
inlinevirtual |
Reimplemented in ired::MaterializedFunction< FunValue, ContainerS >.
|
pure virtual |
Implemented in ired::MaterializedFunction< FunValue, ContainerS >.