Lattices
[lattices package (liblattices)]


Detailed Description

Regular N-dimensional data structures.

See below for an overview of the classes in this module.

Prerequisite

Review Status

Reviewed By:
Peter Barnes
Date Reviewed:
1999/10/30

Etymology

Lattice: "A regular, periodic configuration of points, particles, or objects, throughout an area of a space.\.." (American Heritage Directory) This definition matches our own: an N-dimensional arrangement of data on regular orthogonal axes.

In AIPS++, we have used the ability to call many things by one generic name (Lattice) to create a number of classes which have different storage techniques (e.g. core memory, disk, etc.\..). The name Lattice should make the user think of a class interface (or member functions) which all Lattice objects have in common. If functions require a Lattice argument, the classes described here may be used interchangeably, even though their actual internal workings are very different.

Synopsis

The Lattice module may be broken up into a few areas:

  1. Lattices - the actual holders of lattice-like data which all share a common interface . The following items are all Lattices and may be used polymorphically wherever a Lattice is called for.

  2. LatticeIterator - the object which allows iteration through any Lattice's data. This comes in two types: the RO_LatticeIterator which should be used if you are not going to change the Lattice's data, and the LatticeIterator if you need to change the data in the Lattice.
    Note that iteration can also be done using LatticeApply and some helper classes. It makes it possible to concentrate on the algorithm.

  3. LatticeNavigators - the objects which define the method and path used by a LatticeIterator to move the cursor through a Lattice. Many different paths are possible. We leave it you to choose the LatticeNavigator (method and path) when using a LatticeIterator.

  4. MaskedLattice - a Lattice with a mask. It is an abstract base class for various types of MaskedLattices. A MaskedLattice does not need to contain a mask (see e.g. SubLattice below), although the user can always ask for the mask. The function isMasked() tells if there is really a mask. If not, users could take advantage by shortcutting some code for better performance. I.e. a function can test if a the MaskedLattice is really masked and can take a special route if not. Of course, doing that requires more coding, so it should only be done where performance is a real issue.

  5. LatticeLocker can be used to acquire a (user) lock on a lattice. The lock can be a read or write lock. The destructor releases the lock when needed.
    Lattices on disk can be used (read and write) by multiple processes. The Table locking/synchronization mechanism takes care that sharing such a lattice is done in an orderly way. Usually the default locking mechanism is sufficient. LatticeLocker is useful when finer locking control is needed for a disk-based lattice.

    Warning: The following are listed for low-level programmers. Lattice users need not understand them. The Lattice directory contains several files relevant only to implementation.

Motivation

Lattices allow the various holders of data to assume a general method of treatment; by making interfaces in terms of the Lattice class, the programmer can polymorphically operate on objects derived from the Lattice class.

To Do


Modules

 Lattices_internal_classes
 Internal Lattices classes and functions.

Classes

class  casa::ArrayLattice< T >
 A memory resident Lattice. More...
class  casa::CLIPNearest2D< T >
 Arbitrarily shaped 1-dim lattice crosscut. More...
class  casa::ExtendLattice< T >
 An extension of a Lattice or MaskedLattice. More...
class  casa::FITSMask
 Provides an on-the-fly mask for FITS images. More...
class  casa::Lattice< T >
 A templated, abstract base class for array-like objects. More...
class  casa::LatticeAddNoise
 Add noise from specified distribution to a lattice. More...
class  casa::LatticeApply< T, U >
 Optimally iterate through a Lattice and apply provided function object. More...
class  casa::LatticeBase
 A non-templated, abstract base class for array-like objects. More...
class  casa::LatticeCache< T >
 a class for caching image access via tiles More...
class  casa::CleanEnums
 Lists the different types of Convolutions that can be done. More...
class  casa::LatticeCleaner< T >
 A class for doing multi-dimensional cleaning. More...
class  casa::LatticeCleanProgress
 Abstract base class to monitor progress in lattice operations. More...
class  casa::LatticeConcat< T >
 Concatenates lattices along a specified axis. More...
class  casa::ConvEnums
 Lists the different types of Convolutions that can be done. More...
class  casa::LatticeConvolver< T >
 A class for doing multi-dimensional convolution. More...
class  casa::LatticeExpr< T >
 Class to allow C++ expressions involving lattices. More...
class  casa::LatticeExprNode
 Bridging class to allow C++ expressions involving lattices. More...
