/** @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.13 $ $Name: not supported by cvs2svn $
 *  @date $Date: 2004-07-15 23:52:33 $
 *
 *  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 "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"

/// @}

// 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"

#include "psArray.h"

/// @defgroup Image Image Container
/// @ingroup DataContainer
#include "psImage.h"

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

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

/// @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
/// @ingroup DataManip
#include "psFFT.h"

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

#include "psImageManip.h"

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

/// @}

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

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

/// @}

#endif

