Professional Documents
Culture Documents
class array2d;
// Two-dimensional array.
class array3d;
// Three-dimensional array.
class bitarray;
// Bit-array class mostly for use as memory saving array of Boolean values.
// Valid index is 0...nb_-1 (as usual in C arrays).
class bitarray2d;
// Two-dimensional bit-array.
class bounding_box_3d;
// 3-dimensional bounding box that can grow to contain
// coordinates given in the update() method.
class bounding_box;
// 2-dimensional bounding box that can grow to contain
// coordinates given in the update() method.
class centered_array2d;
// Centered 2-dimensional array from array2d<Type>,
// using point2d<long> or vector2d<long> for coordinates.
// Valid cells are in the range [ +-k , +-k ].
class centered_array3d;
// Centered 2-dimensional array from array3d<Type>,
// using point3d<long> or vector3d<long> for coordinates.
// Valid cells are in the range [ +-k , +-k , +-k ].
class deque;
// deque := double-ended queue
// Can grow dynamically
class left_right_array;
// Maintain index array [0,...,n-1], keep track which index is set or free.
// Allows, in time O(log(n)), to
// - find k-th free index (where 0<=k<=num_free())
// - find k-th set index (where 0<=k<=num_set())
// - determine how many indices are free/set to the left/right of
// an absolute index i (where 0<=i<n).
class point2d;
// Point in 2 dimensions with basic operations.
class point3d;
// Point in 3 dimensions with basic operations.
#if 1
// next() is the one with the smallest key
// i.e. extract_next() is extract_min()
#define _CMP_ <
#define _CMPEQ_ <=
#else
// next() is the one with the biggest key
// i.e. extract_next() is extract_max()
#define _CMP_ >
#define _CMPEQ_ >=
#endif
class priority_queue;
// Priority queue.
// Can grow dynamically.
class queue;
// Implementation of a queue
class ringbuffer;
// Implementation of a ring buffer
class stack;
class vector2d;
// 2-dimensional vector with basic operations.
class vector3d;
// 3-dimensional vector with basic operations.
inline vector3d<Type> outer_left(const vector3d<Type> &V, const vector3d<Type> &W);
// Return cross product for left handed coordinates.