LALStdlib.h

Go to the documentation of this file.
00001 /*
00002 *  Copyright (C) 2007 Jolien Creighton
00003 *
00004 *  This program is free software; you can redistribute it and/or modify
00005 *  it under the terms of the GNU General Public License as published by
00006 *  the Free Software Foundation; either version 2 of the License, or
00007 *  (at your option) any later version.
00008 *
00009 *  This program is distributed in the hope that it will be useful,
00010 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 *  GNU General Public License for more details.
00013 *
00014 *  You should have received a copy of the GNU General Public License
00015 *  along with with program; see the file COPYING. If not, write to the
00016 *  Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00017 *  MA  02111-1307  USA
00018 */
00019 
00020 /************************************ <lalVerbatim file="LALStdlibHV">
00021 Author: J. D. E. Creighton, T. D. Creighton
00022 $Id: LALStdlib.h,v 1.12 2007/06/08 14:41:53 bema Exp $
00023 ************************************* </lalVerbatim> */
00024 
00025 /* <lalLaTeX>
00026 
00027 \section{Header \texttt{LALConfig.h}}
00028 \label{s:LALConfig.h}
00029 
00030 Defines configuration macro constants.
00031 
00032 \subsection*{Synopsis}
00033 \begin{verbatim}
00034 #include <lal/LALConfig.h>
00035 \end{verbatim}
00036 
00037 \noindent This header (which is not technically in the \texttt{std} package;
00038 rather it is generated directly in the \texttt{include/lal} directory during
00039 configuration) is included in essentially every other header file.  It
00040 contains macro constants that are defined at configuration time.  They are:
00041 
00042 \idx[Constant]{LAL\_VERSION}
00043 \idx[Constant]{LAL\_VERSION\_MAJOR}
00044 \idx[Constant]{LAL\_VERSION\_MINOR}
00045 \idx[Constant]{LAL\_CONFIGURE\_ARGS}
00046 \idx[Constant]{LAL\_CONFIGURE\_DATE}
00047 \idx[Constant]{LAL\_CVS\_TAG}
00048 \idx[Constant]{LAL\_SIZEOF\_DOUBLE}
00049 \idx[Constant]{LAL\_SIZEOF\_FLOAT}
00050 \idx[Constant]{LAL\_SIZEOF\_INT}
00051 \idx[Constant]{LAL\_SIZEOF\_LONG}
00052 \idx[Constant]{LAL\_SIZEOF\_LONG\_LONG}
00053 \idx[Constant]{LAL\_SIZEOF\_SHORT}
00054 \idx[Constant]{LAL\_NDEBUG}
00055 \idx[Constant]{NOLALMACROS}
00056 \idx[Constant]{LAL\_PTHREAD\_LOCK}
00057 \idx[Constant]{LAL\_FRAME\_ENABLED}
00058 \idx[Constant]{LAL\_MPI\_ENABLED}
00059 \begin{description}
00060 \item[\texttt{LAL\_VERSION}] Constant string containing the version of LAL.
00061 \item[\texttt{LAL\_VERSION\_MAJOR}] Integer representing the major version
00062   number of LAL.
00063 \item[\texttt{LAL\_VERSION\_MINOR}] Integer representing the minor version
00064   number of LAL.
00065 \item[\texttt{LAL\_CONFIGURE\_ARGS}] Constant string containing the arguments
00066   given to the configure script.
00067 \item[\texttt{LAL\_CONFIGURE\_DATE}] Constant string containing the date
00068   when LAL was configured.
00069 \item[\texttt{LAL\_CVS\_TAG}] Constant string containing the CVS tag used to
00070   checkout LAL (blank if none).
00071 \item[\texttt{LAL\_SIZEOF\_DOUBLE}] Integer representing the size of a
00072   double precision floating point number.
00073 \item[\texttt{LAL\_SIZEOF\_FLOAT}] Integer representing the size of a
00074   single precision floating point number.
00075 \item[\texttt{LAL\_SIZEOF\_INT}] Integer representing the size of a
00076   integer.
00077 \item[\texttt{LAL\_SIZEOF\_LONG}] Integer representing the size of a
00078   long integer.
00079 \item[\texttt{LAL\_SIZEOF\_LONG\_LONG}] Integer representing the size of a
00080   long long integer.
00081 \item[\texttt{LAL\_SIZEOF\_SHORT}] Integer representing the size of a
00082   short integer.
00083 \item[\texttt{LAL\_NDEBUG}] Defined if debugging is turned off (use the
00084   configure argument \texttt{--disable-debug} to do this).
00085 \item[\texttt{NOLALMACROS}] Defined if status macros are replaced by functions
00086   (where possible) (use the configure argument \texttt{--disable-macros} to do
00087   this).
00088 \item[\texttt{LAL\_PTHREAD\_LOCK}] Defined if POSIX thread mutex locking is
00089   to be used for threadsafety (use the configure argument
00090   \texttt{--enable-pthread-lock} to do this).
00091 \item[\texttt{LAL\_FRAME\_ENABLED}] Defined if LAL frame-format data reading
00092   routines will be compiled (use the configure argument
00093   \texttt{--enable-frame} to do this).
00094 \item[\texttt{LAL\_MPI\_ENABLED}] Defined if LAL MPI routines will be compiled
00095   (use the configure argument \texttt{--enable-mpi} to do this).
00096 \end{description}
00097 
00098 
00099 \newpage
00100 \section{Header \texttt{LALStdlib.h}}
00101 \label{s:LALStdlib.h}
00102 
00103 Includes the standard LAL header files.
00104 
00105 \subsection*{Synopsis}
00106 \begin{verbatim}
00107 #include <lal/LALStdlib.h>
00108 \end{verbatim}
00109 
00110 \noindent This header is the overall header for the \verb@std@
00111 package.  It provides the datatypes, constants, and macros required by
00112 most LAL functions, by including the following header files in the
00113 \verb@std@ package:
00114 
00115 \vspace{1ex}
00116 
00117 </lalLaTeX> */
00118 
00119 #ifndef _LALSTDLIB_H
00120 #define _LALSTDLIB_H
00121 
00122 /* <lalVerbatim> */
00123 #include <lal/LALRCSID.h>
00124 #include <lal/LALDatatypes.h>
00125 #include <lal/LALStatusMacros.h>
00126 /* </lalVerbatim>
00127 <lalLaTeX>
00128 
00129 \noindent\verb@LALStdlib.h@ also includes function prototype headers
00130 for certain standard modules used by many LAL routines:
00131 
00132 \vspace{1ex}
00133 
00134 </lalLaTeX>
00135 <lalVerbatim> */
00136 #include <stdio.h>
00137 #include <stdarg.h>
00138 #include <lal/LALMalloc.h>
00139 /* </lalVerbatim> 
00140 
00141 <lalLaTeX>
00142 \vfill{\footnotesize\input{LALStdlibHV}}
00143 </lalLaTeX> */
00144 
00145 #ifdef  __cplusplus
00146 extern "C" {
00147 #endif
00148 
00149 NRCSID (LALSTDLIBH, "$Id: LALStdlib.h,v 1.12 2007/06/08 14:41:53 bema Exp $");
00150 
00151 /* These are non-ANSI standard routines that will be allowed in LAL */
00152 int getopt( int, char * const *, const char * );
00153 FILE *popen( const char *, const char * );
00154 int pclose( FILE * );
00155 
00156 #ifdef  __cplusplus
00157 }
00158 #endif
00159 
00160 #endif /* _LALSTDLIB_H */

Generated on Sun Sep 7 03:06:57 2008 for LAL by  doxygen 1.5.2