2 ctsim program: Added dialog to set minimum/maximum display levels
3 Started ctsim.tex document file
6 Fixed compiler warnings at -Wall level
7 Began work on CTSim program to be graphical front-end of all functions
8 Moved current src/*.cpp to tools/*.cpp
9 Made CTSim graphical front-end's home to be src/
12 Added highly optimized backprojection method idiff3
13 Moved comparative stats to if-2 program from ifinfo
14 Fixed image display in if2img using G2 library
15 Added column-plot and row-plot options to if-2
16 Added autoselection of analytic/calculated spatial responses to SignalFilter
17 Added frequency-based preinterpolation to SignalFilter and idiff3
18 backprojection method. Currently, this technique is still under
19 development and debugging
20 Moved graphic file writing to ImageFile class from if2img program
23 Cleaned up SignalFilter class
24 Added zeropad option to pjrec
25 Added zeropad options to html and cgi files
26 Added fourier_table and rfttw filter methods
27 Added FFTW routines to use real/half-complex transformations
30 Updated trace level processing
31 Added trace level to SignalFilter
32 Fixed magnitude vs. real output bug in FFT/Fourier filter
35 Fixed const issue with ImageFileArray
36 Fixed Array2dFile::labelsCopy()
37 Added copy constructor and assignment for Array2dFileLabel class
38 Added Timer to if-2.cpp and ifinfo.cpp
39 Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
40 Added option processing for filter-method for pjrec to choose
41 between convolution, dft, & fft filtering
42 Fixed format string for EZPlot so axis labels now print
43 Added support for FFTW library
46 Rewrote Array2dFile class to be non-templated
47 Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
48 Rewrote Array2dFileLabel class to make members private, added access routines
49 Removed timedate.cpp in favor of standard C library time/date functions
50 Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
51 Added signature tag and creation date/time to projection files
54 Standardized string option processing by classes. All classes use character strings
55 to select options rather than numeric constants. Added fail() and failMessage()
56 methods to verify that objects are created correctly by character strings.
57 Hid C++ assignment and copy constructors in classes that should not have assignment/copy
58 Rewrote ImageFile class
59 Started support for dmallocxx library, not finished
60 Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
61 Updated ifinfo to show comparative statistics
62 Added printLabels() to Array2dFile class
63 Added printStatistics() to ImageFile class
66 Moved conversion filter name/id to Filter class
67 Moved conversion backprojection name/id to Backproj class
68 Added MPI broadcasting of strings
71 Merged proj_reconstr into class Projections
72 Used auto_ptr in Projections::reconstruct to make sure destructor is always called
73 Code cleanup in projections.cpp
74 Moved conversion of phantom names/id to Phantom class
77 Converted projection files to C++ library with frnetorderstream
78 Converted image files to C++ library with frnetorderstream
79 Converted filter and convolution to object-oriented code
80 Changed default image file to float from double -- Changable in imagefile.h
81 Optimized image file writing on little-endian architectures
82 Updated README and INSTALL
85 Reorganized source files
86 MPI bug fixed to phm2pj.cpp
89 Reorganized include files
90 Fixed const pointers in strfuncs
93 Renamed directories, moved source files, combined source files
94 to change from 6 libraries to 3 libraries (libctsim, libctsupport,
98 Skip versions to make version 2.0 the first fully C++ version
99 Renamed Raysums to Projections throughout files
100 Renamed Detector to Scanner
101 Converted Scanner and Projecions to full object-oriented
104 Converted Phantom and PhantomElements to Object-Oriented
105 Converted Detector to Object-Oriented
108 Improved Integer backprojection method
109 Fixed nearest neighbor to be truly nearest neighbor
110 Made linear interpolation more integer arithmetic -> speed improvement
111 Finished converting all C files to C++
112 Converted all use of malloc/free to C++ new/delete
113 Began object-oriented conversion of Phantom and Projection structures
116 Converted MPI data structures to C++ object
117 Made ImageFile directly inherit from Array2dFile
120 First C++ conversions
121 Portable IF (image file) format implemented with objects (SDF removed)
122 - Now all data files are cross-platform compatible
123 Converted from MPI to MPI++
124 Converted backprojection to object-oriented
125 Removed MTX from libkmath as no longer need -- replaced with C++ matrices
128 Simpilifed endian handling
131 Added support for 64-bit (IA64) CPU
132 Removed broken B-spline interpolation
133 Added support for cygwin platform under Windows 2000
134 Added support for 16-bit PNG graphics
137 Added compile-time configuration of endian order
140 Modified the raysum file format to be platform independent
143 Added Microsoft VC compatibility
144 Cleaned up compilation warnings in libgraph
147 Continued conversion to ANSI C
148 Removed old CRT routines
151 Renamed pictures to phantoms, objects to phantom elements
152 Continued code cleanup
155 More code cleanup with reorganizing libraries
156 Added --log and --exp to sdf-1
157 Allowed negative numbers for window levels in CGI interface
160 Continued code cleanup
164 Better documented, coded raysum in-memory on on-disk options
167 Cleaned out library that wasn't being used by CTSim
168 Modified ctsim.cgi to read in configuration file ctsim.conf
171 First open source distribution for GNU/Linux
174 Converted to GNU/Linux
175 added MPI support via LAM library
178 Developed under MS-DOS and IBM EGA graphics