r520: no message
[ctsim.git] / include / ct.h
1 /*****************************************************************************
2 ** FILE IDENTIFICATION
3 **
4 **   Name:          ct.h
5 **   Purpose:       Master header file for CTSim
6 **   Programmer:    Kevin Rosenberg
7 **   Date Started:  Aug 1984
8 **
9 **  This is part of the CTSim program
10 **  Copyright (c) 1983-2001 Kevin Rosenberg
11 **
12 **  $Id: ct.h,v 1.57 2001/02/11 04:56:37 kevin Exp $
13 **
14 **  This program is free software; you can redistribute it and/or modify
15 **  it under the terms of the GNU General Public License (version 2) as
16 **  published by the Free Software Foundation.
17 **
18 **  This program is distributed in the hope that it will be useful,
19 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
20 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 **  GNU General Public License for more details.
22 **
23 **  You should have received a copy of the GNU General Public License
24 **  along with this program; if not, write to the Free Software
25 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26 ******************************************************************************/
27
28 #ifndef CT_H
29 #define CT_H
30
31 #define NO_MAIN 1    // filter out all old main blocks
32
33 #ifdef MSVC
34 #include "msvc_compat.h"
35 #endif
36
37 #ifdef HAVE_CONFIG_H
38   #include <config.h>
39 #endif
40
41 #ifdef _DEBUG
42 #undef DEBUG
43 #define DEBUG 1
44 #endif
45
46 #define HAVE_ANSI_CPP 1
47 #ifdef HAVE_ANSI_CPP
48 #include <complex>
49 #include <cmath>
50 #include <cstdio>
51 #include <cctype>
52 #include <cstring>
53 #include <cstddef>
54 #include <cstdarg>
55 #include <cstdlib>
56
57 #if defined(MSVC) || HAVE_SSTREAM
58 #include <sstream>
59 #else
60 #include <sstream_subst>
61 #endif
62
63 #include <fstream>
64 #include <iostream>
65 #include <string>
66 #include <iterator>
67 #include <algorithm>
68 #include <exception>
69 #include <stdexcept>
70 #include <memory>
71
72 #else
73
74 #ifdef HAVE_CTYPE_H
75 #include <ctype.h>
76 #endif
77 #ifdef HAVE_MATH_H
78 #include <math.h>
79 #endif
80 #ifdef HAVE_STDIO_H
81 #include <stdio.h>
82 #endif
83 #ifdef HAVE_STRING_H
84 #include <string.h>
85 #endif
86 #ifdef HAVE_STDDEF_H
87 #include <stddef.h>
88 #endif
89 #ifdef HAVE_STDLIB_H
90 #include <stdlib.h>
91 #endif
92 #ifdef HAVE_STDARG_H
93 #include <stdarg.h>
94 #endif
95
96 #endif
97
98
99 #ifdef HAVE_DMALLOC
100 #include <dmalloc.h>
101 #endif
102 #ifdef HAVE_UNISTD_H
103 #include <unistd.h>
104 #endif
105 #ifdef HAVE_PNG
106   #include "png.h"
107 #endif
108 #ifdef HAVE_G2_H
109 extern "C" { 
110 #include "g2.h" 
111 }
112 #ifdef HAVE_X11
113 extern "C" {
114 #include "g2_X11.h"
115 }
116 #endif
117 #endif
118
119
120 #ifdef  HAVE_SYS_TYPES_H
121 #include <sys/types.h>
122 #endif
123 #ifdef HAVE_SYS_STAT_H
124 #include <sys/stat.h>
125 #endif
126 #ifdef HAVE_SYS_FCNTL_H
127 #include <sys/fcntl.h>
128 #endif
129 #ifdef HAVE_FCNTL_H
130 #include <fcntl.h>
131 #endif
132 #if defined(HAVE_GETOPT_H) || defined(HAVE_GETOPT_LONG)
133 #include <getopt.h>
134 #endif
135 #ifdef HAVE_SETJMP_H
136 #include <setjmp.h>
137 #endif
138 #ifdef HAVE_SYS_PARAM_H
139 #include <sys/param.h>          /* for htonl on FreeBSD */
140 #endif
141 #ifdef HAVE_NETINET_IN_H
142 #include <netinet/in.h>         /* for htonl on Linux/Solaris */
143 #endif
144 #ifdef HAVE_INTTYPES_H
145 #include <inttypes.h>           /* for htonl on Solaris */
146 #endif
147 #ifdef HAVE_STDINT_H
148 #include <stdint.h>             /* Standard ints on Linux */
149 #endif
150 #ifdef HAVE_ASSERT_H
151 #include <assert.h>
152 #endif
153
154
155 #ifdef HAVE_FFTW
156 #include <rfftw.h>
157 #include <fftw.h>
158 #define HAVE_FFT 1
159 #endif
160
161 #ifdef HAVE_MPI
162 #include "mpi++.h"
163 #include "mpiworld.h"
164 #endif
165
166 #include "ctsupport.h"
167 #include "interpolator.h"
168 #include "fnetorderstream.h"
169
170 #ifdef HAVE_SGP
171   #include "ezplot.h"
172   #include "sgp.h"
173 #endif
174
175 #include "array2d.h"
176 #include "array2dfile.h"
177 #include "fnetorderstream.h"
178 #include "imagefile.h"
179 #include "phantom.h"
180 #include "scanner.h"
181 #include "backprojectors.h"
182 #include "filter.h"
183 #include "fourier.h"
184 #include "procsignal.h"
185 #include "projections.h"
186 #include "reconstruct.h"
187 #include "plotfile.h"
188 #include "trace.h"
189
190 #include "ctglobals.h"
191
192 #endif
193