[MINC-development] Welcome

Andrew Janke minc-development@bic.mni.mcgill.ca
Tue, 12 Nov 2002 10:07:05 +1000


On Tue, 12 Nov 2002, Andrew Janke wrote:

> > 1. MINC could be better documented.
> > 2. MINC would benefit from a more complete set of automated tests.
> > 3. MINC requires extensions to support files larger than core.
> > 4. MINC requires extensions to support files larger than 2 GB.
> > 5. MINC requires extensions to run on 64-bit architectures.
> > 6. Given #3, block-structuring MINC data will improve file access speed.
> > 7. MINC must remain backward compatible with existing data.

Oh, and while we're at it, can I add:

  8. Munging volume_io.h to reduce the amount of name space pollution?

ie:
  #define  X             0
  #define  Y             1
  #define  Z             2

is a shining example.  If you attempt to use GSL within volume_io you will get
obsecure errors as GSL uses gsl_matrix * X in some of it's function
prototypes.....

Perhaps something like this would be better:

  #define  VOLIO_X       0
  #deinfe  VOLIO_Y       1
  #define  VOLIO_Z       2

There are plenty more examples in volume_io that also need addressing, this of
course may be a backwards compatibility nightmare, although having a
volume_io_old.h with wrappers may be a way around this.

Others that come to mind are:

   ALLOC, FREE, REALLOC, FALSE, TRUE, OFF, ON, INTERPOLATE, PI, ABS, MAX, SIGN,
MIN, IJ, IJK, FLOOR, ROUND and N_DIMENSIONS.

IMHO all #defines in a library header should be prefixed with the libraries
short name ala GNU libraries.  (such as GSL).


--
Andrew Janke   ( rotor@cmr.uq.edu.au || www.cmr.uq.edu.au/~rotor )
Australia->University of Queensland->Centre for Magnetic Resonance
Work: +61 7 3365 4100 || Home: +61 7 3800 4042