class  casa::LatticeFFT
 Functions for Fourier transforming Lattices. More...
class  casa::LatticeHistograms< T >
 Displays histograms of regions from a lattice. More...
class  casa::HistTiledCollapser< T >
 Generate histograms, tile by tile, from a masked lattice. More...
class  casa::LatticeHistSpecialize
 Specialized functions for LatticeHistograms. More...
class  casa::RO_LatticeIterator< T >
 A readonly iterator for Lattices. More...
class  casa::LatticeIterator< T >
 A read/write lattice iterator. More...
class  casa::LatticeLocker
 Class to hold a (user) lock on a lattice. More...
class  casa::LatticeProgress
 Abstract base class to monitor progress in lattice operations. More...
class  casa::LatticeSlice1D< T >
 Extract a 1-D slice from a Lattice. More...
class  casa::LatticeStatistics< T >
 Compute and display various statistics from a lattice. More...
class  casa::StatsTiledCollapser< T, U >
 Generate statistics, tile by tile, from a masked lattice. More...
class  casa::LatticeStatsBase
 Base class for LatticeStatistics class. More...
class  casa::LatticeStepper
 Traverse a Lattice by cursor shape. More...
class  casa::LatticeTwoPtCorr< T >
 Compute two point auto-correlation functions from a lattice. More...
class  casa::LatticeUtilities
 Static functions for Lattices. More...
struct  casa::LatticeUtilities_global_functions_LatticeUtilities
 Global functions on Lattices. More...
class  casa::LattRegionHolder
 Class to hold a region of interest in an image. More...
class  casa::LattStatsSpecialize
class  casa::LCBox
 Class to define a rectangular box of interest. More...
class  casa::LCComplement
 Make the complement of a region. More...
class  casa::LCConcatenation
 Combine multiple LCRegion's into a new dimension. More...
class  casa::LCDifference
 Make the difference of 2 regions. More...
class  casa::LCEllipsoid
 Define an N-dimensional ellipsoidal region of interest. More...
class  casa::LCExtension
 Extend an LCRegion along straight lines to other dimensions. More...
class  casa::LCIntersection
 Make the intersection of 2 or more regions. More...
class  casa::LCLELMask
 Class to define a mask as a LEL expression. More...
class  casa::LCMask
 Class to define a rectangular mask as a temporary region. More...
class  casa::LCPagedMask
 Class to define a rectangular mask as a region. More...
class  casa::LCPixelSet
 Class to define a rectangular mask as a region. More...
class  casa::LCPolygon
 Define a 2-dimensional region by a polygon. More...
class  casa::LCRegion
 Abstract base class to define a region of interest in lattice coordinates. More...
class  casa::LCRegionFixed
 Abstract base class to define a fixed region. More...
class  casa::LCRegionMulti
 Make the intersection of 2 or more regions. More...
class  casa::LCRegionSingle
 Abstract base class to define a single region. More...
class  casa::LCSlicer
 Class to define a rectangular box of interest with strides. More...
class  casa::LCStretch
 Stretch length 1 axes in an LCRegion along straight lines. More...
class  casa::LCUnion
 Make the union of 2 or more regions. More...
class  casa::LELCoordinates
 Envelope class to handle Lattice Coordinates in LEL. More...
class  casa::LineCollapser< T, U >
 Abstract base class for LatticeApply function signatures. More...
class  casa::MaskedLattice< T >
 A templated, abstract base class for array-like objects with masks. More...
class  casa::RO_MaskedLatticeIterator< T >
 A readonly iterator for masked Lattices. More...
class  casa::PagedArray< T >
 A Lattice that is read from or written to disk. More...
class  casa::PixelCurve1D
 Arbitrary 1-dim curve in a lattice plane. More...
class  casa::RegionType
 Define the various region types. More...
class  casa::SubLattice< T >
 A subset of a Lattice or MaskedLattice. More...
class  casa::TempLattice< T >
 A Lattice that can be used for temporary storage. More...
class  casa::TiledCollapser< T, U >
 Abstract base class to collapse chunks for LatticeApply. More...
class  casa::TiledLineStepper
 Step a Vector cursor optimally through a tiled Lattice. More...
class  casa::TiledShape
 Define the shape and tile shape. More...
class  casa::TileStepper
 traverse a tiled Lattice optimally with a tile cursor More...


Generated on Tue Nov 6 11:37:45 2007 for AIPS++ by  doxygen 1.4.4