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
