coco::model Class Reference
[Models]

The model class (an attributed DAG of expression nodes, lowest class in the model hierarchy). More...

#include <model.h>

Inheritance diagram for coco::model:

Inheritance graph
[legend]
Collaboration diagram for coco::model:

Collaboration graph
[legend]

List of all members.

Classes

struct  __docompare_nodes
struct  __docompare_variables
class  detect_0chain_visitor
struct  detect_0chain_visitor_st
class  lincoeff_visitor
struct  lincoeff_visitor_ret
struct  lincoeff_visitor_st
class  simplify_visitor_0
class  simplify_visitor_m
class  sort_constraints

Public Types

typedef dag< expression_node >
::walker 
walker
typedef dag< expression_node >
::const_walker 
const_walker
typedef std::vector< walker >
::iterator 
ref_iterator
typedef std::vector< walker >
::const_iterator 
const_ref_iterator
typedef _Base::children_iterator children_iterator
typedef _Base::parents_iterator parents_iterator
typedef
_Base::children_const_iterator 
children_const_iterator
typedef
_Base::parents_const_iterator 
parents_const_iterator
typedef _Base::erased_part erased_part
typedef _SequenceCtr< void
*, _PtrAlloc > 
container_type
typedef _DG_iterator< _Tp, _Tp
&, _Tp *, container_type,
children_iterator,
children_const_iterator
iterator
typedef _DG_iterator< _Tp,
const _Tp &, const _Tp
*, container_type,
children_iterator,
children_const_iterator
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef std::pair< walker, walkeredge
typedef std::pair< edge, bool > enhanced_edge
typedef _Tp value_type
typedef _Node node_type
typedef value_typepointer
typedef const value_typeconst_pointer
typedef value_typereference
typedef const value_typeconst_reference
typedef size_t size_type
typedef ptrdiff_t difference_type

Public Member Functions

 model (model_gid *__id=NULL, bool clone=false)
 model (model_gid *__id, const erased_part &_ep, bool clone=false)
 model (int __num_of_vars)
 model (const model &__m)
 model (model_gid *__id, const model &__m)
 model (std::istream &inp, bool do_simplify=true, vdbl::database *_db=NULL, vdbl::userid _uid=vdbl::userid(), std::vector< annotation > *_la=NULL, std::string mname=std::string(), bool continue_on_errors=false)
 model (const char *name, bool do_simplify=true, vdbl::database *_db=NULL, vdbl::userid _uid=vdbl::userid(), std::vector< annotation > *_la=NULL, bool continue_on_errors=false)
 ~model ()
