
/** @file  pslib.h
*
*  @brief Contains the complete list of header files for pslib.
*
*  This header file includes all the necessary header files for a user to
*  user all public functions within the pslib library.
*
*  @author Eric Van Alst, MHPCC
*
*  @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
*  @date $Date: 2005-01-12 22:17:01 $
*
*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
*/

#ifndef PS_LIB_H
#define PS_LIB_H

/******************************************************************************/

/*  INCLUDE FILES                                                             */

/******************************************************************************/

// System Utilities

/// @defgroup SysUtils System Utilities
/// @{

/** @defgroup MemoryManagement Memory Management Utilities
 *
 *  This is the generic memory management system put inbetween the user's high level code and the OS-level
 *  memory allocation routines.  This system adds such features as callback routines for memory error events,
 *  tracing capabilities, and reference counting.
 *
 *  @ingroup SysUtils
 */

#include "fitsio.h"

#include "psMemory.h"

/// @defgroup LogTrace Tracing and Logging
/// @ingroup SysUtils
#include "psLogMsg.h"
#include "psTrace.h"

/// @defgroup ErrorHandling Error Handling
/// @ingroup SysUtils
#include "psAbort.h"
#include "psError.h"

#include "psString.h"

/// @defgroup Configure Configure psLib
/// @ingroup SysUtils
#include "psConfigure.h"

/// @}

// Collections
/// @defgroup DataContainer Data Containers
/// @{

#include "psType.h"

/// @defgroup LinkedList Linked List
/// @ingroup DataContainer
#include "psList.h"

/// @defgroup HashTable Hash Table
/// @ingroup DataContainer
#include "psHash.h"

/// @defgroup Scalar Scalar
/// @ingroup DataContainer
#include "psScalar.h"

/// @defgroup Vector Vector Container
/// @ingroup DataContainer
#include "psVector.h"

/// @defgroup Array Array Container
/// @ingroup DataContainer
#include "psArray.h"

/// @defgroup Image Image Container
/// @ingroup DataContainer
/// @{
#include "psImage.h"
#include "psImageExtraction.h"
#include "psImageManip.h"
#include "psImageConvolve.h"

/// @defgroup ImageIO Image File I/O Functions
/// @ingroup Image
#include "psImageIO.h"

/// @defgroup ImageStats Image Statistical Functions
/// @ingroup Image
#include "psImageStats.h"

/// @}

/// @defgroup BitSet Bit Set Container
/// @ingroup DataContainer
#include "psBitSet.h"

/// @}

// Data Manipulation
/// @defgroup DataManip Data Manipulation
/// @{

/// @defgroup Compare Comparison Functions
/// @ingroup DataManip
#include "psCompare.h"

/// @defgroup Stats Statistic Functions
/// @ingroup DataManip
#include "psStats.h"

/// @defgroup Matrix Matrix Operations
/// @ingroup DataManip
#include "psMatrix.h"

/// @defgroup MatrixVectorArithmetic Matrix Vector Arithmetic Operations
/// @ingroup DataManip
#include "psMatrixVectorArithmetic.h"

/// @defgroup Transform Fourier Transform Operations
/// @ingroup DataManip
#include "psVectorFFT.h"
#include "psImageFFT.h"

#include "psFunctions.h"
#include "psMinimize.h"

/// @}

// Astronomy
/// @defgroup Astronomy Astronomy Functions
/// @{

/// @defgroup CoordinateTransform Coordinate Functions
/// @ingroup Astronomy
#include "psCoord.h"

/// @defgroup Photometry Photometry
/// @ingroup Astronomy
#include "psPhotometry.h"

/// @defgroup Time Time Functions
/// @ingroup Astronomy
#include "psTime.h"

/// @defgroup Metadata Metadata Functions
/// @ingroup Astronomy
#include "psMetadata.h"
#include "psMetadataIO.h"

/// @defgroup AstroImage Astrometry Functions
/// @ingroup Astronomy
#include "psAstrometry.h"

#include "psConstants.h"

/// @}

// FileUtils
/// @defgroup FileUtils File Utilities
/// @{
#include "psFits.h"

/// @defgroup LookupTable Lookup Table
/// @ingroup FileUtils
#include "psLookupTable.h"

/// @}

#endif
