Generated on Mon Aug 25 11:35:49 2008 for Gecode by doxygen 1.5.6

Gecode::ViewArray< View > Class Template Reference
[Programming actors]

List of all members.


Detailed Description

template<class View>
class Gecode::ViewArray< View >

View arrays.

View arrays store views. They are typically used for storing the views with which propagators and branchings compute.

Definition at line 131 of file array.icc.


Constructors and initialization

 ViewArray (void)
 Default constructor (array of size 0).
 ViewArray (Space *home, int m)
 Allocate array with m variables.
 ViewArray (const ViewArray< View > &a)
 Initialize from view array a (share elements).
 ViewArray (Space *home, const Reflection::VarMap &vars, Reflection::Arg *spec)
 Initialize from specification spec with variables vars.
 ViewArray (Space *home, const ViewArray< View > &a)
 Initialize from view array a (copy elements).
const ViewArray< View > & operator= (const ViewArray< View > &a)
 Initialize from view array a (share elements).
template<class Var>
 ViewArray (Space *home, const VarArgArray< Var > &a)
 Initialize from variable argument array a (copy elements).

Array size

int size (void) const
 Return size of array (number of elements).
void size (int n)
 Decrease size of array (number of elements).

Array elements

View & operator[] (int i)
 Return view at position i.
const View & operator[] (int i) const
 Return view at position i.

Dependencies

void subscribe (Space *home, Propagator *p, PropCond pc, bool process=true)
 Subscribe propagator p with propagation condition pc to variable.
void cancel (Space *home, Propagator *p, PropCond pc)
 Cancel subscription of propagator p with propagation condition pc to all views.
void subscribe (Space *home, Advisor *a)
 Subscribe advisor a to variable.
void cancel (Space *home, Advisor *a)
 Cancel subscription of advisor a.

Cloning

void update (Space *, bool share, ViewArray< View > &a)
 Update array to be a clone of array a.

Moving elements

void move_fst (int i)
 Move assigned view from position 0 to position i (shift elements to the left).
void move_lst (int i)
 Move assigned view from position size()-1 to position i (truncate array by one).
void move_fst (int i, Space *home, Propagator *p, PropCond pc)
 Move view from position 0 to position i (shift elements to the left).
void move_lst (int i, Space *home, Propagator *p, PropCond pc)
 Move view from position size()-1 to position i (truncate array by one).
void move_fst (int i, Space *home, Advisor *a)
 Move view from position 0 to position i (shift elements to the left).
void move_lst (int i, Space *home, Advisor *a)
 Move view from position size()-1 to position i (truncate array by one).

Dropping elements

void drop_fst (int i)
 Drop assigned views from positions 0 to i-1 from array.
void drop_lst (int i)
 Drop assigned views from positions i+1 to size()-1 from array.
void drop_fst (int i, Space *home, Propagator *p, PropCond pc)
 Drop views from positions 0 to i-1 from array.
void drop_lst (int i, Space *home, Propagator *p, PropCond pc)
 Drop assigned views from positions i+1 to size()-1 from array.
void drop_fst (int i, Space *home, Advisor *a)
 Drop views from positions 0 to i-1 from array.
void drop_lst (int i, Space *home, Advisor *a)
 Drop assigned views from positions i+1 to size()-1 from array.

View equality

bool same (void) const
 Test whether array has multiple occurence of the same view.
bool same (const View &y) const
 Test whether array contains a view being the same as y.
void unique (void)
 Remove all duplicate views from array (changes element order).

View sharing

bool shared (void) const
 Test whether array contains shared views.
bool shared (const View &y) const
 Test whether array contains a view being shared with y.

Reflection

Reflection::Argspec (const Space *home, Reflection::VarMap &m) const

Constructor & Destructor Documentation

template<class View>
Gecode::ViewArray< View >::ViewArray ( void   )  [inline]

Default constructor (array of size 0).

Definition at line 648 of file array.icc.

template<class View>
Gecode::ViewArray< View >::ViewArray ( Space home,
int  m 
) [inline]

Allocate array with m variables.

Definition at line 652 of file array.icc.

template<class View>
Gecode::ViewArray< View >::ViewArray ( const ViewArray< View > &  a  )  [inline]

Initialize from view array a (share elements).

Definition at line 686 of file array.icc.

template<class View>
Gecode::ViewArray< View >::ViewArray ( Space home,
const Reflection::VarMap vars,
Reflection::Arg spec 
) [inline]

Initialize from specification spec with variables vars.

Definition at line 670 of file array.icc.

template<class View>
Gecode::ViewArray< View >::ViewArray ( Space home,
const ViewArray< View > &  a 
) [inline]

Initialize from view array a (copy elements).

Definition at line 658 of file array.icc.

template<class View>
template<class Var>
Gecode::ViewArray< View >::ViewArray ( Space home,
const VarArgArray< Var > &  a 
) [inline]

Initialize from variable argument array a (copy elements).

Note that the view type View must provide a constructor for the associated Var type.

Definition at line 167 of file array.icc.


Member Function Documentation

template<class View>
const ViewArray< View > & Gecode::ViewArray< View >::operator= ( const ViewArray< View > &  a  )  [inline]

Initialize from view array a (share elements).

Definition at line 691 of file array.icc.

template<class View>
int Gecode::ViewArray< View >::size ( void   )  const [inline]

Return size of array (number of elements).

Definition at line 698 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::size ( int  n  )  [inline]

Decrease size of array (number of elements).

Definition at line 704 of file array.icc.

template<class View>
View & Gecode::ViewArray< View >::operator[] ( int  i  )  [inline]

Return view at position i.

Definition at line 710 of file array.icc.

template<class View>
const View & Gecode::ViewArray< View >::operator[] ( int  i  )  const [inline]

Return view at position i.

Definition at line 717 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::subscribe ( Space home,
Propagator p,
PropCond  pc,
bool  process = true 
) [inline]

Subscribe propagator p with propagation condition pc to variable.

In case process is false, the propagator is just subscribed but not processed for execution (this must be used when creating subscriptions during propagation).

Definition at line 841 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::cancel ( Space home,
Propagator p,
PropCond  pc 
) [inline]

Cancel subscription of propagator p with propagation condition pc to all views.

Definition at line 849 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::subscribe ( Space home,
Advisor a 
) [inline]

Subscribe advisor a to variable.

Definition at line 856 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::cancel ( Space home,
Advisor a 
) [inline]

Cancel subscription of advisor a.

Definition at line 863 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::update ( Space home,
bool  share,
ViewArray< View > &  a 
) [inline]

Update array to be a clone of array a.

If share is true, sharing is retained for all shared data structures. Otherwise, for each of them an independent copy is created.

Definition at line 828 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::move_fst ( int  i  )  [inline]

Move assigned view from position 0 to position i (shift elements to the left).

Definition at line 724 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::move_lst ( int  i  )  [inline]

Move assigned view from position size()-1 to position i (truncate array by one).

Definition at line 732 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::move_fst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Move view from position 0 to position i (shift elements to the left).

Before moving, cancel subscription of propagator p with propagation condition pc to view at position i.

Definition at line 756 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::move_lst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Move view from position size()-1 to position i (truncate array by one).

Before moving, cancel subscription of propagator p with propagation condition pc to view at position i.

Definition at line 764 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::move_fst ( int  i,
Space home,
Advisor a 
) [inline]

Move view from position 0 to position i (shift elements to the left).

Before moving, cancel subscription of advisor a to view at position i.

Definition at line 792 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::move_lst ( int  i,
Space home,
Advisor a 
) [inline]

Move view from position size()-1 to position i (truncate array by one).

Before moving, cancel subscription of advisor a to view at position i.

Definition at line 800 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::drop_fst ( int  i  )  [inline]

Drop assigned views from positions 0 to i-1 from array.

Definition at line 740 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::drop_lst ( int  i  )  [inline]

Drop assigned views from positions i+1 to size()-1 from array.

Definition at line 748 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::drop_fst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Drop views from positions 0 to i-1 from array.

Before moving, cancel subscription of propagator p with propagation condition pc to views at positions 0 to i-1.

Definition at line 772 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::drop_lst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Drop assigned views from positions i+1 to size()-1 from array.

Before moving, cancel subscription of propagator p with propagation condition pc to views at positions i+1 to size()-1.

Definition at line 782 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::drop_fst ( int  i,
Space home,
Advisor a 
) [inline]

Drop views from positions 0 to i-1 from array.

Before moving, cancel subscription of advisor a to views at positions 0 to i-1.

Definition at line 808 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::drop_lst ( int  i,
Space home,
Advisor a 
) [inline]

Drop assigned views from positions i+1 to size()-1 from array.

Before moving, cancel subscription of advisor a to views at positions i+1 to size()-1.

Definition at line 818 of file array.icc.

template<class View>
bool Gecode::ViewArray< View >::same ( void   )  const [inline]

Test whether array has multiple occurence of the same view.

Note that assigned views are ignored.

Definition at line 900 of file array.icc.

template<class View>
bool Gecode::ViewArray< View >::same ( const View &  y  )  const [inline]

Test whether array contains a view being the same as y.

Note that assigned views are ignored.

Definition at line 915 of file array.icc.

template<class View>
void Gecode::ViewArray< View >::unique ( void   )  [inline]

Remove all duplicate views from array (changes element order).

Definition at line 926 of file array.icc.

template<class View>
bool Gecode::ViewArray< View >::shared ( void   )  const [inline]

Test whether array contains shared views.

Note that assigned views are ignored.

Definition at line 939 of file array.icc.

template<class View>
bool Gecode::ViewArray< View >::shared ( const View &  y  )  const [inline]

Test whether array contains a view being shared with y.

Note that assigned views are ignored.

Definition at line 954 of file array.icc.

template<class View>
Reflection::Arg * Gecode::ViewArray< View >::spec ( const Space home,
Reflection::VarMap m 
) const [inline]

Definition at line 965 of file array.icc.


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