int next_num ()
int next_variable_num ()
int next_constraint_num ()
void detach_gid ()
void compress_numbers ()
void renumber_variables ()
void renumber_constraints ()
void prepare_kill ()
bool micro_simplify ()
bool basic_simplify ()
void arrange_constraints ()
void detect_0chain ()
bool simplify_thin ()
void set_counters ()
void clr_sky_ground_link ()
void write (std::ostream &__o=std::cout) const
void check_counters (bool reset) const
ref_iterator ghost_begin ()
const_ref_iterator ghost_begin () const
ref_iterator ghost_end ()
const_ref_iterator ghost_end () const
walker store_node (const walker &_w)
walker store_variable (const walker &_w)
walker store_ghost (const walker &_w)
walker store_constraint (const walker &_w)
void free_node_num (unsigned int _nnum)
void free_var_num (int _vnum)
void free_const_num (const walker &_w, unsigned int _cnum)
void free_all ()
void free_nodes_on_destroy ()
void keep_nodes_on_destroy ()
void new_variables (int _new_num_of_vars)
bool is_empty (const walker &_w) const
walker empty_reference () const
bool get_linear_coeffs (const const_walker &expr, linalg::sparse_vector< double > &coeffs, double &constant, const std::vector< interval > &_ranges)
bool get_linear_coeffs (const const_walker &expr, linalg::sparse_vector< double > &coeffs, double &constant)
bool check_acyclicity (const walker &__parent, const walker &__child)
void clear ()
walker between (const walker &__parent, const children_iterator &__cit, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker between (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker between (const walker &__parent, const children_iterator &__cit, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it, const _Tp &__x)
void split (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pr_it, const _Tp &__x)
walker between_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
void insert_back_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void insert_front_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void add_edge (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void add_edge (const edge &__edge, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge_back (const walker &__parent, const walker &__child)
void add_edge_front (const walker &__parent, const walker &__child)
allocator_type get_allocator () const
walker ground ()
const_walker ground () const
walker sky ()
const_walker sky () const
children_iterator root_begin ()
children_const_iterator root_begin () const
children_iterator root_end ()
children_const_iterator root_end () const
parents_iterator leaf_begin ()
parents_const_iterator leaf_begin () const
parents_iterator leaf_end ()
parents_const_iterator leaf_end () const
bool empty () const
size_type size () const
size_type max_size () const
void swap (_Self &__x)
walker insert_node_in_graph (_Node *__n, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_node_in_graph (_Node *__n, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
void replace_edge_to_child (const walker &__parent, const walker &__child_old, const walker &__child_new)
void replace_edge_to_child (const walker &__parent, const walker &__child_old, const walker &__child_new)
void replace_edge_to_parent (const walker &__parent_old, const walker &__parent_new, const walker &__child)
void replace_edge_to_parent (const walker &__parent_old, const walker &__parent_new, const walker &__child)
void remove_edge (const edge &__edge)
void remove_edge (const walker &__parent, const walker &__child)
void remove_edge (const walker &__parent, const walker &__child)
void remove_edge_and_deattach (const walker &__parent, const walker &__child)
void remove_edge_and_deattach (const walker &__parent, const walker &__child)
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
void sort_child_edges (walker __position, Compare comp)
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
void sort_child_edges (walker __position, Compare comp)
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
void sort_parent_edges (walker __position, Compare comp)
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
void sort_parent_edges (walker __position, Compare comp)
walker insert_node (_Node *_node, const walker &__position, const container_insert_arg &__It)
walker insert_node (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
walker insert_node (const walker &__position, const container_insert_arg &__It)
walker insert_node (_Node *_node, const walker &__position, const container_insert_arg &__It)
walker insert_node (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
walker insert_node (const walker &__position, const container_insert_arg &__It)
walker insert_node_before (_Node *_node, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const walker &__position, const container_insert_arg &__It)
walker insert_node_before (_Node *_node, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const walker &__position, const container_insert_arg &__It)
void merge (const walker &__position, const walker &__second, bool merge_parent_edges=true, bool merge_child_edges=true)
void merge (const walker &__position, const walker &__second, bool merge_parent_edges=true, bool merge_child_edges=true)
void erase (const walker &__position)
void erase (const walker &__position)
void partial_erase_to_parent (const walker &__position, const walker &__parent, unsigned int idx)
void partial_erase_to_parent (const walker &__position, const walker &__parent, unsigned int idx)
void clear_erased_part (erased_part &_ep)
void clear_erased_part (erased_part &_ep)
erased_part erase_maximal_subgraph (const walker &__position)
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_subgraph (const walker &__position)
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_subgraph (const walker &__position)
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_subgraph (const walker &__position)
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
bool erase_child (const walker &__position, const children_iterator &__It)
bool erase_child (const walker &__position, const children_iterator &__It)
bool erase_parent (const walker &__position, const parents_iterator &__It)
bool erase_parent (const walker &__position, const parents_iterator &__It)
Methods for model access
These methods can be used for accessing important information of a model and the nodes, variables, constraints,...

unsigned int number_of_variables () const
unsigned int number_of_nodes () const
unsigned int number_of_constraints () const
unsigned int number_of_managed_nodes () const
unsigned int number_of_managed_variables () const
unsigned int number_of_managed_constraints () const
const walkervar (unsigned int i) const
const walkernode (unsigned int i) const
const walkerconstraint (unsigned int i) const
model_gidgid_data () const
void remove_node (const walker &_w, unsigned int _nnum)
void remove_node (const walker &_w)
void remove_node (unsigned int __node_num)
Model construction methods
These methods can be used to build a model within a COCONUT module, if it is not read from a file in .dag format.

walker ghost (unsigned int _nnum)
walker constant (double _constant)
walker constant (const std::vector< double > &_constant)
walker variable (unsigned int _vnum)
walker binary (const walker &_op1, const walker &_op2, int expr_type, double _coeff1=1.0, double _coeff2=1.0)
walker binary (const walker &_op1, const walker &_op2, int expr_type, const basic_alltype &_params, double _coeff1=1.0, double _coeff2=1.0)
walker unary (const walker &_op1, int expr_type, double _coeff=1.0)
walker unary (const walker &_op1, int expr_type, const basic_alltype &_params, double _coeff=1.0)
walker nary (const std::vector< walker > &_op, int expr_type, const std::vector< double > &_coeffs=std::vector< double >())
walker nary (const std::vector< walker > &_op, int expr_type, const basic_alltype &_params, const std::vector< double > &_coeffs=std::vector< double >())
walker vnary (int expr_type,...)
walker vxnary (const basic_alltype &_params, int expr_type,...)
Methods for retrieving modeling information
These methods return names of variables and constants and other data which is irrelevant for the solution process but necessary for user interaction.

const std::string model_name () const
const std::string var_name (unsigned int n) const
const std::string const_name (unsigned int n) const
const std::string obj_name () const
double obj_adj () const
double obj_mult () const
size_t n_fixed_vars () const
std::pair< const std::string,
double > 
fixed_var (unsigned int n) const
size_t n_unused_vars () const
const std::string & unused_var (unsigned int n) const
size_t n_unused_constrs () const
const std::string & unused_constr (unsigned int n) const
const std::map< int,
std::vector< double > > & 
trace_points () const
const std::map< int,
std::vector< double > > & 
optima () const
bool get_const_num (unsigned int node_num, unsigned int &const_num) const

Public Attributes

linalg::matrix< double > lin
std::vector< linalg::matrix
< double > > 
matd
std::vector< linalg::matrix
< interval > > 
mati
int ocoeff
walker objective
std::vector< walkerconstraints
bool has_read_errors

Protected Types

typedef _Base::allocator_type allocator_type

Protected Member Functions

_Node * _C_create_node (const _Tp &__x)
_Node * _C_create_node ()
void _C_destroy_node (_Node *__p)
void clear_graph (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_node)
void clear_graph (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_node)
_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_get_node ()
void _C_put_node (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *__p)
void _C_put_node (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *__p)
void clear_children ()
void clear_parents ()
void add_all_children (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_parent)
void add_all_children (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_parent)
void add_all_parents (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_child)
void add_all_parents (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_child)

Protected Attributes

_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_ground
_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_sky
int _C_mark

Friends

class dag_delta
class dag_undelta


Detailed Description

This class is used for the internal representation of optimization problems. It stores one optimization problem, which is passed to the various inference engines. The class is a subclass of dag<expression_node>, so the optimization problem is stored in form of a DAG of nodes of type expression_node. Models are internally represented by a hierarchy of classes: model_iddata, model_gid, model.

Definition at line 55 of file model.h.


Member Typedef Documentation

typedef _Base::allocator_type dag< class, _SequenceCtr, class, class >::allocator_type [protected, inherited]

typedef _Base::children_const_iterator dag< class, _SequenceCtr, class, class >::children_const_iterator [inherited]

typedef _Base::children_iterator dag< class, _SequenceCtr, class, class >::children_iterator [inherited]

typedef _DG_iterator< _Tp, const _Tp &, const _Tp *, container_type, children_iterator, children_const_iterator > dag< class, _SequenceCtr, class, class >::const_iterator [inherited]

typedef const value_type * dag< class, _SequenceCtr, class, class >::const_pointer [inherited]

This is a const iterator to the various vectors of walkers

Definition at line 70 of file model.h.

typedef const value_type & dag< class, _SequenceCtr, class, class >::const_reference [inherited]

typedef std::reverse_iterator< const_iterator > dag< class, _SequenceCtr, class, class >::const_reverse_iterator [inherited]

Const walker (generalized const pointer) to the DAG.

Reimplemented from dag< expression_node >.

Definition at line 65 of file model.h.

typedef _SequenceCtr< void *, _PtrAlloc > dag< class, _SequenceCtr, class, class >::container_type [inherited]

typedef ptrdiff_t dag< class, _SequenceCtr, class, class >::difference_type [inherited]

typedef std::pair< walker, walker > dag< class, _SequenceCtr, class, class >::edge [inherited]

typedef std::pair< edge, bool > dag< class, _SequenceCtr, class, class >::enhanced_edge [inherited]

typedef _Base::erased_part dag< class, _SequenceCtr, class, class >::erased_part [inherited]

typedef _DG_iterator< _Tp, _Tp &, _Tp *, container_type, children_iterator, children_const_iterator > dag< class, _SequenceCtr, class, class >::iterator [inherited]

typedef _Node dag< class, _SequenceCtr, class, class >::node_type [inherited]

typedef _Base::parents_const_iterator dag< class, _SequenceCtr, class, class >::parents_const_iterator [inherited]

typedef _Base::parents_iterator dag< class, _SequenceCtr, class, class >::parents_iterator [inherited]

typedef value_type * dag< class, _SequenceCtr, class, class >::pointer [inherited]

typedef std::vector<walker>::iterator coco::model::ref_iterator

This is an iterator to the various vectors of walkers

Definition at line 68 of file model.h.

typedef value_type & dag< class, _SequenceCtr, class, class >::reference [inherited]

typedef std::reverse_iterator< iterator > dag< class, _SequenceCtr, class, class >::reverse_iterator [inherited]

typedef size_t dag< class, _SequenceCtr, class, class >::size_type [inherited]

typedef _Tp dag< class, _SequenceCtr, class, class >::value_type [inherited]

Walker (generalized pointer) to the DAG.

Reimplemented from dag< expression_node >.

Definition at line 63 of file model.h.


Constructor & Destructor Documentation

coco::model::model ( model_gid __id = NULL,
bool  clone = false 
) [inline]

This constructor generates a new model. If __id is non-NULL and clone is true, the new model has model_gid __id. Otherwise, new a model_gid structure is generated, either empty (__id is NULL) or a copy of __id.

Definition at line 520 of file model.hpp.

coco::model::model ( model_gid __id,
const erased_part _ep,
bool  clone = false 
)

This constructor generates a new model from the erased_part structure _ep (produced by some erase subgraph method). If __id is non-NULL and clone is true, the new model has model_gid __id. Otherwise, new a model_gid structure is generated, either empty (__id is NULL) or a copy of __id.

Definition at line 196 of file model.cc.

coco::model::model ( int  __num_of_vars  )  [inline]

This constructor generates a new model prepared for __num_of_vars variables.

Definition at line 513 of file model.hpp.

coco::model::model ( const model __m  )  [inline]

Standard Copy Constructor, which generates a new model_gid.

Definition at line 542 of file model.hpp.

coco::model::model ( model_gid __id,
const model __m 
) [inline]

Copy Constructor, which transfers the model __m to the model_gid __id.

Definition at line 558 of file model.hpp.

coco::model::model ( std::istream &  inp,
bool  do_simplify = true,
vdbl::database *  _db = NULL,
vdbl::userid  _uid = vdbl::userid(),
std::vector< annotation > *  _la = NULL,
std::string  mname = std::string(),
bool  continue_on_errors = false 
)

This constructor reads a model in .dag format from istream inp and builds the internal structure. The parameter do_simplify determines, whether the simplifier is invoked after reading. The parameters _db, _uid, and _la can be used to initialize the search database and the model annotations. The parameter mname can be used to initialize the model name. If continue_on_errors is true, the constructor does not throw an I/O exception.

Definition at line 433 of file model.cc.

coco::model::model ( const char *  name,
bool  do_simplify = true,
vdbl::database *  _db = NULL,
vdbl::userid  _uid = vdbl::userid(),
std::vector< annotation > *  _la = NULL,
bool  continue_on_errors = false 
)

This constructor reads a model in .dag format from file name and builds the internal structure. The parameter do_simplify determines, whether the simplifier is invoked after reading. The parameters _db, _uid, and _la can be used to initialize the search database and the model annotations. If continue_on_errors is true, the constructor does not throw an I/O exception.

Definition at line 443 of file model.cc.

coco::model::~model (  )  [inline]

Standard Destructor

Definition at line 574 of file model.hpp.


Member Function Documentation

_Node * dag< class, _SequenceCtr, class, class >::_C_create_node (  )  [protected, inherited]

_Node * dag< class, _SequenceCtr, class, class >::_C_create_node ( const _Tp &  __x  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::_C_destroy_node ( _Node *  __p  )  [protected, inherited]

_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > * dag< class, _SequenceCtr, class, class >::_C_get_node (  )  [protected, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_put_node ( _DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  __p  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::_C_put_node ( _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  __p  )  [protected, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::add_all_children ( _Output_Iterator  fi,
_DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _parent 
) [protected, inherited]

void dag< class, _SequenceCtr, class, class >::add_all_children ( _Output_Iterator  fi,
_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  _parent 
) [protected, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::add_all_parents ( _Output_Iterator  fi,
_DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _child 
) [protected, inherited]

void dag< class, _SequenceCtr, class, class >::add_all_parents ( _Output_Iterator  fi,
_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  _child 
) [protected, inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge ( const edge __edge,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge_back ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::add_edge_front ( const walker __parent,
const walker __child 
) [inherited]

void coco::model::arrange_constraints (  )  [inline]

A call to arrange_constraints sorts the constraints according to their complexity.

Definition at line 1518 of file model.hpp.

bool coco::model::basic_simplify (  ) 

This method calls the full model simplifier.

Definition at line 3730 of file model.cc.

walker dag< class, _SequenceCtr, class, class >::between ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between ( const walker __parent,
const children_iterator __cit,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between ( const walker __parent,
const children_iterator __cit,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::between_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

model::walker coco::model::binary ( const walker _op1,
const walker _op2,
int  expr_type,
const basic_alltype _params,
double  _coeff1 = 1.0,
double  _coeff2 = 1.0 
) [inline]

This method constructs a new binary operation with left operand _op1, multiplicative coefficient _coeff1, right operand _op2, multiplicative coefficient _coeff2, expression type expr_type, and additional expression parameters _params.

Definition at line 1834 of file model.hpp.

model::walker coco::model::binary ( const walker _op1,
const walker _op2,
int  expr_type,
double  _coeff1 = 1.0,
double  _coeff2 = 1.0 
) [inline]

This method constructs a new binary operation with left operand _op1, multiplicative coefficient _coeff1, right operand _op2, multiplicative coefficient _coeff2, and expression type expr_type.

Definition at line 1814 of file model.hpp.

bool dag< class, _SequenceCtr, class, class >::check_acyclicity ( const walker __parent,
const walker __child 
) [inherited]

void coco::model::check_counters ( bool  reset  )  const

Check consistency of the number of parents and children of all nodes.

Definition at line 4017 of file model.cc.

void dag< class, _SequenceCtr, class, class >::clear (  )  [inherited]

void dag< class, _SequenceCtr, class, class >::clear_children (  )  [protected, inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::clear_erased_part ( erased_part _ep  )  [inherited]

void dag< class, _SequenceCtr, class, class >::clear_erased_part ( erased_part _ep  )  [inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::clear_graph ( _DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _node  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::clear_graph ( _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *  _node  )  [protected, inherited]

void dag< class, _SequenceCtr, class, class >::clear_parents (  )  [protected, inherited]

void coco::model::clr_sky_ground_link (  )  [inline]

This method removes the edge from sky to ground in the DAG after all other nodes have been inserted.

Definition at line 1935 of file model.hpp.

void coco::model::compress_numbers (  )  [inline]

If this method is called, the nodes, variables, and constraints are renumbered to fill gaps (unused numbers). To keep the model hierarchy consistent, all numbers in all models in the same model_iddata are changed.

Definition at line 1533 of file model.hpp.

const std::string coco::model::const_name ( unsigned int  n  )  const [inline]

This method returns the name of the constraint n.

Definition at line 625 of file model.hpp.

model::walker coco::model::constant ( const std::vector< double > &  _constant  )  [inline]

This method constructs a new vector constant with value _constant.

Definition at line 1733 of file model.hpp.

model::walker coco::model::constant ( double  _constant  )  [inline]

This method constructs a new scalar constant with value _constant.

Definition at line 1722 of file model.hpp.

const model::walker & coco::model::constraint ( unsigned int  i  )  const [inline]

A call to this method returns a walker to constraint i.

Definition at line 660 of file model.hpp.

void coco::model::detach_gid (  )  [inline]

A call to this method detaches the model from its model_gid. A new model_gid is generated within the same model_iddata.

Definition at line 511 of file model.hpp.

void coco::model::detect_0chain (  ) 

This method identifies all 0-chains (univariate functions) in the DAG.

Definition at line 3980 of file model.cc.

bool dag< class, _SequenceCtr, class, class >::empty (  )  const [inherited]

model::walker coco::model::empty_reference (  )  const [inline]

This method returns an empty node reference.

Definition at line 508 of file model.hpp.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase ( const walker __position  )  [inherited]

void dag< class, _SequenceCtr, class, class >::erase ( const walker __position  )  [inherited]

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_child ( const walker __position,
const children_iterator __It 
) [inherited]

bool dag< class, _SequenceCtr, class, class >::erase_child ( const walker __position,
const children_iterator __It 
) [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_pregraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_pregraph ( const walker __position  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_subgraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_maximal_subgraph ( const walker __position  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_pregraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_pregraph ( const walker __position  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_subgraph ( const walker __position  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inherited]

erased_part dag< class, _SequenceCtr, class, class >::erase_minimal_subgraph ( const walker __position  )  [inherited]

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_parent ( const walker __position,
const parents_iterator __It 
) [inherited]

bool dag< class, _SequenceCtr, class, class >::erase_parent ( const walker __position,
const parents_iterator __It 
) [inherited]

std::pair< const std::string, double > coco::model::fixed_var ( unsigned int  n  )  const [inline]

This method returns the name and value of the fixed variable n.

Definition at line 631 of file model.hpp.

void coco::model::free_all (  )  [inline]

A call to this method removes all node, variable, and constraint references kept by this model.

Definition at line 1622 of file model.hpp.

void coco::model::free_const_num ( const walker _w,
unsigned int  _cnum 
) [inline]

This method removes the constraint _cnum from all model data structures.

Definition at line 1694 of file model.hpp.

void coco::model::free_node_num ( unsigned int  _nnum  )  [inline]

This method removes the node _nnum from all model data structures.

Definition at line 1670 of file model.hpp.

void coco::model::free_nodes_on_destroy (  )  [inline]

This method marks tells the model to call free_all during model destruction.

Definition at line 600 of file model.hpp.

void coco::model::free_var_num ( int  _vnum  )  [inline]

This method removes the variable _vnum from all model data structures.

Definition at line 1682 of file model.hpp.

allocator_type dag< class, _SequenceCtr, class, class >::get_allocator (  )  const [inherited]

bool coco::model::get_const_num ( unsigned int  node_num,
unsigned int &  const_num 
) const [inline]

The get_const_num method assigns to const_num the constraint number associated with the constraint, whose result node has node number node_num. The return value is true, if there is a constraint associated with node node_num.

Definition at line 596 of file model.hpp.

bool coco::model::get_linear_coeffs ( const const_walker expr,
linalg::sparse_vector< double > &  coeffs,
double &  constant 
) [inline]

A call to this method retrieves the coefficients (coeffs) and the constant (constant) of the linear function, whose result node is expr. It returns true, if the expression was indeed linear and false otherwise.

Definition at line 2807 of file model.hpp.

bool coco::model::get_linear_coeffs ( const const_walker expr,
linalg::sparse_vector< double > &  coeffs,
double &  constant,
const std::vector< interval > &  _ranges 
) [inline]

A call to this method retrieves the coefficients (coeffs) and the constant (constant) of the linear function, whose result node is expr. It returns true, if the expression was indeed linear and false otherwise. The retrieval of the coefficients is to be performed in the feasible set determined by the node ranges _ranges.

Definition at line 2796 of file model.hpp.

model::walker coco::model::ghost ( unsigned int  _nnum  )  [inline]

This method constructs a new ghost with node number _nnum.

Definition at line 1744 of file model.hpp.

const_ref_iterator coco::model::ghost_begin (  )  const [inline]

Get a const iterator to the first ghost.

Definition at line 363 of file model.h.

ref_iterator coco::model::ghost_begin (  )  [inline]

Get an iterator to the first ghost.

Definition at line 361 of file model.h.

const_ref_iterator coco::model::ghost_end (  )  const [inline]

Get a const iterator beyond the last ghost.

Definition at line 367 of file model.h.

ref_iterator coco::model::ghost_end (  )  [inline]

Get an iterator beyond the last ghost.

Definition at line 365 of file model.h.

model_gid* coco::model::gid_data (  )  const [inline]

This method returns the model_gid structure this model belongs to.

Definition at line 199 of file model.h.

const_walker dag< class, _SequenceCtr, class, class >::ground (  )  const [inherited]

walker dag< class, _SequenceCtr, class, class >::ground (  )  [inherited]

void dag< class, _SequenceCtr, class, class >::insert_back_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_front_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_before ( _Node *  _node,
const walker __position,
const container_insert_arg &  __It 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node *  __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::insert_node_in_graph ( _Node *  __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_subgraph ( _Self &  __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_subgraph ( _Self &  __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_subgraph ( _Self &  __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::insert_subgraph ( _Self &  __subgraph,
const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inherited]

bool coco::model::is_empty ( const walker _w  )  const [inline]

Check whether this node is empty (unused).

Definition at line 507 of file model.hpp.

void coco::model::keep_nodes_on_destroy (  )  [inline]

This method marks tells the model not to call free_all during model destruction.

Definition at line 611 of file model.hpp.

parents_const_iterator dag< class, _SequenceCtr, class, class >::leaf_begin (  )  const [inherited]

parents_iterator dag< class, _SequenceCtr, class, class >::leaf_begin (  )  [inherited]

parents_const_iterator dag< class, _SequenceCtr, class, class >::leaf_end (  )  const [inherited]

parents_iterator dag< class, _SequenceCtr, class, class >::leaf_end (  )  [inherited]

size_type dag< class, _SequenceCtr, class, class >::max_size (  )  const [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inherited]

void dag< class, _SequenceCtr, class, class >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inherited]

bool coco::model::micro_simplify (  ) 

This method calls the micro simplifier which only initializes the most important data and semantics information.

Definition at line 3174 of file model.cc.

const std::string coco::model::model_name (  )  const [inline]

This method returns the name of the model.

Definition at line 622 of file model.hpp.

size_t coco::model::n_fixed_vars (  )  const [inline]

This method returns the number of variables fixed by the preprocessor.

Definition at line 630 of file model.hpp.

size_t coco::model::n_unused_constrs (  )  const [inline]

This method returns the number of unused constraints.

Definition at line 636 of file model.hpp.

size_t coco::model::n_unused_vars (  )  const [inline]

This method returns the number of unused variables.

Definition at line 633 of file model.hpp.

model::walker coco::model::nary ( const std::vector< walker > &  _op,
int  expr_type,
const basic_alltype _params,
const std::vector< double > &  _coeffs = std::vector<double>() 
) [inline]

This method constructs a new n-ary operation with operand list _op, multiplicative coefficient list _coeffs, expression type expr_type, and additional expression parameters _params.

Definition at line 1895 of file model.hpp.

model::walker coco::model::nary ( const std::vector< walker > &  _op,
int  expr_type,
const std::vector< double > &  _coeffs = std::vector<double>() 
) [inline]

This method constructs a new n-ary operation with operand list _op, multiplicative coefficient list _coeffs, and expression type expr_type.

Definition at line 1876 of file model.hpp.

void coco::model::new_variables ( int  _new_num_of_vars  )  [inline]

This method sets the number of variables in the model to _new_num_of_vars and communicates the change to all models below the same model_iddata.

Definition at line 1717 of file model.hpp.

int coco::model::next_constraint_num (  )  [inline]

This method returns the next free constraint number.

Definition at line 1525 of file model.hpp.

int coco::model::next_num (  )  [inline]

This method returns the next free node number.

Definition at line 1523 of file model.hpp.

int coco::model::next_variable_num (  )  [inline]

This method returns the next free variable number.

Definition at line 1524 of file model.hpp.

const model::walker & coco::model::node ( unsigned int  i  )  const [inline]

A call to this method returns a walker to node i.

Definition at line 654 of file model.hpp.

unsigned int coco::model::number_of_constraints (  )  const [inline]

The number_of_constraints method returns the number of constraints across all models governed by the same model_iddata.

Definition at line 648 of file model.hpp.

unsigned int coco::model::number_of_managed_constraints (  )  const [inline]

This method returns the number of constraints managed by this model class (the number of constraints in this DAG.

Definition at line 190 of file model.h.

unsigned int coco::model::number_of_managed_nodes (  )  const [inline]

This method returns the number of nodes managed by this model class (the number of nodes in this DAG.

Definition at line 182 of file model.h.

unsigned int coco::model::number_of_managed_variables (  )  const [inline]

This method returns the number of variables managed by this model class (the number of variables in this DAG.

Definition at line 186 of file model.h.

unsigned int coco::model::number_of_nodes (  )  const [inline]

The number_of_nodes method returns the number of nodes across all models governed by the same model_iddata.

Definition at line 651 of file model.hpp.

unsigned int coco::model::number_of_variables (  )  const [inline]

The number_of_variables method returns the number of variables across all models governed by the same model_iddata.

Definition at line 645 of file model.hpp.

double coco::model::obj_adj (  )  const [inline]

This method returns the additive constant in the objective function.

Definition at line 628 of file model.hpp.

double coco::model::obj_mult (  )  const [inline]

This method returns the scalar multiplier of the objective function.

Definition at line 629 of file model.hpp.

const std::string coco::model::obj_name (  )  const [inline]

This method returns the name of the objective function.

Definition at line 627 of file model.hpp.

const std::map< int, std::vector< double > > & coco::model::optima (  )  const [inline]

This method returns the known optima defined. The return value is a map of known optima numbers to coordinate vectors.

Definition at line 642 of file model.hpp.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inherited]

void dag< class, _SequenceCtr, class, class >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inherited]

void coco::model::prepare_kill (  )  [inline]

This method takes care that upon deletion everything goes away.

Definition at line 327 of file model.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::remove_edge ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::remove_edge ( const edge __edge  )  [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inherited]

void coco::model::remove_node ( unsigned int  __node_num  )  [inline]

The remove_node methods remove the node, specified by its walker _w, its node number _nnum, or by both.

Definition at line 1712 of file model.hpp.

void coco::model::remove_node ( const walker _w  )  [inline]

The remove_node methods remove the node, specified by its walker _w, its node number _nnum, or by both.

Definition at line 1707 of file model.hpp.

void coco::model::remove_node ( const walker _w,
unsigned int  _nnum 
)

The remove_node methods remove the node, specified by its walker _w, its node number _nnum, or by both.

Definition at line 243 of file model.cc.

void coco::model::renumber_constraints (  ) 

If this method is called, the constraints are renumbered to fill gaps (unused numbers). To keep the model hierarchy consistent, all numbers in all models in the same model_iddata are changed.

void coco::model::renumber_variables (  )  [inline]

If this method is called, the variables are renumbered to fill gaps (unused numbers). To keep the model hierarchy consistent, all numbers in all models in the same model_iddata are changed.

Definition at line 1527 of file model.hpp.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inherited]

void dag< class, _SequenceCtr, class, class >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inherited]

void dag< class, _SequenceCtr, class, class >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inherited]

children_const_iterator dag< class, _SequenceCtr, class, class >::root_begin (  )  const [inherited]

children_iterator dag< class, _SequenceCtr, class, class >::root_begin (  )  [inherited]

children_const_iterator dag< class, _SequenceCtr, class, class >::root_end (  )  const [inherited]

children_iterator dag< class, _SequenceCtr, class, class >::root_end (  )  [inherited]

void coco::model::set_counters (  )  [inline]

This method initializes the n_parents and n_children members of all nodes.

See also:
expression_node.

Definition at line 1941 of file model.hpp.

bool coco::model::simplify_thin (  )  [inline]

This simplifier replaces all thin nodes by corresponding constants and simplifies the DAG accordingly.

Bug:
The simplify_thin method does not yet work properly.

Definition at line 1513 of file model.hpp.

size_type dag< class, _SequenceCtr, class, class >::size (  )  const [inherited]

const_walker dag< class, _SequenceCtr, class, class >::sky (  )  const [inherited]

walker dag< class, _SequenceCtr, class, class >::sky (  )  [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_child_edges ( walker  __position,
Compare  comp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_child_edges ( walker  __position,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inherited]

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inherited]

void dag< class, _SequenceCtr, class, class >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pr_it,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split ( const walker __parent,
const children_iterator __ch_it,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

void dag< class, _SequenceCtr, class, class >::split ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inherited]

walker dag< class, _SequenceCtr, class, class >::split_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inherited]

model::walker coco::model::store_constraint ( const walker _w  )  [inline]

This method stores a new constraint in all model data structures

Definition at line 1595 of file model.hpp.

model::walker coco::model::store_ghost ( const walker _w  )  [inline]

This method stores a new ghost in all model data structures

Definition at line 1607 of file model.hpp.

model::walker coco::model::store_node ( const walker _w  )  [inline]

This method stores a new node in all model data structures

Definition at line 1563 of file model.hpp.

model::walker coco::model::store_variable ( const walker _w  )  [inline]

This method stores a new variable in all model data structures

Definition at line 1579 of file model.hpp.

void dag< class, _SequenceCtr, class, class >::swap ( _Self &  __x  )  [inherited]

const std::map< int, std::vector< double > > & coco::model::trace_points (  )  const [inline]

This method returns the trace points defined. The return value is a map of trace point numbers to coordinate vectors.

Definition at line 640 of file model.hpp.

model::walker coco::model::unary ( const walker _op1,
int  expr_type,
const basic_alltype _params,
double  _coeff = 1.0 
) [inline]

This method constructs a new unary operation with operand _op1, multiplicative coefficient _coeff, expression type expr_type, and additional expression parameters _params.

Definition at line 1865 of file model.hpp.

model::walker coco::model::unary ( const walker _op1,
int  expr_type,
double  _coeff = 1.0 
) [inline]

This method constructs a new unary operation with operand _op1, multiplicative coefficient _coeff, and expression type expr_type.

Definition at line 1851 of file model.hpp.

const std::string & coco::model::unused_constr ( unsigned int  n  )  const [inline]

This method returns the name of the unused constraint n.

Definition at line 638 of file model.hpp.

const std::string & coco::model::unused_var ( unsigned int  n  )  const [inline]

This method returns the name of the unused variable n.

Definition at line 634 of file model.hpp.

const model::walker & coco::model::var ( unsigned int  i  )  const [inline]

A call to this method returns a walker to variable i.

Definition at line 657 of file model.hpp.

const std::string coco::model::var_name ( unsigned int  n  )  const [inline]

This method returns the name of the variable n.

Definition at line 623 of file model.hpp.

model::walker coco::model::variable ( unsigned int  _vnum  ) 

This method constructs a new variable with variable number _vnum.

Definition at line 3881 of file model.cc.

model::walker coco::model::vnary ( int  expr_type,
  ... 
)

This method constructs a new n-ary operation with expression type expr_type. The operands are specified as the additional parameters and need to be of type walker.

Definition at line 3925 of file model.cc.

model::walker coco::model::vxnary ( const basic_alltype _params,
int  expr_type,
  ... 
)

This method constructs a new n-ary operation with expression type expr_type and additional expression parameters _params. The operands and multiplicative constants are specified as the additional parameters and need to be of type walker followed by a double, and so on. The final double (in case it is 1.0) can be left out.

Definition at line 3950 of file model.cc.

void coco::model::write ( std::ostream &  __o = std::cout  )  const

This method writes the DAG in .dag format to the ostream __o.

Definition at line 3798 of file model.cc.


Friends And Related Function Documentation

friend class dag_delta [friend]

Definition at line 536 of file model.h.

friend class dag_undelta [friend]

Definition at line 537 of file model.h.


Member Data Documentation

_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > * dag< class, _SequenceCtr, class, class >::_C_ground [protected, inherited]

int dag< class, _SequenceCtr, class, class >::_C_mark [protected, inherited]

_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > * dag< class, _SequenceCtr, class, class >::_C_sky [protected, inherited]

This is a vector of walkers pointing to the result nodes of the constraints.

Definition at line 112 of file model.h.

This member is set to if an I/O exception was raised during model reading.

Definition at line 115 of file model.h.

The lin member is the matrix of linear constraints.

Definition at line 93 of file model.h.

std::vector<linalg::matrix<double> > coco::model::matd

The matd member is a vector of double matrices.

Definition at line 95 of file model.h.

The matd member is a vector of interval matrices.

Definition at line 97 of file model.h.

This is a walker pointing to the result node of the objective function.

Definition at line 109 of file model.h.

This objective coefficient is used to transfer any constraint satisfaction problem or optimization problem to a minimization problem. The values are
1 for a minimization problem
-1 for a maximization problem
0 for a constraint satisfaction problem

Definition at line 107 of file model.h.


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

Generated on Tue Feb 9 14:49:37 2010 for COCONUT API by  doxygen 1.5.8