r10902: Automated commit for Debian build of ctsim upstream-version-4.4.4
[ctsim.git] / ChangeLog
1 Mar 16, 2006  Version 4.4.4
2         * Changes for g++ 4.1 support
3
4 Aug 22, 2005  Version 4.4.2
5         * New URL for downloading CTSim
6         
7 Aug 22, 2005  Version 4.4.1
8         * work-around for compilation problems on Fedora 4 and wxWin 2.4.2
9         
10 Aug 22, 2005  Version 4.4.0
11         * Changes in configure.ac for X.org compatibility with Debian Etch
12         and FC4. May not be backward compatibility with XFree86.
13         
14 Aug 10, 2004  Version 4.3.2, Version 4.3.3
15         * Minor changes in man pages to fix groff warnings
16
17 Nov 1, 2003  Version 4.3.1
18         * Add support for SuSE AMD64
19
20 Oct 5, 2003  Version 4.3.0
21         * Ported to incompatible FFTW3 library. CTSim will no longer compile or run with FFTW2. 
22         * Save FFTW3 in $HOME/.fftw3-wisdom on platforms where getenv function is available
23         
24 Oct 3, 2003  Version 4.2.7
25         * Add support for building on RedHat AMD64 
26
27 Sep 30, 2003  Version 4.2.7
28         * Fix minor issue with floating point difference backprojection, add
29         optimization
30         
31         * Fix building with newest versions of automake 1.7
32
33         * Add support for 8-byte longs [for example, Athlon64] in
34         integer difference backprojection allowing for 64-bit integer
35         math.
36
37 Mar 22, 2003  Version 4.2.3
38
39         * Added Fourier reconstruction method
40
41         * Support gcc 3.2, wxWindows 2.4, and MacOS X
42
43         * Fix polar interpolation
44         
45 Jun 26, 2002  Version 3.5.6
46
47         * Fix minor color PNG image importing bug
48         
49         * Bug fix for building on Debian alpha platform
50
51         * Fix g++ compilation warnings
52         
53 Jun 13, 2002  Version 3.5.5
54         
55         * Fix printing of version number
56         
57         * Minor bug fixes
58
59         * Updated Win32 compatibility
60         
61 Jun 8, 2002  Version 3.5.4
62
63         * Print version number in log window with About command
64         
65         * Fix problem with captions not showing on some windows. Reworked
66         creation of new windows.
67         
68         * Disabled status bar on 3d views
69         
70         * Fix bug in configure.ac that prevented using compiler
71         optimizations.
72
73         * Updated About splash screen
74         
75 May 29, 2002  Version 3.5.3
76         * Added support for g++ 3.04 compiler
77         
78 May 8, 2002  Version 3.5.2
79         * configure: improved CTN (DICOM) installation search
80         * src/ctsim.cpp: Fixed initial image size with import command
81
82 May 5, 2002  Version 3.5.1
83
84         New Features:
85
86         * ctsim: Added tips to be displayed at startup and via the help menu.
87         * ctsim: Added center-detector concept. Allow for detector array
88         to be any arbitrary distance from center of scanner. As a result,
89         projection files are not incompatible with previous version of
90         CTSim.
91         * ctsim: Added threaded tasks and background manager for 
92         background processing as well as taking advantage of multiple-CPU's 
93         on SMP systems.  (Microsoft Windows only)
94         * ctsim: Added plot t-theta sampling to projection file menu.
95         * ctsim: Added Reconstruction with Rebinning for faster
96         divergent beam reconstructions.
97         * ctsim: Added import and export of DICOM image files.
98         * ctsim: Added PPM, PGM, and PNG file import to imagefile.
99         * ctsim: Added FFT/IFFT of columns of image files.
100         * ctsim: Added clipboard cut/copy/paste for image files.
101         * ctsim: Added region of interest to reconstructions.
102         * ctsim: Added Convert Rectangular Image to Projection files
103         * ctsim: Added "Verbose Logging", "Startup Tips", and
104         "Background processes" options  to Preferences dialog.
105         * ctsim: Added plotting of projection file histograms.
106         * plotfile: Added scattergram plot functions
107         * ctsim: Added accelerator key for File-Properties
108         * ctsim: Improved wireframe 3-d display to remove hidden
109         surfaces.
110         * backprojectors.cpp: Added setting of axis extent and increment
111         to reconstructions.
112         * projections.cpp: Can read and reconstruct SIEMENS AR.STAR DICOM
113         projection data files.
114         
115         Bug Fixes:
116
117         * views.cpp: reduced calls to progress bar update, significant speedup
118         * views.cpp,ctsim.cpp: Fixed bug with window frames sometimes
119         not being displayed on Unix platforms.
120         * views.cpp: Added out-of-memory checks to display for huge
121         image and projection files.
122         * filter.cpp: Fixed Hanning parameter to be 0.5 rather than 0.54
123         * imagefile.cpp: Fixed scaling factor in fftRows
124         * imagefile.cpp: Fixed bug when performing magnitude() on real-valued
125         image.
126         * sgp.cpp: Fixed bug in drawCircle.
127         * distribution: fixed problem with documentation files not
128         being included with the distribution (Reported by Ian Kay).
129         * sgp.cpp/ezplot.cpp: Improved plotting with markers.
130         * fixed ctsimtext shell when giving no parameters to function-name
131         * phm2if, phm2pj: Updated help messages for renamed phantoms
132         
133 3.0.3 - Released 2/20/01
134
135         * ctsim: Fixed core dump on Linux with OpenGL
136
137         * ctsim: Fixed context-sensitive help on Linux
138
139         * ctsim: Fixed About box on Linux
140         
141 3.0.2 - Released 2/20/01
142
143         * scanner.cpp: Fixed bug when number of detectors was even.
144
145         * ctsim: Improved error handling when trying to convert
146         divergent projections into polar form.
147         
148 3.0.1 - Released 2/19/01
149
150         * ctsim: Fixed dialog box for reconstruction so that
151         rotation angle setting will stay fixed in-between use
152         of the dialog box.
153
154         * syserror: Fixed display bug for trace messages
155
156         * ctsim: MSVC optimization bug work-around, compiler 
157         options changed.
158         
159 3.0.0 - Released 2/19/01
160
161         * ctsim: Massive update/fix to online help and print manual.
162
163         * ctsim: Added context-sensitive help to dialog boxes
164         
165         * ctsim: Reformated all dialog boxes, much nicer now.
166         
167         * ctsim: Improved accelerator key handling
168         
169         * global: Added Hanning filter.
170
171         * global: Improved default parameters to that all defaults give
172         sensible output.
173         
174 3.0.0beta1 - Released 2/11/01
175
176         * ctsim: Added most-recently-used files to File menu with
177         registry storage between executions.
178
179         * ctsim: Hides arcane features unless enabled by Preferences dialog
180         
181         * ctsim: Added MDI interface for Windows version and made it default for Windows.
182
183         * ctsim: Added 3-D wireframe view of images (uses OpenGL)
184         
185         * ctsim: Added graphical About box
186
187         * ctsim: Escape key now removes cursor lines from image file view
188
189         * ctsim: Added Revert to ImageFile menu
190         
191         * ctsim: Added accelerator (hotkeys) to frames
192
193         * ctsim: Online help added!
194
195         * backprojector: Added cubic interpolation
196         
197         * ctsim: Added icons to Frames on X-Window and MS Windows versions
198
199         * ctsim: Fixed tick-label placement for plots on projection and
200         reconstruction dialogs.
201
202         * timer.h: Add use of _ftime when compiling on MSVC
203
204         * global: Projection files are not compatible with previous version
205         due to new scanner definitions.
206         
207         * global: deleted concept of field-of-view and added
208           view ratio and scan ratio concepts.
209         
210         * ctsim: Fixed crash on shutdown bug
211
212         * pjinfo: Fixed bug when doing --dump and not specifing --endview
213
214         * phm2pj: Fixed MPI bug with broadcasting of variables
215         
216         * ctsimtext-lam: Changes for first version to compile under lam
217
218         
219 3.0.0alpha5 - Released 1/12/00
220
221         * ctsim: Added EZPlotDialog, used by debugging plots in
222         procsignal.cpp
223         
224         * ctsimtext: Fixed bugs for MSVC and with empty input lines. Fixed 
225         bug in parsing command-line parameters.
226
227         * views.cpp: Fixed bug in copying of labels from images to
228         plotfiles
229         
230         * syserror.cpp: fixed reporting for fatal errors
231
232         * projections.cpp: fixed MSVC failure with std:: namespace
233
234         * procsignal.cpp: fixed bug in equiangular reconstructions
235         for frequency/inverse-fourier filtering
236         
237 3.0.0alpha4 - Released 1/09/01
238
239         * ctsim: Added reset to full-intensity scale menu item
240
241         * ctsim: Add conversion of projections to polar plot [Thanks to
242         Ian Kay for reference and math hints in polar bilinear scaling]
243
244         * ctsim: improve bilinear scaling of image size [Thanks to Ian Kay
245         for math tips]
246
247         * ctsim: imagefile labels are now copied to plotfiles
248
249         * ctsim: Added more analyze menuitems
250         
251         * ctsimtext: First version. All command-line tools are now accessed
252         through this master shell. Has both command-line and interactive
253         interface
254         
255         * ctsim: Fixed initialization of min/max bug for PlotFiles
256
257         * ezplot: Cleaned up y-tick label placement
258
259         * sgp: Added better support for projection/reconstruction animation
260         
261 3.0.0alpha3 - Released 1/02/01
262
263         * ctsim: Added plotting of histograms
264         
265         * imagefile.cpp: fixed bug in generation of 16-bit PNG images
266
267         * ezplot.cpp: adjusted xtick label displays for better placement
268         
269 3.0alpha2 - Released 1/02/01
270         
271         * ctsim: All functions of command-line tools are now in graphical ctsim
272         
273         * ctsim: added generation of filter images
274
275         * ctsim: Added 2-image math functions (mul, add, div, sub)
276
277         * ctsim: Added export of imagefiles to graphic file formats
278
279         * ctsim: Added support for scaling imagefiles in new sizes
280
281         * ctsim: Added ability to save standard phantom definitions as
282         text files suitable for reading.
283         
284         * ctsim: Add labels for image transformations and display of labels
285         when performing properties of images.
286
287         * processsignal.cpp: Fixed "off by one" bug in
288         shuffleNaturalToFourierOrder when n is even. Moved functions to
289         fourier.cpp
290
291         * imagefile.cpp: Added FFTW library to imagefile processing. Converted
292         image math functions to complex-valued math.
293
294         * phantom.cpp: Added ability to save phantom files as ASCII text.
295         
296 3.0alpha1 - Released 12/29/00
297
298         * Added PlotFile class to system, used by if2 and ctsim for row
299         and column plots and comparison plots
300
301         * ctsim: Added image comparison statistics and image subtraction
302
303         * ctsim: Added plotting of rows & columns with y-axis scaling 
304
305         * ctsim: Added row and column plot comparisons between two image
306         files.
307
308         * ctsim: Added "Process" menu to image file display with math
309         functions. Added 2-dimensional inverse Fourier to math
310         functions. Added support for complex (real/imaginary) images.
311
312         * mathfuncs.cpp: Reworked statistics algorithm to share between
313         imagefile and plotfile classes.
314
315         * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
316         nsamples > 2.  Added generic mage math functions, moved from
317         if1.cpp and if2.cpp to imagefile.cpp. Added support complex
318         images.
319
320         * array2dfile.cpp: Added code to support complex (real/imaginary)
321         images.
322
323         * if1: Updated to handle error conditions, such as sqrt of a
324         negative number. Converted to use new ImageFile math functions.
325         
326         * if2: Updated to output plot files and use new ImageFile class
327         math functions
328
329         * if1: Updated to use new ImageFile class math functions
330
331         * ezplot: Reworked to better store colors/linestyles/symbols with
332         individual curves. Improved display of labels and ticks. Updated
333         to use POL class member variable. Updated to more C++ conventions.
334
335         * pol: converted to C++ class. Extracted HashTable to separate
336         class.
337         
338         * sgp: Added linestyle settings
339         
340 2.5.0 - 12/18/00 
341    First Microsoft Windows GUI version
342    Modifications for Microsoft Visual C++ compilation.
343    Improved pjinfo to output binary headers and view data, useful
344         when manually compiling phantoms that vary during projection
345         process. Thanks to Ian Kay for idea and code submission.
346    Improved sorting to find median in ImageFile::statistics
347    Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay) 
348    Changed reconstruction dialog to fix onto smaller screens
349    Fixed display of plotting in Projection views
350    Improved animation displays for Projections and Reconstructions
351    Changed code to explicitly use std:: namespace rather than 
352         "namespace using std" statements
353    Fixed reconstruction scaling bug introduced in 2.0.6
354    Renamed if2img to ifexport, if-1 to if1, if-2 to if2
355         
356 2.0.6 - 12/03/00
357    Fixed minor compilation problem with procsignal.h
358    Updated README file
359    Fixed bug when simulating projections and Trace == CONSOLE
360    Fixed scaling bug when performing redundant rotations around object
361         
362 2.0.5 - 12/01/00
363    Improved compilation on RedHat 7
364    Changed some of ANSI C header files to C++ header files
365    Removed README.RedHat7
366         
367 2.0.4 - 11/25/00
368    Added documentation for --geometry setting
369    Added README.RedHat7 document
370          
371 2.0.3 - 11/20/00
372    Fixed bug in generation of binary PGM files
373    Fixed MPI compilation bug in phm2pj.cpp
374    Inverted y-axis output for pj2if (bug alert from Ian Kay)
375         
376 2.0.2 - 11/8/00
377    Additions to man pages (Ian Kay)
378    Fix problem with reading of ASCII phantom files (Ian Kay)
379
380 2.0.1 - 10/1/00
381    Fixed syntax error in fftw configuration
382    Slight modifications to support gcc v2.9.6
383         
384 2.0.0 - 9/7/00
385    Version 2.0.0 released!
386    ctsim: Added Window menu to Main frame
387    ctsim: Disabled not support reconstruction method
388    Fixed obscure bug in sys_error
389    Fixed compilation in mingw environment not present
390    Fixed compilation in non-graphical environments      
391         
392 2.0.0-b12 - 9/4/00
393    ctsim: Added animation of reconstruction
394    ctsim: Added saving of dialog parameters for Projection & Reconstruction
395    ctsim: Added progress dialog for rasterization of phantom
396    ctsim: used setpriority to set lower priority
397    ctsim: fixed pReconstruct not being deleted causing scaling problem
398    ctsim: fixed projection animation dialog buttons
399
400 2.0.0-b11 - 9/1/00
401    ctsim: Added projection graph to animation of projection collection  
402    ctsim: Added single stepping to projection collection animation
403    ctsim: improved File/Properties display for projection files
404    ctsim: Added progress dialog for reconstructions
405    ctsim: Added file labels for projection and reconstruction images
406    ctsim: Made File/Properties bring up modal dialogs
407    Added reconstruction for Equilinear and Equiangular geometries
408    Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
409    Separated reconstruction into Reconstructor class
410    Fixed center of detector adjustment for even number of detectors
411    Added --enable-static to generate statically linked programs
412         
413 2.0.0-b10 - 8/25/00
414    ctsim: Added animation of projection collection processs
415    ctsim: Added Auto Scaling for image windows
416    ctsim: Change menus from "windowing" to "display scaling"
417    Added FieldOfView and FocalLength ratio parameters to projection collection
418    Added FocalLength & FieldOfView fields to projection data files
419    Added Projection collection for Equilinear and Equiangular geometries
420    Changed name of Rowland Phantom to correct name of Shepp-Logan
421    Fixed bug in backprojection selection
422         
423 2.0.0-b9 - 8/22/00
424    Added RCS Id strings to executable files
425    Added RPM Spec file for RPM package creation
426    Added loading of ASCII phanthom definitions from files
427    Fixed compilation for non-SGP architectures 
428    Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
429    Added Filter-Generation option to reconstruction to allow direct or 
430         inverse_fourier construction of filters
431    Added median to statistics and to auto-windowing
432         
433 2.0.0-b8 - 8/1/00
434    Added line color support to SGP
435    Fixed lineAbs bug
436         
437 2.0.0-b7 - 7/25/00
438    Finished support for dmallocxx library
439    Fixed bug in SignalFilter::convertFilterMethodNameToID()
440    Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to 
441         G2 windows and well as WXWindows.
442    ctsim program: "Create Phantom" now shows phantom object
443    Fixed row-plot bug in if-2
444    Reworked EZPlot's multiple plot operation
445         
446 2.0.0-b6 - 7/22/00
447    ctsim program: improved initial size and scroll area for image 
448         and projection files
449    ctsim program: added rasterization parameters, projections parameters,
450         and reconstruction parameters dialogs
451    Moved char[] static definition from header files to c++ files
452    Completely reorganized option processing in classes to improve
453         expandability and to assist ctsim graphical user interface.
454         
455 2.0.0-b5 - 7/17/00
456    ctsim program: Added dialog to set minimum/maximum display levels 
457    Started ctsim.tex document file
458         
459 2.0.0-b4 - 7/13/00
460    Fixed compiler warnings at -Wall level
461    Began work on CTSim program to be graphical front-end of all functions
462    Moved current src/*.cpp to tools/*.cpp
463    Made CTSim graphical front-end's home to be src/
464         
465 2.0.0-b3 - 7/10/00
466    Added highly optimized backprojection method idiff3
467    Moved comparative stats to if-2 program from ifinfo
468    Fixed image display in if2img using G2 library
469    Added column-plot and row-plot options to if-2
470    Added autoselection of analytic/calculated spatial responses to SignalFilter
471    Added frequency-based preinterpolation to SignalFilter and idiff3
472         backprojection method. Currently, this technique is still under
473         development and debugging
474    Moved graphic file writing to ImageFile class from if2img program
475
476 2.0.0-b2 - 7/07/00  
477    Cleaned up SignalFilter class
478    Added zeropad option to pjrec
479    Added zeropad options to html and cgi files
480    Added fourier_table and rfttw filter methods
481    Added FFTW routines to use real/half-complex transformations
482         
483 2.0.0-b1 - 7/05/00
484    Updated trace level processing
485    Added trace level to SignalFilter
486    Fixed magnitude vs. real output bug in FFT/Fourier filter
487         
488 1.9.9 - 7/04/00
489    Fixed const issue with ImageFileArray
490    Fixed Array2dFile::labelsCopy()
491    Added copy constructor and assignment for Array2dFileLabel class
492    Added Timer to if-2.cpp and ifinfo.cpp
493    Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
494    Added option processing for filter-method for pjrec to choose
495         between convolution, dft, & fft filtering
496    Fixed format string for EZPlot so axis labels now print
497    Added support for FFTW library
498         
499 1.9.8 - 6/27/2000
500    Rewrote Array2dFile class to be non-templated
501    Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
502    Rewrote Array2dFileLabel class to make members private, added access routines
503    Removed timedate.cpp in favor of standard C library time/date functions
504    Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
505    Added signature tag and creation date/time to projection files
506         
507 1.9.7 - 6/25/2000
508    Standardized string option processing by classes. All classes use character strings
509         to select options rather than numeric constants. Added fail() and failMessage()
510         methods to verify that objects are created correctly by character strings.
511    Hid C++ assignment and copy constructors in classes that should not have assignment/copy
512    Rewrote ImageFile class
513    Started support for dmallocxx library, not finished
514    Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
515    Updated ifinfo to show comparative statistics
516    Added printLabels() to Array2dFile class
517    Added printStatistics() to ImageFile class
518         
519 1.9.6 - 6/22/2000
520    Moved conversion filter name/id to Filter class
521    Moved conversion backprojection name/id to Backproj class
522    Added MPI broadcasting of strings
523         
524 1.9.5 - 6/21/2000
525    Merged proj_reconstr into class Projections
526    Used auto_ptr in Projections::reconstruct to make sure destructor is always called
527    Code cleanup in projections.cpp
528    Moved conversion of phantom names/id to Phantom class
529         
530 1.9.4 - 6/20/2000
531    Converted projection files to C++ library with frnetorderstream
532    Converted image files to C++ library with frnetorderstream
533    Converted filter and convolution to object-oriented code
534    Changed default image file to float from double -- Changable in imagefile.h
535    Optimized image file writing on little-endian architectures
536    Updated README and INSTALL
537         
538 1.9.3 - 6/19/2000
539    Reorganized source files
540    MPI bug fixed to phm2pj.cpp
541         
542 1.9.2 - 6/18/2000
543    Reorganized include files
544    Fixed const pointers in strfuncs
545         
546 1.9.1 - 6/16/2000
547    Renamed directories, moved source files, combined source files
548    to change from 6 libraries to 3 libraries (libctsim, libctsupport,
549    and libctgraphics)
550         
551 1.9.0 - 6/15/2000
552    Skip versions to make version 2.0 the first fully C++ version
553    Renamed Raysums to Projections throughout files
554    Renamed Detector to Scanner
555    Converted Scanner and Projecions to full object-oriented
556         
557 0.6.1 - 6/12/2000
558    Converted Phantom and PhantomElements to Object-Oriented
559    Converted Detector to Object-Oriented
560         
561 0.6.0-b3 - 6/10/2000
562    Improved Integer backprojection method
563         Fixed nearest neighbor to be truly nearest neighbor
564         Made linear interpolation more integer arithmetic -> speed improvement
565    Finished converting all C files to C++
566    Converted all use of malloc/free to C++ new/delete
567    Began object-oriented conversion of Phantom and Projection structures
568         
569 0.6.0-b2 - 6/8/2000
570    Converted MPI data structures to C++ object
571    Made ImageFile directly inherit from Array2dFile
572         
573 0.6.0-b1 - 6/6/2000
574    First C++ conversions
575    Portable IF (image file) format implemented with objects (SDF removed)
576         - Now all data files are cross-platform compatible
577    Converted from MPI to MPI++
578    Converted backprojection to object-oriented
579    Removed MTX from libkmath as no longer need -- replaced with C++ matrices             
580         
581 0.5.4 - 6/4/2000
582    Simpilifed endian handling
583         
584 0.5.4-b3 - 6/1/2000
585    Added support for 64-bit (IA64) CPU
586    Removed broken B-spline interpolation
587    Added support for cygwin platform under Windows 2000
588    Added support for 16-bit PNG graphics
589         
590 0.5.4-b2 - 5/16/2000
591    Added compile-time configuration of endian order
592
593 0.5.4-b1 - 5/14/2000
594    Modified the raysum file format to be platform independent
595         
596 0.5.3 - 5/11/2000
597    Added Microsoft VC compatibility
598    Cleaned up compilation warnings in libgraph
599         
600 0.5.2-b5 - 5/7/2000
601    Continued conversion to ANSI C       
602    Removed old CRT routines
603         
604 0.5.2-b4 - 5/4/2000
605    Renamed pictures to phantoms, objects to phantom elements
606    Continued code cleanup
607         
608 0.5.2-b3 - 4/30/200
609     More code cleanup with reorganizing libraries
610     Added --log and --exp to sdf-1
611     Allowed negative numbers for window levels in CGI interface
612
613 0.5.2-b2 - 4/30/200
614     Continued code cleanup
615         
616 0.5.2-b1 - 4/29/2000
617     Fixed a few MPI bugs
618     Better documented, coded raysum in-memory on on-disk options
619         
620 0.5.1 - 4/28/2000
621     Cleaned out library that wasn't being used by CTSim  
622     Modified ctsim.cgi to read in configuration file ctsim.conf
623
624 0.5.0 - 4/27/2000 
625     First open source distribution for GNU/Linux
626         
627 6/1999 
628   Converted to GNU/Linux
629   added MPI support via LAM library
630         
631 1983-84 
632   Developed under MS-DOS and IBM EGA graphics
633