2001-10-08
----------

Version 1.0-1 : Renamed version of AnalyzeIO with added functions and GUI to perform Spatial ICA on fMRI datasets.

2001-08-29 
----------

Version 1.0-2 : 
- Include facility to read/write unsigned char (1 byte) ANALYZE image format files. 
- Slice selection for Spatial ICA
- Improved plotting for Spatial ICA

2001-09-08 
----------

Version 1.0-3 : 
- Include facility to plot results out to jpeg files
- Improve format of plotting


2001-11-27
----------

Version 1.0-4 :
- Checks for existence of .hdr and .img files are now made
- New file finding GUI
- small bugs removed from f.analyzeFMRI.gui() and f.spectral.summary()


2001-12-06
----------

Version 1.0-5 :
- all C functions have _JM appended to their names to stop clashes with symbols in other packages

2002-03-26
----------

Version 1.0-6 :
- C code tidied up
- "r" and "w" changed to "rb" and "wb" in fopen calls
- tests directory added to check read and write functions work on examples
- proper error reporting used in C code (using error function)
- README.win file added to inst that describes installation of the package binary for Windows

2002-04-15
----------

Version 1.0-7 :

- tcltk scripts updated to avoid use of deprecated $.tclvar 

2002-09-09
----------

Version 1.0-8 :

- .lib.loc references changed in preparation for 1.6.0 (with help from BDR)

2004-06-08
----------

 Version 1.0-9

-changed detection of blas & lapack, to be MacOS X compatible (no lsame in BLAS)

2004-12-23
----------

 Version 1.1-0

-implemented Brian's changes

2005-06-17
----------

 Version 1.1-3

-bug fix in function f.read.analyze.slice.at.all.timepoints discovered by Russell V. Lenth

2005-10-04
----------

 Version 1.1-4

-put continuation lines in fortran code to make compatible with default use of gfortran in R-2.2.0

2006-05-02
----------

 Version 1.1-5

-bug fixes in R functions cluster.threshold and f.read.analyze.ts
-bug fix in C function create_data_matrix_JM

2006-05-16
----------

 Version 1.1-6

-Brian made changes to separate out slamc.f

2007-10-18
----------

 Version 1.1-7

-I (P.Lafaye de Micheaux) began to maintain this package.
-modification of R function f.read.analyze.header to add the output value 'originator' : coordinates of the central voxel of the image
-bug fix in C function read_analyze_header_wrap_JM: originator should begin at 253L ; originator was char[10] and is now int[5]
-removing of compilation warnings in slapack.f

2007-12-11
----------

 Version 1.1-8

-modification of R function f.read.analyze.header to output all the components of the .hdr file (in basic Analyze 7.5 format but with originator field modified)
-modification of R function f.basic.hdr.list.create : originator field was modified (In the basic format, this is meant to be 10 bytes of text. In SPM, this space is used to contain three short (two byte) integers.) from 10 char (1 byte) to 5 short int (2 bytes)
-modification of R function f.write.list.to.hdr : L$originator from character to integer
-modification of R function f.write.analyze: i added the 'originator' argument to the function (with rep(0,5) default value)
-modification of C function write_analyze_header_wrap_JM : originator from char** to int* 

2007-12-12
----------

 Version 1.1-9

-I added the files niftiFMRI.c and niftiFMRI.R to be able to read the new NIFTI format for .hdr files
-I completed the documentation of the outputs of f.read.analyze.header and f.read.nifti.header


2008-02-26
----------

 Version 1.1-10

- ICA.gui.R and AnalyzeFMRI.gui.R were modified to avoid use of deprecated tkcmd. I replaced tkcmd by tcl
- size.of.header was replaced by sizeof.hdr both in the functions f.basic.hdr.list.create and f.write.list.to.hdr
- Error in function f.read.nifti.header: srow_x,y and z were declared as single(1) which was incorrect. They are now defined as single(4)
- The function write_nifti_header_wrap_JM was added to the file niftiFMRI.c. It is now possible to write .hdr files in NIFTI format.
- The function read_nifti_magic_wrap was added to the file niftiFMRI.c. It is now possible to read a .hdr file and its format (ANALYZE or NIFTI) 
  is determined automatically.
- I added the functions f.nifti.file.summary , f.basic.hdr.nifti.list.create , f.write.list.to.hdr.nifti , f.write.nifti 
  f.read.nifti.slice , f.read.nifti.tpt , f.read.nifti.slice.at.all.timepoints , f.read.nifti.ts , f.spectral.summary.nifti , 
  f.read.nifti.volume , f.read.header , f.write.nii.array.to.img.2bytes , f.write.nii.array.to.img.8bit and f.write.nii.array.to.img.float 
  to the file nifitFMRI.R
- I added the documentation for the functions f.nifti.file.summary , f.basic.hdr.nifti.list.create , f.write.list.to.hdr.nifti , f.write.nifti ,
  f.read.nifti.slice , f.read.nifti.tpt , f.read.nifti.slice.at.all.timepoints , f.read.nifti.ts , f.read.nifti.volume , f.spectral.summary.nifti
  and f.read.header
