Infrared
Loading...
Searching...
No Matches
ired::Function< FunValue > Class Template Referenceabstract

Functions evaluate assignments of a subset of variables. More...

#include <functions.hpp>

Inheritance diagram for ired::Function< FunValue >:
Collaboration diagram for ired::Function< FunValue >:

Public Types

using self_t = Function< FunValue >
 
using base_t = self_t
 
using assignment_t = Assignment
 
using fun_value_t = FunValue
 
- Public Types inherited from ired::Dependency
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 ()
 
- Public Member Functions inherited from ired::Dependency
 Dependency (const std::vector< var_idx_t > &vars)
 
const std::vector< var_idx_t > & vars () const
 
virtual ~Dependency ()
 

Detailed Description

template<class FunValue = double>
class ired::Function< FunValue >

Functions evaluate assignments of a subset of variables.

Member Typedef Documentation

◆ assignment_t

template<class FunValue = double>
using ired::Function< FunValue >::assignment_t = Assignment

◆ base_t

template<class FunValue = double>
using ired::Function< FunValue >::base_t = self_t

◆ fun_value_t

template<class FunValue = double>
using ired::Function< FunValue >::fun_value_t = FunValue

◆ self_t

template<class FunValue = double>
using ired::Function< FunValue >::self_t = Function<FunValue>

Constructor & Destructor Documentation

◆ Function()

template<class FunValue = double>
ired::Function< FunValue >::Function ( const std::vector< var_idx_t > &  vars)
inlineexplicit

◆ ~Function()

template<class FunValue = double>
virtual ired::Function< FunValue >::~Function ( )
inlinevirtual

Member Function Documentation

◆ auto_materialize()

template<class FunValue = double>
virtual bool ired::Function< FunValue >::auto_materialize ( ) const
inlinevirtual

◆ guaranteed_zero()

template<class FunValue = double>
virtual bool ired::Function< FunValue >::guaranteed_zero ( const assignment_t a) const
inlinevirtual

quick check whether function is definitely zero at assignment

Parameters
aassignment
Returns
true, if certainly zero

some functions know how to quick check for zero (in particular sparse materialized functions)

Reimplemented in ired::MaterializedFunction< FunValue, ContainerS >.

◆ name()

template<class FunValue = double>
virtual std::string ired::Function< FunValue >::name ( ) const
inlinevirtual

◆ operator()()

template<class FunValue = double>
virtual fun_value_t ired::Function< FunValue >::operator() ( const assignment_t ) const
pure virtual

The documentation for this class was generated from the following file: