Gecode::RangeList Class Reference
[Space-memory management]
Lists of ranges (intervals). More...
#include <range-list.hpp>
Protected Attributes | |
int | _min |
Minimum of range. | |
int | _max |
Maximum of range. | |
Constructors | |
| |
RangeList (void) | |
Default constructor (noop). | |
RangeList (int min, int max) | |
Initialize with minimum min and maximum max. | |
RangeList (int min, int max, RangeList *n) | |
Initialize with minimum min and maximum max and successor n. | |
Access | |
| |
int | min (void) const |
Return minimum. | |
int | max (void) const |
Return maximum. | |
unsigned int | width (void) const |
Return width (distance between maximum and minimum). | |
RangeList * | next (void) const |
Return next element. | |
RangeList ** | nextRef (void) |
Return pointer to next element. | |
Update | |
| |
void | min (int n) |
Set minimum to n. | |
void | max (int n) |
Set maximum to n. | |
void | next (RangeList *n) |
Set next range to n. | |
Memory management | |
| |
void | dispose (Space &home, RangeList *l) |
Free memory for all elements between this and l (inclusive). | |
void | dispose (Space &home) |
Free memory for all elements reachable from this. | |
static void * | operator new (size_t s, Space &home) |
Allocate memory from space. | |
static void * | operator new (size_t s, void *p) |
Placement-new operator (noop). | |
static void | operator delete (void *) |
No-op (for exceptions). | |
static void | operator delete (void *, Space &home) |
No-op (use dispose instead). | |
static void | operator delete (void *, void *) |
No-op (use dispose instead). | |
Iterator operations | |
| |
template<class Iter > | |
static void | copy (Space &home, RangeList *&r, Iter &i) |
Create rangelist r from range iterator i. | |
template<class Iter > | |
static void | overwrite (Space &home, RangeList *&r, Iter &i) |
Overwrite rangelist r with ranges from range iterator i. | |
template<class I > | |
static void | insert (Space &home, RangeList *&r, I &i) |
Insert (as union) ranges from iterator i into r. |
Detailed Description
Lists of ranges (intervals).
This class implements a simple datastructure for storing sets of integers as lists of ranges (intervals). Memory is managed as space-allocated free lists.
Definition at line 53 of file range-list.hpp.
Constructor & Destructor Documentation
Gecode::RangeList::RangeList | ( | void | ) | [inline] |
Default constructor (noop).
Definition at line 134 of file range-list.hpp.
Gecode::RangeList::RangeList | ( | int | min, | |
int | max | |||
) | [inline] |
Initialize with minimum min and maximum max.
Definition at line 141 of file range-list.hpp.
Gecode::RangeList::RangeList | ( | int | min, | |
int | max, | |||
RangeList * | n | |||
) | [inline] |
Initialize with minimum min and maximum max and successor n.
Definition at line 137 of file range-list.hpp.
Member Function Documentation
int Gecode::RangeList::min | ( | void | ) | const [inline] |
Return minimum.
Definition at line 168 of file range-list.hpp.
int Gecode::RangeList::max | ( | void | ) | const [inline] |
Return maximum.
Definition at line 172 of file range-list.hpp.
unsigned int Gecode::RangeList::width | ( | void | ) | const [inline] |
Return width (distance between maximum and minimum).
Definition at line 176 of file range-list.hpp.
RangeList * Gecode::RangeList::next | ( | void | ) | const [inline] |
Return next element.
Reimplemented from Gecode::FreeList.
Definition at line 145 of file range-list.hpp.
RangeList ** Gecode::RangeList::nextRef | ( | void | ) | [inline] |
Return pointer to next element.
Reimplemented from Gecode::FreeList.
Definition at line 150 of file range-list.hpp.
void Gecode::RangeList::min | ( | int | n | ) | [inline] |
Set minimum to n.
Definition at line 155 of file range-list.hpp.
void Gecode::RangeList::max | ( | int | n | ) | [inline] |
Set maximum to n.
Definition at line 159 of file range-list.hpp.
void Gecode::RangeList::next | ( | RangeList * | n | ) | [inline] |
Set next range to n.
Definition at line 163 of file range-list.hpp.
void Gecode::RangeList::copy | ( | Space & | home, | |
RangeList *& | r, | |||
Iter & | i | |||
) | [inline, static] |
Create rangelist r from range iterator i.
Definition at line 219 of file range-list.hpp.
void Gecode::RangeList::overwrite | ( | Space & | home, | |
RangeList *& | r, | |||
Iter & | i | |||
) | [inline, static] |
Overwrite rangelist r with ranges from range iterator i.
Definition at line 232 of file range-list.hpp.
void Gecode::RangeList::insert | ( | Space & | home, | |
RangeList *& | r, | |||
I & | i | |||
) | [inline, static] |
Insert (as union) ranges from iterator i into r.
Definition at line 261 of file range-list.hpp.
Free memory for all elements between this and l (inclusive).
Definition at line 205 of file range-list.hpp.
void Gecode::RangeList::dispose | ( | Space & | home | ) | [inline] |
Free memory for all elements reachable from this.
Definition at line 210 of file range-list.hpp.
void * Gecode::RangeList::operator new | ( | size_t | s, | |
Space & | home | |||
) | [inline, static] |
Allocate memory from space.
Definition at line 195 of file range-list.hpp.
void * Gecode::RangeList::operator new | ( | size_t | s, | |
void * | p | |||
) | [inline, static] |
Placement-new operator (noop).
Definition at line 200 of file range-list.hpp.
void Gecode::RangeList::operator delete | ( | void * | ) | [inline, static] |
No-op (for exceptions).
Definition at line 182 of file range-list.hpp.
void Gecode::RangeList::operator delete | ( | void * | , | |
Space & | home | |||
) | [inline, static] |
No-op (use dispose instead).
Definition at line 185 of file range-list.hpp.
void Gecode::RangeList::operator delete | ( | void * | , | |
void * | ||||
) | [inline, static] |
No-op (use dispose instead).
Definition at line 190 of file range-list.hpp.
Member Data Documentation
int Gecode::RangeList::_min [protected] |
Minimum of range.
Definition at line 56 of file range-list.hpp.
int Gecode::RangeList::_max [protected] |
Maximum of range.
Definition at line 58 of file range-list.hpp.
The documentation for this class was generated from the following file:
- gecode/kernel/range-list.hpp (Revision: 15073)