/** @mainpage psLib Image Processing Library - Release 1


@section intro Introduction

This library contains the Pan-STARRS Library, "psLib". The intended use is to
provide a set of basic software functions which can be used throughout the 
Pan-STARRS project to simplify programming tasks. Among the benefits are: 
<ul>
<li>Reuse of code</li>
<li>Simplification of testing</li>
<li>Streamlining of code</li>
<li>Isolation of functionality that may be subject to change</li>
</ul>     

The capabilities provided by psLib are grouped into the following areas which
are also reflected in the source files' directory structure:
<ul>
<li>System Utilities</li>
<li>Data Collections</li>
<li>Data Manipulation</li>
</ul>

This list is sorted in hierarchical order: The later entries depend on the 
functions and data types of the earlier entries.

The installed code for psLib consists of header files and binary libraries 
in the form of static (libpslib.a) and shared (libpslib.so or libpslib.dylib 
depending on the operating system). Assuming these components have been built
and installed in the standard library path, psLib may be used within a program
by including the pslib.h header in your C file and linking with -lpslib.


@section extinstall Required 3rd Party Libraries

Before building psLib from source, several 3rd party software libraries must 
be installed. These include: 
<ul>
<li>GNU Scientific Library (GSL), version 1.4</li>
<ul><li>Available at http://www.gnu.org/software/gsl</li></ul>
<li>Fastest Fourier Transform in the West (FFTW), version 3.0.1</li>
<ul><li>Available at http://www.fftw.org</li></ul>
<li>C Flexible Image Transport System Input output (CFITSIO), version 2.4.9
<ul><li>Available at http://heasarc.gsfc.nasa.gov/docs/software/fitsio</li></ul>
</ul>

If you use a Macintosh OS X 10.2 or earlier system, a dlfcn compatability 
library may need to be installed on the system. This can be obtained from the
Fink project on SourceForge (the dlcompat package at http://www.sf.net/projects/fink).
The Darwin 7.0 (OS X 10.3) 'devtools' package includes dlfcn support, so 
explicit installation of a dlfcn compatibility layer may not be required for 
this version of Darwin with the devtools package installed. 


@section obtain How to Obtain the Code

The psLib code should to be downloaded from either the tar files posted the
MHPCC webserver or CVS.  

Via the web server, point your browser to https://mhpcc.pan-starrs.org/cgi-bin/viewcvs.cgi/releases/rel1 .
There are two files available there:
<ul>
<li>pslib-rel1-src.tar.gz</li>
<ul><li>The source package - equivalent to getting the source from the CVS via export.</li></ul>
<li>pslib-rel1-linux-x86.tar.gz</li>
<ul><li>The binary package - precompiled for x86 Linux machines.  Contains 
prebuilt libraries, documentation, and test suite.</li></ul>
</ul>

Download the appropriate package for your needs and untar the files where
one sees fit.

To obtain the source directly from the CVS server with the following command:
<pre>
$ export CVS_RSH=ssh
$ cvs -d:ext:username@mhpcc.pan-starrs.org:/data/panstarrs/cvsroot export -r rel1_1 psLib
</pre>
This requires having an SSH login account on mhpcc.pan-starrs.org.


@section build How to Build from Source Code

Once the release package is obtained, the library should build from the 
Makefile in the psLib/src directory.  The recommended steps are:
<pre>
$ cd psLib/src
$ make
$ make install
</pre>
This builds the library and installs files to psLib/lib and psLib/include.


@section buildTests How to Build the Tests

Since psLib is a library, there is no executable, per se. However, to test 
the installation and functionality, users may create a suite of unit tests 
with the following steps:
<pre>
$ cd psLib/test
$ make
$ make install
$ make installtests
</pre>
This builds and installs test files for each of the psLib functional areas
into the psLib/bin/test directory.


@section runTests How to Run the Unit Tests

To execute the unit test suite, after building them, users may use the
following steps:
<pre>
$ cd psLib/testbin
$ ./FullUnitTest
</pre>
One can also run individual test executables, which concentrate on a logical
set of functionality of the library, via the 'runTest' script in the bin/test
directory or by executing the test from the shell.  If running the test directly
in the shell, make sure that the LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH if on the
Macintosh) contains the path to the psLib/lib directory.

@section doc How to Create Documentation

Both HTML and man page documentation may also be generated:
<pre>
$ cd psLib/src
$ make docs
</pre>
This places the Doxygen generated documentation in psLib/docs. The doxygen is
also available online at: https://mhpcc.pan-starrs.org/docs/psLib-rel1 .

*/