- Documentation for f.read.analyze.header and f.read.nifti.header was modified
- I corrected an error in the Examples section of the file f.write.list.to.hdr
- I modified the INDEX file
- I added a nwritten and a nread int variable for the output of th C functions fread and fwrite.
- I added the functions write2byteappend_JM , write8bitappend_JM , writefloatappend_JM to the file nifitFMRI.c



2009-10-19
----------

 Version 1.1-11

- Initialisation of some variables in nifitFMRI.c, slam.unused, sblas.unused and slapack.unused to prevent compiler warnings
- I added function f.read.volume to read a NIFTI or ANALYZE volume file. The function autodetects the format type of the image file
- I modified f.read.analyze.volume and f.read.nifti.volume to always return a 4D array
- I corrected a mistake in the function f.basic.hdr.nifti.list.create where vox.offset and magic fields should reflect the fact that we are in .nii or .img/.hdr NIFTI format
- I also modified the write_nifti_header_wrap_JM C function
- modification of R function f.write.list.to.hdr : I added a function strcomplete to respect the length of some Analyze character fields
- modification of R function f.write.list.to.hdr.nifti : I added a function strcomplete to respect the length of some Nifti character fields
- modification of many fields in help file f.read.nifti.header
- modification of example section from f.write.nifti help file
- There was a bug when using f.write.nifti function to create a .nii file. It is now corrected.
- Functions diminfo2fps and fps2diminfo added
- Functions xyzt2st and st2xyzt added
- I added a directory called niftidoc in the package that contains various documentation files about NIFTI fields
- I added a function f.complete.hdr.nifti.list.create
- I added a function magicfield
- I added a function analyze2nifti
- I added the functions threeDto4D, twoDto4D and fourDto2D
- I added the functions R2Q, Q2R xyz2ijk and ijk2xyz
- I modified f.read.nifti.header to take into account the cases when "" should be "\0" for example
- I added the functions nifti.quatern.to.mat44, mat34.to.TRSZ, mat34.to.TZSR
- I added the functions f.icast.fmri.gui, f.icast.fmri, centering, reduction, eigenvalues, ICAspat, ICAtemp
- I added the function plot.volume
- I modified the file man/EC.3D.Rd to suppress a WARNING on the CRAN

2009-11-03
----------

 Version 1.1-12

- I modified function threeDto4D to (better) check if the headers of all files are the same (depending if we are in NIFTI/Analyze format) 
- I modified function threeDto4D to add a check on datatype and to write the correct number of bytes with readBin/writeBin
- I modified "datatype" entry in f.read.nifti.header.Rd help file
- I modified f.write.nifti function to allow max and min computations when there are NaN values (usefull since SPM uses NaN values as markers for voxels for which it has not calculated any statistics)
- I modified f.write.nii.array.to.img.2bytes, f.write.nii.array.to.img.8bit and f.write.nii.array.to.img.float functions by adding NAOK=TRUE argument to .C calls (usefull since SPM uses NaN values as markers for voxels for which it has not calculated any statistics)
- I modified analyze2nifti function: qform.code and sform.code now take 0 as default values (instead of 2 before). I also added a check to verify if the .mat file exists.
- I added a citation file
- I modified the help file threeDto4D.Rd to warn the user that this function outputs files in the format sent in
- I  modified a few help files before my talk at useR 2010
- I modified the file plot.volume.gui.R to add hscale and vscale factors, thus enabling the possibility to resize the drawing. 
  This is particularly usefull for small laptop screens.
- I modified the file plot.volume.gui.R to correct an error when the visualizer GUI is used with 2D images.
- I modified the function R2Q() to add a qfac parameter. If not provided, we choose it to work with a proper rotation 
  matrix.
- I modified the f.read.header(), f.read.volume() and magicfield() functions to handle the NIFTI-x case (with x in 1...9)
- I modified the file plot.volume.gui.R to add sliders for the anatomical images, and also to take into account the pixdim values
- I modified the f.basic.hdr.list.create() function and its associated documentation to replace mat with X
- I modified the C function read_nifti_header_wrap_JM, the R function f.read.nifit.header() and the associated help file to enable the reading of the extension field, but there is still a problem
- I modified the functions mat34.to.TRSZ() and mat34.to.TZSR() to handle the case of improper rotations.

2011-06-05
----------

 Version 1.1-13

- I modified the file plot.volume.gui.R to correct a bug: the sliders did not move on the anatomical when you clicked on the functional (and vice versa)
- In this same file, I also changed order <- -1 into order <- -1*sign(L$pixdim[2]) (in the function orientation()) and hdr.anat$pixdim[2] into abs(hdr.anat$pixdim[2])

2011-10-19
----------

 Version 1.1-14

- I changed the CITATION file
- I modified line 190 of file spatial.mixture.R to: y <- vector(length = k + 2)
  This was to suppress a warning at the compilation of the package.
- I modified line 950of file analyzeFMRI.R to: jpeg(filename = paste(file, ".comp.", i, ".jpeg", sep = ""), width = width, height = height)
- removing of compilation warnings in slapack.f
