Infrared
Loading...
Searching...
No Matches
ired::FeatureNetwork< FunValue, EvaluationPolicy > Class Template Reference

the feature network More...

#include <feature_network.hpp>

Public Types

using var_idx_t = int
 
using var_value_t = int
 
using fun_value_t = FunValue
 
using assignment_t = Assignment
 
using function_t = Function< FunValue >
 
using constraint_t = Constraint
 
using evaluation_policy_t = EvaluationPolicy
 
using cluster_t = Cluster< fun_value_t >
 suitable cluster type for the constraint network
 

Public Member Functions

 FeatureNetwork ()
 Construct empty.
 
 FeatureNetwork (const FiniteDomainVector &domains)
 Construct with domains.
 
 FeatureNetwork (int num_vars, FiniteDomain domain)
 Construct with domains of equal size.
 
 ~FeatureNetwork ()
 
var_idx_t add_variable (FiniteDomain domain)
 add variable with domain size
 
auto add_constraint (const std::shared_ptr< constraint_t > &x)
 add constraint
 
auto add_function (const std::shared_ptr< function_t > &x)
 add function
 
int num_vars () const
 Number of variables.
 
const auto & domains () const
 Get vector of domains (read only)
 

Detailed Description

template<class FunValue, class EvaluationPolicy>
class ired::FeatureNetwork< FunValue, EvaluationPolicy >

the feature network

A feature network consists of sets of

  • variables
  • constraints
  • functions

The variables are indexed (0..n-1). Each variable has a finite domain. An object holds shared pointers to the functions and constraints of the network. In this way, it guarantees their existence as long as the network exists.

Member Typedef Documentation

◆ assignment_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::assignment_t = Assignment

◆ cluster_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::cluster_t = Cluster<fun_value_t>

suitable cluster type for the constraint network

◆ constraint_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::constraint_t = Constraint

◆ evaluation_policy_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::evaluation_policy_t = EvaluationPolicy

◆ fun_value_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::fun_value_t = FunValue

◆ function_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::function_t = Function<FunValue>

◆ var_idx_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::var_idx_t = int

◆ var_value_t

template<class FunValue , class EvaluationPolicy >
using ired::FeatureNetwork< FunValue, EvaluationPolicy >::var_value_t = int

Constructor & Destructor Documentation

◆ FeatureNetwork() [1/3]

template<class FunValue , class EvaluationPolicy >
ired::FeatureNetwork< FunValue, EvaluationPolicy >::FeatureNetwork ( )
inline

Construct empty.

◆ FeatureNetwork() [2/3]

template<class FunValue , class EvaluationPolicy >
ired::FeatureNetwork< FunValue, EvaluationPolicy >::FeatureNetwork ( const FiniteDomainVector domains)
inlineexplicit

Construct with domains.

◆ FeatureNetwork() [3/3]

template<class FunValue , class EvaluationPolicy >
ired::FeatureNetwork< FunValue, EvaluationPolicy >::FeatureNetwork ( int  num_vars,
FiniteDomain  domain 
)
inline

Construct with domains of equal size.

◆ ~FeatureNetwork()

template<class FunValue , class EvaluationPolicy >
ired::FeatureNetwork< FunValue, EvaluationPolicy >::~FeatureNetwork ( )
inline

Member Function Documentation

◆ add_constraint()

template<class FunValue , class EvaluationPolicy >
auto ired::FeatureNetwork< FunValue, EvaluationPolicy >::add_constraint ( const std::shared_ptr< constraint_t > &  x)
inline

add constraint

Parameters
xshared pointer to constraint
Returns
the added constraint

If the virtual method x->auto_materialize() returns true, then the constraint *x is materialized as mx and the cn holds a shared pointer to *mx. Otherwise, the network holds a shared pointer to *x.

◆ add_function()

template<class FunValue , class EvaluationPolicy >
auto ired::FeatureNetwork< FunValue, EvaluationPolicy >::add_function ( const std::shared_ptr< function_t > &  x)
inline

add function

Parameters
xshared pointer to function
Returns
the added function

If the virtual method x->auto_materialize() returns true, then the function *x is materialized as mx and the cn holds a shared pointer to *mx. Otherwise, the network holds a shared pointer to *x.

◆ add_variable()

template<class FunValue , class EvaluationPolicy >
var_idx_t ired::FeatureNetwork< FunValue, EvaluationPolicy >::add_variable ( FiniteDomain  domain)
inline

add variable with domain size

Returns
0-based index of the new variable

◆ domains()

template<class FunValue , class EvaluationPolicy >
const auto & ired::FeatureNetwork< FunValue, EvaluationPolicy >::domains ( ) const
inline

Get vector of domains (read only)

◆ num_vars()

template<class FunValue , class EvaluationPolicy >
int ired::FeatureNetwork< FunValue, EvaluationPolicy >::num_vars ( ) const
inline

Number of variables.


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