Index: /trunk/psLib/src/collections/psSort.c
===================================================================
--- /trunk/psLib/src/collections/psSort.c	(revision 830)
+++ /trunk/psLib/src/collections/psSort.c	(revision 831)
@@ -14,6 +14,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-13 22:47:52 $
+ *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -129,6 +129,6 @@
     inN = inVector->n;
     outN = outVector->n;
-    inVec = inVector->vec.f;
-    outVec = outVector->vec.f;
+    inVec = inVector->data.F32;
+    outVec = outVector->data.F32;
     elSize = sizeof(float);
 
@@ -188,6 +188,6 @@
     inN = inVector->n;
     outN = outVector->n;
-    inVec = inVector->vec.f;
-    outVec = outVector->vec.i32;
+    inVec = inVector->data.F32;
+    outVec = outVector->data.S32;
 
     if(inN != outN) {
@@ -197,10 +197,10 @@
     }
 
-    tmpFloatVector = psVectorAlloc(PS_TYPE_FLOAT, inN);
+    tmpFloatVector = psVectorAlloc(inN, PS_TYPE_F32);
     tmpFloatVector->n = inN;
     tmpFloatVector = psSort(tmpFloatVector, inVector);
 
     for(i=0; i<inN; i++) {
-        tempVal = tmpFloatVector->vec.f[i];
+        tempVal = tmpFloatVector->data.F32[i];
         for(j=0; j<inN; j++) {
             diff = fabsf(tempVal - inVec[j]);
Index: /trunk/psLib/src/collections/psVector.c
===================================================================
--- /trunk/psLib/src/collections/psVector.c	(revision 830)
+++ /trunk/psLib/src/collections/psVector.c	(revision 831)
@@ -19,6 +19,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-29 01:08:46 $
+ *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -64,5 +64,5 @@
 /* FUNCTION IMPLEMENTATION - PUBLIC                                          */
 /*****************************************************************************/
-psVector* psVectorAlloc(psElemType elemType, unsigned int nalloc)
+psVector* psVectorAlloc(unsigned int nalloc, psElemType elemType)
 {
     psVector *psVec = NULL;
@@ -86,10 +86,10 @@
 
     // Create vector data array
-    psVec->vec.v = psAlloc(nalloc*elementSize);
+    psVec->data.V = psAlloc(nalloc*elementSize);
 
     return psVec;
 }
 
-psVector *psVectorRealloc(psVector *restrict in, unsigned int nalloc)
+psVector *psVectorRealloc(unsigned int nalloc, psVector *restrict in)
 {
     int elementSize = 0;
@@ -110,5 +110,5 @@
             if (elemType == PS_TYPE_PTR) {
                 for (int i = nalloc; i < in->n; i++) {   // For reduction in vector size
-                    psMemDecrRefCounter(in->vec.vp[i]);
+                    psMemDecrRefCounter(in->data.PTR[i]);
                 }
             }
@@ -117,5 +117,5 @@
 
         // Realloc after decrementation to avoid accessing freed array elements
-        in->vec.v = psRealloc(in->vec.v,nalloc*elementSize);
+        in->data.V = psRealloc(in->data.V,nalloc*elementSize);
         in->nalloc = nalloc;
     }
@@ -129,5 +129,5 @@
 
     if (in == NULL) {
-        return psVectorAlloc(type,nalloc);
+        return psVectorAlloc(nalloc, type);
     }
 
@@ -150,10 +150,10 @@
     if (elemType == PS_TYPE_PTR) {
         for (int i = 0; i < in->n; i++) {   // For reduction in vector size
-            psMemDecrRefCounter(in->vec.vp[i]);
-            in->vec.vp[i] = NULL;
+            psMemDecrRefCounter(in->data.PTR[i]);
+            in->data.PTR[i] = NULL;
         }
     }
 
-    in->vec.v = psRealloc(in->vec.v,nalloc*PSELEMTYPE_SIZEOF(elemType));
+    in->data.V = psRealloc(in->data.V,nalloc*PSELEMTYPE_SIZEOF(elemType));
 
     in->n = 0;
@@ -170,5 +170,5 @@
     }
 
-    psFree(psVec->vec.v);
+    psFree(psVec->data.V);
     psFree(psVec);
 }
@@ -188,9 +188,9 @@
     for(int i = 0; i < psVec->nalloc; i++) {
         if(elemFree == NULL) {
-            psMemDecrRefCounter(psVec->vec.vp[i]);
+            psMemDecrRefCounter(psVec->data.PTR[i]);
         } else {
-            elemFree(psMemDecrRefCounter(psVec->vec.vp[i]));
+            elemFree(psMemDecrRefCounter(psVec->data.PTR[i]));
         }
-        psVec->vec.vp[i] = NULL;
+        psVec->data.PTR[i] = NULL;
     }
 }
Index: /trunk/psLib/src/collections/psVector.h
===================================================================
--- /trunk/psLib/src/collections/psVector.h	(revision 830)
+++ /trunk/psLib/src/collections/psVector.h	(revision 831)
@@ -1,24 +1,14 @@
 /** @file  psVector.h
  *
- *  @brief Contains support for basic vector types
+ *  @brief Contains basic vector definitions and operations
  *
- *  This file defines types and functions for one dimensional vectors which include:
- *      char
- *      short
- *      int
- *      long
- *      unsigned char
- *      unsigned short
- *      unsigned int
- *      unsigned long
- *      float
- *      double
- *      complex float
- *      void **
+ *  This file defines the basic type for a vector struct and functions useful
+ *  in manupulating vectors.
  *
+ *  @author Robert DeSonia, MHPCC
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-29 01:08:46 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -42,18 +32,19 @@
 
     union {
-        int8_t *i8;                     ///< Pointers to char integer data.
-        int16_t *i16;                   ///< Pointers to short integer data.
-        int32_t *i32;                   ///< Pointers to integer data.
-        int64_t *i64;                   ///< Pointers to long integer data.
-        uint8_t *ui8;                   ///< Pointers to unsigned char integer data.
-        uint16_t*ui16;                  ///< Pointers to unsigned short integer data.
-        uint32_t *ui32;                 ///< Pointers to unsigned integer data.
-        uint64_t *ui64;                 ///< Pointers to unsigned long integer data.
-        float *f;                       ///< Pointers to floating point data.
-        double *d;                      ///< Pointers to double precision data.
-        complex float *cf;              ///< Pointers to complex floating point data.
-        void *v;                        ///< Pointers to generic void data
-        void **vp;                      ///< Void pointer vector.
-    }vec;                               ///< Union for data types.
+        psU8    *U8;                    ///< Unsigned 8-bit integer data.
+        psU16   *U16;                   ///< Unsigned 16-bit integer data.
+        psU32   *U32;                   ///< Unsigned 32-bit integer data.
+        psU64   *U64;                   ///< Unsigned 64-bit integer data.
+        psS8    *S8;                    ///< Signed 8-bit integer data.
+        psS16   *S16;                   ///< Signed 16-bit integer data.
+        psS32   *S32;                   ///< Signed 32-bit integer data.
+        psS64   *S64;                   ///< Signed 64-bit integer data.
+        psF32   *F32;                   ///< Single-precision float data.
+        psF64   *F64;                   ///< Double-precision float data.
+        psC32   *C32;                   ///< Single-precision complex data.
+        psC64   *C64;                   ///< Double-precision complex data.
+        psPTR   *PTR;                   ///< Void pointers
+        psPTR    V;                     ///< Pointer to data
+    } data;                             ///< Union for data types.
 }
 psVector;
@@ -71,6 +62,6 @@
  */
 psVector *psVectorAlloc(
-    psElemType dataType,                ///< Type of data to be held by vector.
-    unsigned int nalloc                 ///< Total number of elements to make available.
+    unsigned int nalloc,                ///< Total number of elements to make available.
+    psElemType dataType                 ///< Type of data to be held by vector.
 );
 
@@ -84,6 +75,6 @@
  */
 psVector *psVectorRealloc(
-    psVector *restrict psVec,           ///< Vector to reallocate.
-    unsigned int nalloc                 ///< Total number of elements to make available.
+    unsigned int nalloc,                ///< Total number of elements to make available.
+    psVector *restrict psVec            ///< Vector to reallocate.
 );
 
Index: /trunk/psLib/src/dataManip/psFFT.c
===================================================================
--- /trunk/psLib/src/dataManip/psFFT.c	(revision 830)
+++ /trunk/psLib/src/dataManip/psFFT.c	(revision 831)
@@ -5,6 +5,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-02 03:02:48 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -448,16 +448,16 @@
     numElements = in->n;
 
-    out = psVectorRecycle(out,PS_TYPE_C32,numElements);
+    out = psVectorRecycle(out, numElements, PS_TYPE_C32);
 
     if (type == PS_TYPE_F32) {
         // need to convert to complex
-        psC32* outVec = out->vec.cf;
-        psF32* inVec = in->vec.f;
+        psC32* outVec = out->data.C32;
+        psF32* inVec = in->data.F32;
         for (unsigned int i=0;i<numElements;i++) {
             outVec[i] = inVec[i];
         }
     } else {
-        psC32* outVec = out->vec.cf;
-        psC32* inVec = in->vec.cf;
+        psC32* outVec = out->data.C32;
+        psC32* inVec = in->data.C32;
         for (unsigned int i=0;i<numElements;i++) {
             outVec[i] = inVec[i];
@@ -466,6 +466,6 @@
 
     plan = fftwf_plan_dft_1d(numElements,
-                             (fftwf_complex*)out->vec.cf,
-                             (fftwf_complex*)out->vec.cf,
+                             (fftwf_complex*)out->data.C32,
+                             (fftwf_complex*)out->data.C32,
                              direction,
                              P_FFTW_PLAN_RIGOR);
@@ -504,6 +504,6 @@
         psLogMsg(__func__,PS_LOG_WARN,"Real portion of a non-Complex type called called for. "
                  "Just a vector copy was performed.");
-        out = psVectorRecycle(out,type,numElements);
-        memcpy(out->vec.v,in->vec.v,numElements*PSELEMTYPE_SIZEOF(type));
+        out = psVectorRecycle(out,numElements,type);
+        memcpy(out->data.V,in->data.V,numElements*PSELEMTYPE_SIZEOF(type));
         return out;
     }
@@ -511,8 +511,8 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements,PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -548,5 +548,5 @@
                  "A zeroed vector was returned.");
         out = psVectorRecycle(out,numElements,type);
-        memset(out->vec.v,0,PSELEMTYPE_SIZEOF(type)*numElements);
+        memset(out->data.V,0,PSELEMTYPE_SIZEOF(type)*numElements);
         return out;
     }
@@ -554,8 +554,8 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements, PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -601,9 +601,9 @@
     if (type == PS_TYPE_F32) {
         psC32* outVec;
-        psF32* realVec = real->vec.f;
-        psF32* imagVec = imag->vec.f;
-
-        out = psVectorRecycle(out,PS_TYPE_C32,numElements);
-        outVec = out->vec.cf;
+        psF32* realVec = real->data.F32;
+        psF32* imagVec = imag->data.F32;
+
+        out = psVectorRecycle(out,numElements, PS_TYPE_C32);
+        outVec = out->data.C32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -639,6 +639,6 @@
                  "Vector copy was performed instead.");
 
-        out = psVectorRecycle(out,type,numElements);
-        memcpy(out->vec.v,in->vec.v,PSELEMTYPE_SIZEOF(type)*numElements);
+        out = psVectorRecycle(out,numElements,type);
+        memcpy(out->data.V,in->data.V,PSELEMTYPE_SIZEOF(type)*numElements);
         return out;
     }
@@ -646,8 +646,8 @@
     if (type == PS_TYPE_C32) {
         psC32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_C32,numElements);
-        outVec = out->vec.cf;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements,PS_TYPE_C32);
+        outVec = out->data.C32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -686,11 +686,11 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
+        psC32* inVec = in->data.C32;
         psF32 real;
         psF32 imag;
 
 
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        out = psVectorRecycle(out,numElements,PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
Index: /trunk/psLib/src/dataManip/psFunctions.c
===================================================================
--- /trunk/psLib/src/dataManip/psFunctions.c	(revision 830)
+++ /trunk/psLib/src/dataManip/psFunctions.c	(revision 831)
@@ -6,6 +6,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:24:55 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -75,5 +75,5 @@
     int i = 0;
 
-    gauss = psVectorAlloc(Npts, PS_TYPE_FLOAT);
+    gauss = psVectorAlloc(Npts, PS_TYPE_F32);
     gsl_rng_env_setup();
     T = gsl_rng_default;
@@ -81,5 +81,5 @@
 
     for (i = 0; i < Npts; i++) {
-        gauss->vec.f[i] = mean + gsl_ran_gaussian(r, sigma);
+        gauss->data.F32[i] = mean + gsl_ran_gaussian(r, sigma);
     }
 
Index: /trunk/psLib/src/dataManip/psMatrix.c
===================================================================
--- /trunk/psLib/src/dataManip/psMatrix.c	(revision 830)
+++ /trunk/psLib/src/dataManip/psMatrix.c	(revision 831)
@@ -20,6 +20,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:42:57 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -70,5 +70,5 @@
 /** Preprocessor macro to generate error a NULL image */
 #define PS_CHECK_NULL_VECTOR(NAME, RETURN)                                                          \
-if (NAME == NULL || NAME->vec.v == NULL) {                                                          \
+if (NAME == NULL || NAME->data.V == NULL) {                                                          \
     psError(__func__,"Invalid operation: %s or its data is NULL.", #NAME);                          \
     return RETURN;                                                                                  \
@@ -78,5 +78,5 @@
 #define PS_CHECK_ALLOC_VECTOR(NAME, SIZE, PS_TYPE)                                                  \
 if(NAME == NULL) {                                                                                  \
-    NAME = psVectorAlloc(PS_TYPE, SIZE);                                                            \
+    NAME = psVectorAlloc(SIZE, PS_TYPE);                                                            \
 }
 
@@ -173,5 +173,5 @@
     perm.size = numCols;
     outPerm->n = numCols;
-    perm.data = outPerm->vec.v;
+    perm.data = outPerm->data.V;
     PS_GSL_MATRIX_INITIALIZE(lu, outImage->data.V[0]);
 
@@ -226,13 +226,13 @@
 
     perm.size = inPerm->n;
-    perm.data = inPerm->vec.v;
+    perm.data = inPerm->data.V;
 
     b.size = inVector->n;
     b.stride = 1;
-    b.data = inVector->vec.v;
+    b.data = inVector->data.V;
 
     x.size = numCols;
     x.stride = 1;
-    x.data = outVector->vec.v;
+    x.data = outVector->data.V;
 
     // Solve for {x} in equation: {b} = [A]{x}
@@ -483,5 +483,5 @@
 
     colSize = PSELEMTYPE_SIZEOF(inImage->type.type)*inImage->numRows;
-    memcpy(outVector->vec.v, inImage->data.V[0], colSize);
+    memcpy(outVector->data.V, inImage->data.V[0], colSize);
 
     return outVector;
@@ -510,5 +510,5 @@
 
     colSize = PSELEMTYPE_SIZEOF(outImage->type.type)*outImage->numRows;
-    memcpy(outImage->data.V[0], inVector->vec.v, colSize);
+    memcpy(outImage->data.V[0], inVector->data.V, colSize);
 
     return outImage;
Index: /trunk/psLib/src/dataManip/psStats.c
===================================================================
--- /trunk/psLib/src/dataManip/psStats.c	(revision 830)
+++ /trunk/psLib/src/dataManip/psStats.c	(revision 831)
@@ -86,10 +86,10 @@
 
     newHist = (psHistogram *) psAlloc(sizeof(psHistogram));
-    newHist->bounds = psVectorAlloc(PS_TYPE_FLOAT, n+1);
+    newHist->bounds = psVectorAlloc(n+1, PS_TYPE_F32);
     binSize = (upper - lower) / (float) n;
     for (i=0;i<n+1;i++) {
-        newHist->bounds->vec.f[i] = lower + (binSize * (float) i);
-    }
-    newHist->nums =  psVectorAlloc(PS_TYPE_INT32, n);
+        newHist->bounds->data.F32[i] = lower + (binSize * (float) i);
+    }
+    newHist->nums =  psVectorAlloc(n, PS_TYPE_S32);
     newHist->minNum = 0;
     newHist->maxNum = 0;
@@ -106,9 +106,9 @@
 
     newHist = (psHistogram *) psAlloc(sizeof(psHistogram));
-    newHist->bounds = psVectorAlloc(PS_TYPE_FLOAT, bounds->n);
+    newHist->bounds = psVectorAlloc(bounds->n, PS_TYPE_F32);
     for (i=0;i<bounds->n;i++) {
-        newHist->bounds->vec.f[i] = bounds->vec.f[i];
-    }
-    newHist->nums = psVectorAlloc(PS_TYPE_INT32, (bounds->n)-1);
+        newHist->bounds->data.F32[i] = bounds->data.F32[i];
+    }
+    newHist->nums = psVectorAlloc((bounds->n)-1, PS_TYPE_S32);
 
     newHist->minNum = 0;
@@ -152,13 +152,13 @@
     for (i=0;i<in->n;i++) {
         // Check if this pixel is masked, and if so, skip it.
-        if (!(mask->vec.i32[i] & maskVal)) {
+        if (!(mask->data.S32[i] & maskVal)) {
             // Check if this pixel is below the minimum value, and if so
             // count it, then skip it.
-            if (in->vec.f[i] < out->bounds->vec.f[0]) {
+            if (in->data.F32[i] < out->bounds->data.F32[0]) {
                 out->minNum++;
 
                 // Check if this pixel is above the maximum value, and if so
                 // count it, then skip it.
-            } else if (in->vec.f[i] > out->bounds->vec.f[numBins]) {
+            } else if (in->data.F32[i] > out->bounds->data.F32[numBins]) {
                 out->maxNum++;
             } else {
@@ -166,9 +166,9 @@
                 // number is trivial.
                 if (out->uniform == true) {
-                    binSize = out->bounds->vec.f[1] - out->bounds->vec.f[0];
-
-                    binNum = (int) ((in->vec.f[i] - out->bounds->vec.f[0]) /
+                    binSize = out->bounds->data.F32[1] - out->bounds->data.F32[0];
+
+                    binNum = (int) ((in->data.F32[i] - out->bounds->data.F32[0]) /
                                     binSize);
-                    (out->nums->vec.i32[binNum])++;
+                    (out->nums->data.S32[binNum])++;
                     // If this is a non-uniform histogram, determining the correct
                     // bin number requires a bit more work.
@@ -177,7 +177,7 @@
                     // find the correct bin number (bin search, probably)
                     for (j=0;j<(out->bounds->n)-1;j++) {
-                        if ((out->bounds->vec.i32[j] <= in->vec.f[i]) &&
-                                (in->vec.f[i] <= out->bounds->vec.i32[j+1])) {
-                            (out->nums->vec.i32[j])++;
+                        if ((out->bounds->data.S32[j] <= in->data.F32[i]) &&
+                                (in->data.F32[i] <= out->bounds->data.S32[j+1])) {
+                            (out->nums->data.S32[j])++;
                         }
                     }
@@ -198,7 +198,7 @@
     for (i=0;i<myVector->n;i++) {
         if (maskVector != NULL)
-            printf("Element %d is %f (mask is %d)\n", i, myVector->vec.f[i], maskVector->vec.ui8[i]);
+            printf("Element %d is %f (mask is %d)\n", i, myVector->data.F32[i], maskVector->data.U8[i]);
         else
-            printf("Element %d is %f\n", i, myVector->vec.f[i]);
+            printf("Element %d is %f\n", i, myVector->data.F32[i]);
     }
 }
@@ -234,8 +234,8 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    mean+= myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    mean+= myVector->data.F32[i];
                     count++;
                 }
@@ -244,7 +244,7 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    mean+= myVector->vec.f[i];
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    mean+= myVector->data.F32[i];
                     count++;
                 }
@@ -255,6 +255,6 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    mean+= myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    mean+= myVector->data.F32[i];
                     count++;
                 }
@@ -263,5 +263,5 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                mean+= myVector->vec.f[i];
+                mean+= myVector->data.F32[i];
             }
             mean/= (float) myVector->n;
@@ -287,9 +287,9 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if ((myVector->vec.f[i] > max) &&
-                            (rangeMin <= myVector->vec.f[i]) &&
-                            (myVector->vec.f[i] <= rangeMax)) {
-                        max = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if ((myVector->data.F32[i] > max) &&
+                            (rangeMin <= myVector->data.F32[i]) &&
+                            (myVector->data.F32[i] <= rangeMax)) {
+                        max = myVector->data.F32[i];
                     }
                 }
@@ -297,8 +297,8 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((myVector->vec.f[i] > max) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    max = myVector->vec.f[i];
+                if ((myVector->data.F32[i] > max) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    max = myVector->data.F32[i];
                 }
             }
@@ -307,7 +307,7 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if (myVector->vec.f[i] > max) {
-                        max = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if (myVector->data.F32[i] > max) {
+                        max = myVector->data.F32[i];
                     }
                 }
@@ -315,6 +315,6 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if (myVector->vec.f[i] > max) {
-                    max = myVector->vec.f[i];
+                if (myVector->data.F32[i] > max) {
+                    max = myVector->data.F32[i];
                 }
             }
@@ -340,9 +340,9 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if ((myVector->vec.f[i] < min) &&
-                            (rangeMin <= myVector->vec.f[i]) &&
-                            (myVector->vec.f[i] <= rangeMax)) {
-                        min = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if ((myVector->data.F32[i] < min) &&
+                            (rangeMin <= myVector->data.F32[i]) &&
+                            (myVector->data.F32[i] <= rangeMax)) {
+                        min = myVector->data.F32[i];
                     }
                 }
@@ -350,8 +350,8 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((myVector->vec.f[i] < min) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    min = myVector->vec.f[i];
+                if ((myVector->data.F32[i] < min) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    min = myVector->data.F32[i];
                 }
             }
@@ -360,7 +360,7 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if (myVector->vec.f[i] < min) {
-                        min = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if (myVector->data.F32[i] < min) {
+                        min = myVector->data.F32[i];
                     }
                 }
@@ -368,6 +368,6 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if (myVector->vec.f[i] < min) {
-                    min = myVector->vec.f[i];
+                if (myVector->data.F32[i] < min) {
+                    min = myVector->data.F32[i];
                 }
             }
@@ -397,7 +397,7 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
                     numData++;
                 }
@@ -405,6 +405,6 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
                     numData++;
                 }
@@ -416,5 +416,5 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
+                if (!(maskVal & maskVector->data.U8[i])) {
                     numData++;
                 }
@@ -469,7 +469,7 @@
 
     // Allocate temporary vectors for the data.
-    unsortedVector = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    unsortedVector = psVectorAlloc(nValues, PS_TYPE_F32);
     unsortedVector->n = unsortedVector->nalloc;
-    sortedVector   = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    sortedVector   = psVectorAlloc(nValues, PS_TYPE_F32);
     sortedVector->n = sortedVector->nalloc;
 
@@ -484,15 +484,15 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
                 }
             }
@@ -503,11 +503,11 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                unsortedVector->vec.f[i] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                unsortedVector->data.F32[i] = maskVector->data.F32[i];
             }
         }
@@ -518,8 +518,8 @@
     // Calculate the median exactly.
     if (0 == (nValues % 2)) {
-        stats->sampleMedian = 0.5 * (sortedVector->vec.f[(nValues/2)-1] +
-                                     sortedVector->vec.f[nValues/2]);
+        stats->sampleMedian = 0.5 * (sortedVector->data.F32[(nValues/2)-1] +
+                                     sortedVector->data.F32[nValues/2]);
     } else {
-        stats->sampleMedian = sortedVector->vec.f[nValues/2];
+        stats->sampleMedian = sortedVector->data.F32[nValues/2];
     }
 
@@ -569,7 +569,7 @@
         for (j=-GAUSS_WIDTH;j<=+GAUSS_WIDTH;j++) {
             if (((j+i) >= 0) && ((j+i) < robustHistogram->nums->n)) {
-                robustHistogram->nums->vec.i32[j+i]+=
+                robustHistogram->nums->data.S32[j+i]+=
                     (gaussianCoefs[j+GAUSS_WIDTH] *
-                     (float) robustHistogram->nums->vec.i32[j+i]);
+                     (float) robustHistogram->nums->data.S32[j+i]);
             }
         }
@@ -623,7 +623,7 @@
 
     // Allocate temporary vectors for the data.
-    unsortedVector = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    unsortedVector = psVectorAlloc(nValues, PS_TYPE_F32);
     unsortedVector->n = unsortedVector->nalloc;
-    sortedVector   = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    sortedVector   = psVectorAlloc(nValues, PS_TYPE_F32);
     sortedVector->n = sortedVector->nalloc;
 
@@ -637,15 +637,15 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
                 }
             }
@@ -656,11 +656,11 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                unsortedVector->vec.f[i] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                unsortedVector->data.F32[i] = maskVector->data.F32[i];
             }
         }
@@ -672,7 +672,7 @@
     // Calculate the quartile points exactly.
     ind = 3 * (nValues / 4);
-    stats->sampleUQ = sortedVector->vec.f[ind];
+    stats->sampleUQ = sortedVector->data.F32[ind];
     ind = (nValues / 4);
-    stats->sampleLQ = sortedVector->vec.f[ind];
+    stats->sampleLQ = sortedVector->data.F32[ind];
 
     // Free the temporary data structures.
@@ -765,11 +765,11 @@
     UQBinNum = -1;
     for (i=0;i<robustHistogram->nums->n;i++) {
-        if ((robustHistogram->nums->vec.i32[i] <= stats->sampleLQ) &&
-                (stats->sampleLQ <= robustHistogram->nums->vec.i32[i])) {
+        if ((robustHistogram->nums->data.S32[i] <= stats->sampleLQ) &&
+                (stats->sampleLQ <= robustHistogram->nums->data.S32[i])) {
             LQBinNum = i;
         }
 
-        if ((robustHistogram->nums->vec.i32[i] <= stats->sampleUQ) &&
-                (stats->sampleUQ <= robustHistogram->nums->vec.i32[i])) {
+        if ((robustHistogram->nums->data.S32[i] <= stats->sampleUQ) &&
+                (stats->sampleUQ <= robustHistogram->nums->data.S32[i])) {
             UQBinNum = i;
         }
@@ -778,9 +778,9 @@
     // Determine the bin with the peak value in the range LQ to UQ.
     maxBinNum = LQBinNum;
-    maxBinCount = robustHistogram->nums->vec.i32[maxBinNum];
+    maxBinCount = robustHistogram->nums->data.S32[maxBinNum];
     for (i=LQBinNum;i<=UQBinNum;i++) {
-        if (robustHistogram->nums->vec.i32[i] > maxBinCount) {
+        if (robustHistogram->nums->data.S32[i] > maxBinCount) {
             maxBinNum = i;
-            maxBinCount = robustHistogram->nums->vec.i32[i];
+            maxBinCount = robustHistogram->nums->data.S32[i];
         }
     }
@@ -843,8 +843,8 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    diff = myVector->vec.f[i] - mean;
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    diff = myVector->data.F32[i] - mean;
                     sumSquares+= (diff * diff);
                     sumDiffs+= diff;
@@ -854,7 +854,7 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    diff = myVector->vec.f[i] - mean;
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    diff = myVector->data.F32[i] - mean;
                     sumSquares+= (diff * diff);
                     sumDiffs+= diff;
@@ -867,6 +867,6 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    diff = myVector->vec.f[i] - mean;
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    diff = myVector->data.F32[i] - mean;
                     sumSquares+= (diff * diff);
                     sumDiffs+= diff;
@@ -876,5 +876,5 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                diff = myVector->vec.f[i] - mean;
+                diff = myVector->data.F32[i] - mean;
                 sumSquares+= (diff * diff);
                 sumDiffs+= diff;
@@ -920,9 +920,9 @@
     }
 
-    tmpMask = psVectorAlloc(maskVector->type.type, myVector->nalloc);
+    tmpMask = psVectorAlloc(myVector->nalloc, maskVector->type.type);
 
     tmpMask->n = maskVector->n;
     for (i=0;i<tmpMask->n;i++) {
-        tmpMask->vec.ui8[i] = maskVector->vec.ui8[i];
+        tmpMask->data.U8[i] = maskVector->data.U8[i];
     }
 
@@ -944,7 +944,7 @@
         for (j=0;j<myVector->n;j++) {
             // a) Exclude all values x_i for which |x_i - x| > K * stdev
-            if ( fabs(myVector->vec.f[j] - clippedMean) >
+            if ( fabs(myVector->data.F32[j] - clippedMean) >
                     (stats->clipSigma * clippedStdev)) {
-                tmpMask->vec.ui8[i] = 0xff;
+                tmpMask->data.U8[i] = 0xff;
             }
             // b) compute new mean and stdev
@@ -979,6 +979,6 @@
  
     NOTE: The current strategy is to implement everything assuming that all
-    input data is of type PS_TYPE_FLOAT.  Once the basic code is in place,
-    we will macro-ize everything and add PS_TYPE_UINT16 and PS_TYPE_DOUBLE.
+    input data is of type PS_TYPE_F32.  Once the basic code is in place,
+    we will macro-ize everything and add PS_TYPE_U16 and PS_TYPE_F64.
  
  *****************************************************************************/
@@ -992,7 +992,7 @@
     }
 
-    if (in->type.type != PS_TYPE_FLOAT) {
+    if (in->type.type != PS_TYPE_F32) {
         psAbort(__func__,
-                "Only data type PS_TYPE_FLOAT is currently supported.");
+                "Only data type PS_TYPE_F32 is currently supported.");
     }
     if (mask != NULL) {
@@ -1001,7 +1001,7 @@
                     "Vector data and vector mask are of different sizes.");
         }
-        if (mask->type.type != PS_TYPE_UINT8) {
+        if (mask->type.type != PS_TYPE_U8) {
             psAbort(__func__,
-                    "Vector mask must be type PS_TYPE_UINT8");
+                    "Vector mask must be type PS_TYPE_U8");
         }
     }
Index: /trunk/psLib/src/dataManip/psVectorFFT.c
===================================================================
--- /trunk/psLib/src/dataManip/psVectorFFT.c	(revision 830)
+++ /trunk/psLib/src/dataManip/psVectorFFT.c	(revision 831)
@@ -5,6 +5,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-02 03:02:48 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -448,16 +448,16 @@
     numElements = in->n;
 
-    out = psVectorRecycle(out,PS_TYPE_C32,numElements);
+    out = psVectorRecycle(out, numElements, PS_TYPE_C32);
 
     if (type == PS_TYPE_F32) {
         // need to convert to complex
-        psC32* outVec = out->vec.cf;
-        psF32* inVec = in->vec.f;
+        psC32* outVec = out->data.C32;
+        psF32* inVec = in->data.F32;
         for (unsigned int i=0;i<numElements;i++) {
             outVec[i] = inVec[i];
         }
     } else {
-        psC32* outVec = out->vec.cf;
-        psC32* inVec = in->vec.cf;
+        psC32* outVec = out->data.C32;
+        psC32* inVec = in->data.C32;
         for (unsigned int i=0;i<numElements;i++) {
             outVec[i] = inVec[i];
@@ -466,6 +466,6 @@
 
     plan = fftwf_plan_dft_1d(numElements,
-                             (fftwf_complex*)out->vec.cf,
-                             (fftwf_complex*)out->vec.cf,
+                             (fftwf_complex*)out->data.C32,
+                             (fftwf_complex*)out->data.C32,
                              direction,
                              P_FFTW_PLAN_RIGOR);
@@ -504,6 +504,6 @@
         psLogMsg(__func__,PS_LOG_WARN,"Real portion of a non-Complex type called called for. "
                  "Just a vector copy was performed.");
-        out = psVectorRecycle(out,type,numElements);
-        memcpy(out->vec.v,in->vec.v,numElements*PSELEMTYPE_SIZEOF(type));
+        out = psVectorRecycle(out,numElements,type);
+        memcpy(out->data.V,in->data.V,numElements*PSELEMTYPE_SIZEOF(type));
         return out;
     }
@@ -511,8 +511,8 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements,PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -548,5 +548,5 @@
                  "A zeroed vector was returned.");
         out = psVectorRecycle(out,numElements,type);
-        memset(out->vec.v,0,PSELEMTYPE_SIZEOF(type)*numElements);
+        memset(out->data.V,0,PSELEMTYPE_SIZEOF(type)*numElements);
         return out;
     }
@@ -554,8 +554,8 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements, PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -601,9 +601,9 @@
     if (type == PS_TYPE_F32) {
         psC32* outVec;
-        psF32* realVec = real->vec.f;
-        psF32* imagVec = imag->vec.f;
-
-        out = psVectorRecycle(out,PS_TYPE_C32,numElements);
-        outVec = out->vec.cf;
+        psF32* realVec = real->data.F32;
+        psF32* imagVec = imag->data.F32;
+
+        out = psVectorRecycle(out,numElements, PS_TYPE_C32);
+        outVec = out->data.C32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -639,6 +639,6 @@
                  "Vector copy was performed instead.");
 
-        out = psVectorRecycle(out,type,numElements);
-        memcpy(out->vec.v,in->vec.v,PSELEMTYPE_SIZEOF(type)*numElements);
+        out = psVectorRecycle(out,numElements,type);
+        memcpy(out->data.V,in->data.V,PSELEMTYPE_SIZEOF(type)*numElements);
         return out;
     }
@@ -646,8 +646,8 @@
     if (type == PS_TYPE_C32) {
         psC32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_C32,numElements);
-        outVec = out->vec.cf;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements,PS_TYPE_C32);
+        outVec = out->data.C32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -686,11 +686,11 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
+        psC32* inVec = in->data.C32;
         psF32 real;
         psF32 imag;
 
 
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        out = psVectorRecycle(out,numElements,PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
Index: /trunk/psLib/src/fft/psVectorFFT.c
===================================================================
--- /trunk/psLib/src/fft/psVectorFFT.c	(revision 830)
+++ /trunk/psLib/src/fft/psVectorFFT.c	(revision 831)
@@ -5,6 +5,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-02 03:02:48 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -448,16 +448,16 @@
     numElements = in->n;
 
-    out = psVectorRecycle(out,PS_TYPE_C32,numElements);
+    out = psVectorRecycle(out, numElements, PS_TYPE_C32);
 
     if (type == PS_TYPE_F32) {
         // need to convert to complex
-        psC32* outVec = out->vec.cf;
-        psF32* inVec = in->vec.f;
+        psC32* outVec = out->data.C32;
+        psF32* inVec = in->data.F32;
         for (unsigned int i=0;i<numElements;i++) {
             outVec[i] = inVec[i];
         }
     } else {
-        psC32* outVec = out->vec.cf;
-        psC32* inVec = in->vec.cf;
+        psC32* outVec = out->data.C32;
+        psC32* inVec = in->data.C32;
         for (unsigned int i=0;i<numElements;i++) {
             outVec[i] = inVec[i];
@@ -466,6 +466,6 @@
 
     plan = fftwf_plan_dft_1d(numElements,
-                             (fftwf_complex*)out->vec.cf,
-                             (fftwf_complex*)out->vec.cf,
+                             (fftwf_complex*)out->data.C32,
+                             (fftwf_complex*)out->data.C32,
                              direction,
                              P_FFTW_PLAN_RIGOR);
@@ -504,6 +504,6 @@
         psLogMsg(__func__,PS_LOG_WARN,"Real portion of a non-Complex type called called for. "
                  "Just a vector copy was performed.");
-        out = psVectorRecycle(out,type,numElements);
-        memcpy(out->vec.v,in->vec.v,numElements*PSELEMTYPE_SIZEOF(type));
+        out = psVectorRecycle(out,numElements,type);
+        memcpy(out->data.V,in->data.V,numElements*PSELEMTYPE_SIZEOF(type));
         return out;
     }
@@ -511,8 +511,8 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements,PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -548,5 +548,5 @@
                  "A zeroed vector was returned.");
         out = psVectorRecycle(out,numElements,type);
-        memset(out->vec.v,0,PSELEMTYPE_SIZEOF(type)*numElements);
+        memset(out->data.V,0,PSELEMTYPE_SIZEOF(type)*numElements);
         return out;
     }
@@ -554,8 +554,8 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements, PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -601,9 +601,9 @@
     if (type == PS_TYPE_F32) {
         psC32* outVec;
-        psF32* realVec = real->vec.f;
-        psF32* imagVec = imag->vec.f;
-
-        out = psVectorRecycle(out,PS_TYPE_C32,numElements);
-        outVec = out->vec.cf;
+        psF32* realVec = real->data.F32;
+        psF32* imagVec = imag->data.F32;
+
+        out = psVectorRecycle(out,numElements, PS_TYPE_C32);
+        outVec = out->data.C32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -639,6 +639,6 @@
                  "Vector copy was performed instead.");
 
-        out = psVectorRecycle(out,type,numElements);
-        memcpy(out->vec.v,in->vec.v,PSELEMTYPE_SIZEOF(type)*numElements);
+        out = psVectorRecycle(out,numElements,type);
+        memcpy(out->data.V,in->data.V,PSELEMTYPE_SIZEOF(type)*numElements);
         return out;
     }
@@ -646,8 +646,8 @@
     if (type == PS_TYPE_C32) {
         psC32* outVec;
-        psC32* inVec = in->vec.cf;
-
-        out = psVectorRecycle(out,PS_TYPE_C32,numElements);
-        outVec = out->vec.cf;
+        psC32* inVec = in->data.C32;
+
+        out = psVectorRecycle(out,numElements,PS_TYPE_C32);
+        outVec = out->data.C32;
 
         for (unsigned int i=0;i<numElements;i++) {
@@ -686,11 +686,11 @@
     if (type == PS_TYPE_C32) {
         psF32* outVec;
-        psC32* inVec = in->vec.cf;
+        psC32* inVec = in->data.C32;
         psF32 real;
         psF32 imag;
 
 
-        out = psVectorRecycle(out,PS_TYPE_F32,numElements);
-        outVec = out->vec.f;
+        out = psVectorRecycle(out,numElements,PS_TYPE_F32);
+        outVec = out->data.F32;
 
         for (unsigned int i=0;i<numElements;i++) {
Index: /trunk/psLib/src/image/psImage.h
===================================================================
--- /trunk/psLib/src/image/psImage.h	(revision 830)
+++ /trunk/psLib/src/image/psImage.h	(revision 831)
@@ -9,6 +9,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:42:57 $
+ *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -46,18 +46,18 @@
 
     union {
-        psU8    **U8;                   ///< unsigned 8-bit integer data.
-        psU16   **U16;                  ///< unsigned 16-bit integer data.
-        psU32   **U32;                  ///< unsigned 32-bit integer data.
-        psU64   **U64;                  ///< unsigned 64-bit integer data.
-        psS8    **S8;                   ///< signed 8-bit integer data.
-        psS16   **S16;                  ///< signed 16-bit integer data.
-        psS32   **S32;                  ///< signed 32-bit integer data.
-        psS64   **S64;                  ///< signed 64-bit integer data.
-        psF32   **F32;                  ///< single-precision float data.
-        psF64   **F64;                  ///< double-precision float data.
-        psC32   **C32;                  ///< single-precision complex data.
-        psC64   **C64;                  ///< double-precision complex data.
-        psPTR   **PTR;                  ///< void pointers
-        void    **V;                    ///< pointer to data
+        psU8    **U8;                   ///< Unsigned 8-bit integer data.
+        psU16   **U16;                  ///< Unsigned 16-bit integer data.
+        psU32   **U32;                  ///< Unsigned 32-bit integer data.
+        psU64   **U64;                  ///< Unsigned 64-bit integer data.
+        psS8    **S8;                   ///< Signed 8-bit integer data.
+        psS16   **S16;                  ///< Signed 16-bit integer data.
+        psS32   **S32;                  ///< Signed 32-bit integer data.
+        psS64   **S64;                  ///< Signed 64-bit integer data.
+        psF32   **F32;                  ///< Single-precision float data.
+        psF64   **F64;                  ///< Double-precision float data.
+        psC32   **C32;                  ///< Single-precision complex data.
+        psC64   **C64;                  ///< Double-precision complex data.
+        psPTR   **PTR;                  ///< Void pointers.
+        psPTR    *V;                    ///< Pointer to data.
     } data;                             ///< Union for data types.
     const struct psImage *parent;       ///< Parent, if a subimage.
Index: /trunk/psLib/src/image/psImageStats.c
===================================================================
--- /trunk/psLib/src/image/psImageStats.c	(revision 830)
+++ /trunk/psLib/src/image/psImageStats.c	(revision 831)
@@ -31,6 +31,6 @@
 
     // GUS: figure out mask types
-    junkData->vec.f = (float *) in->data.F32;
-    junkMask->vec.f = (float *) mask->data.F32;
+    junkData->data.F32 = (float *) in->data.F32;
+    junkMask->data.F32 = (float *) mask->data.F32;
     stats = psVectorStats(stats, junkData, junkMask, maskVal);
 
@@ -57,6 +57,6 @@
 
     // GUS: figure out mask types
-    junkData->vec.f = (float *) in->data.F32;
-    junkMask->vec.f = (float *) mask->data.F32;
+    junkData->data.F32 = (float *) in->data.F32;
+    junkMask->data.F32 = (float *) mask->data.F32;
 
     out = psHistogramVector(out, junkData, junkMask, maskVal);
Index: /trunk/psLib/src/imageops/psImageStats.c
===================================================================
--- /trunk/psLib/src/imageops/psImageStats.c	(revision 830)
+++ /trunk/psLib/src/imageops/psImageStats.c	(revision 831)
@@ -31,6 +31,6 @@
 
     // GUS: figure out mask types
-    junkData->vec.f = (float *) in->data.F32;
-    junkMask->vec.f = (float *) mask->data.F32;
+    junkData->data.F32 = (float *) in->data.F32;
+    junkMask->data.F32 = (float *) mask->data.F32;
     stats = psVectorStats(stats, junkData, junkMask, maskVal);
 
@@ -57,6 +57,6 @@
 
     // GUS: figure out mask types
-    junkData->vec.f = (float *) in->data.F32;
-    junkMask->vec.f = (float *) mask->data.F32;
+    junkData->data.F32 = (float *) in->data.F32;
+    junkMask->data.F32 = (float *) mask->data.F32;
 
     out = psHistogramVector(out, junkData, junkMask, maskVal);
Index: /trunk/psLib/src/math/psMatrix.c
===================================================================
--- /trunk/psLib/src/math/psMatrix.c	(revision 830)
+++ /trunk/psLib/src/math/psMatrix.c	(revision 831)
@@ -20,6 +20,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:42:57 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -70,5 +70,5 @@
 /** Preprocessor macro to generate error a NULL image */
 #define PS_CHECK_NULL_VECTOR(NAME, RETURN)                                                          \
-if (NAME == NULL || NAME->vec.v == NULL) {                                                          \
+if (NAME == NULL || NAME->data.V == NULL) {                                                          \
     psError(__func__,"Invalid operation: %s or its data is NULL.", #NAME);                          \
     return RETURN;                                                                                  \
@@ -78,5 +78,5 @@
 #define PS_CHECK_ALLOC_VECTOR(NAME, SIZE, PS_TYPE)                                                  \
 if(NAME == NULL) {                                                                                  \
-    NAME = psVectorAlloc(PS_TYPE, SIZE);                                                            \
+    NAME = psVectorAlloc(SIZE, PS_TYPE);                                                            \
 }
 
@@ -173,5 +173,5 @@
     perm.size = numCols;
     outPerm->n = numCols;
-    perm.data = outPerm->vec.v;
+    perm.data = outPerm->data.V;
     PS_GSL_MATRIX_INITIALIZE(lu, outImage->data.V[0]);
 
@@ -226,13 +226,13 @@
 
     perm.size = inPerm->n;
-    perm.data = inPerm->vec.v;
+    perm.data = inPerm->data.V;
 
     b.size = inVector->n;
     b.stride = 1;
-    b.data = inVector->vec.v;
+    b.data = inVector->data.V;
 
     x.size = numCols;
     x.stride = 1;
-    x.data = outVector->vec.v;
+    x.data = outVector->data.V;
 
     // Solve for {x} in equation: {b} = [A]{x}
@@ -483,5 +483,5 @@
 
     colSize = PSELEMTYPE_SIZEOF(inImage->type.type)*inImage->numRows;
-    memcpy(outVector->vec.v, inImage->data.V[0], colSize);
+    memcpy(outVector->data.V, inImage->data.V[0], colSize);
 
     return outVector;
@@ -510,5 +510,5 @@
 
     colSize = PSELEMTYPE_SIZEOF(outImage->type.type)*outImage->numRows;
-    memcpy(outImage->data.V[0], inVector->vec.v, colSize);
+    memcpy(outImage->data.V[0], inVector->data.V, colSize);
 
     return outImage;
Index: /trunk/psLib/src/math/psPolynomial.c
===================================================================
--- /trunk/psLib/src/math/psPolynomial.c	(revision 830)
+++ /trunk/psLib/src/math/psPolynomial.c	(revision 831)
@@ -6,6 +6,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:24:55 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -75,5 +75,5 @@
     int i = 0;
 
-    gauss = psVectorAlloc(Npts, PS_TYPE_FLOAT);
+    gauss = psVectorAlloc(Npts, PS_TYPE_F32);
     gsl_rng_env_setup();
     T = gsl_rng_default;
@@ -81,5 +81,5 @@
 
     for (i = 0; i < Npts; i++) {
-        gauss->vec.f[i] = mean + gsl_ran_gaussian(r, sigma);
+        gauss->data.F32[i] = mean + gsl_ran_gaussian(r, sigma);
     }
 
Index: /trunk/psLib/src/math/psSpline.c
===================================================================
--- /trunk/psLib/src/math/psSpline.c	(revision 830)
+++ /trunk/psLib/src/math/psSpline.c	(revision 831)
@@ -6,6 +6,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:24:55 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -75,5 +75,5 @@
     int i = 0;
 
-    gauss = psVectorAlloc(Npts, PS_TYPE_FLOAT);
+    gauss = psVectorAlloc(Npts, PS_TYPE_F32);
     gsl_rng_env_setup();
     T = gsl_rng_default;
@@ -81,5 +81,5 @@
 
     for (i = 0; i < Npts; i++) {
-        gauss->vec.f[i] = mean + gsl_ran_gaussian(r, sigma);
+        gauss->data.F32[i] = mean + gsl_ran_gaussian(r, sigma);
     }
 
Index: /trunk/psLib/src/math/psStats.c
===================================================================
--- /trunk/psLib/src/math/psStats.c	(revision 830)
+++ /trunk/psLib/src/math/psStats.c	(revision 831)
@@ -86,10 +86,10 @@
 
     newHist = (psHistogram *) psAlloc(sizeof(psHistogram));
-    newHist->bounds = psVectorAlloc(PS_TYPE_FLOAT, n+1);
+    newHist->bounds = psVectorAlloc(n+1, PS_TYPE_F32);
     binSize = (upper - lower) / (float) n;
     for (i=0;i<n+1;i++) {
-        newHist->bounds->vec.f[i] = lower + (binSize * (float) i);
-    }
-    newHist->nums =  psVectorAlloc(PS_TYPE_INT32, n);
+        newHist->bounds->data.F32[i] = lower + (binSize * (float) i);
+    }
+    newHist->nums =  psVectorAlloc(n, PS_TYPE_S32);
     newHist->minNum = 0;
     newHist->maxNum = 0;
@@ -106,9 +106,9 @@
 
     newHist = (psHistogram *) psAlloc(sizeof(psHistogram));
-    newHist->bounds = psVectorAlloc(PS_TYPE_FLOAT, bounds->n);
+    newHist->bounds = psVectorAlloc(bounds->n, PS_TYPE_F32);
     for (i=0;i<bounds->n;i++) {
-        newHist->bounds->vec.f[i] = bounds->vec.f[i];
-    }
-    newHist->nums = psVectorAlloc(PS_TYPE_INT32, (bounds->n)-1);
+        newHist->bounds->data.F32[i] = bounds->data.F32[i];
+    }
+    newHist->nums = psVectorAlloc((bounds->n)-1, PS_TYPE_S32);
 
     newHist->minNum = 0;
@@ -152,13 +152,13 @@
     for (i=0;i<in->n;i++) {
         // Check if this pixel is masked, and if so, skip it.
-        if (!(mask->vec.i32[i] & maskVal)) {
+        if (!(mask->data.S32[i] & maskVal)) {
             // Check if this pixel is below the minimum value, and if so
             // count it, then skip it.
-            if (in->vec.f[i] < out->bounds->vec.f[0]) {
+            if (in->data.F32[i] < out->bounds->data.F32[0]) {
                 out->minNum++;
 
                 // Check if this pixel is above the maximum value, and if so
                 // count it, then skip it.
-            } else if (in->vec.f[i] > out->bounds->vec.f[numBins]) {
+            } else if (in->data.F32[i] > out->bounds->data.F32[numBins]) {
                 out->maxNum++;
             } else {
@@ -166,9 +166,9 @@
                 // number is trivial.
                 if (out->uniform == true) {
-                    binSize = out->bounds->vec.f[1] - out->bounds->vec.f[0];
-
-                    binNum = (int) ((in->vec.f[i] - out->bounds->vec.f[0]) /
+                    binSize = out->bounds->data.F32[1] - out->bounds->data.F32[0];
+
+                    binNum = (int) ((in->data.F32[i] - out->bounds->data.F32[0]) /
                                     binSize);
-                    (out->nums->vec.i32[binNum])++;
+                    (out->nums->data.S32[binNum])++;
                     // If this is a non-uniform histogram, determining the correct
                     // bin number requires a bit more work.
@@ -177,7 +177,7 @@
                     // find the correct bin number (bin search, probably)
                     for (j=0;j<(out->bounds->n)-1;j++) {
-                        if ((out->bounds->vec.i32[j] <= in->vec.f[i]) &&
-                                (in->vec.f[i] <= out->bounds->vec.i32[j+1])) {
-                            (out->nums->vec.i32[j])++;
+                        if ((out->bounds->data.S32[j] <= in->data.F32[i]) &&
+                                (in->data.F32[i] <= out->bounds->data.S32[j+1])) {
+                            (out->nums->data.S32[j])++;
                         }
                     }
@@ -198,7 +198,7 @@
     for (i=0;i<myVector->n;i++) {
         if (maskVector != NULL)
-            printf("Element %d is %f (mask is %d)\n", i, myVector->vec.f[i], maskVector->vec.ui8[i]);
+            printf("Element %d is %f (mask is %d)\n", i, myVector->data.F32[i], maskVector->data.U8[i]);
         else
-            printf("Element %d is %f\n", i, myVector->vec.f[i]);
+            printf("Element %d is %f\n", i, myVector->data.F32[i]);
     }
 }
@@ -234,8 +234,8 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    mean+= myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    mean+= myVector->data.F32[i];
                     count++;
                 }
@@ -244,7 +244,7 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    mean+= myVector->vec.f[i];
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    mean+= myVector->data.F32[i];
                     count++;
                 }
@@ -255,6 +255,6 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    mean+= myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    mean+= myVector->data.F32[i];
                     count++;
                 }
@@ -263,5 +263,5 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                mean+= myVector->vec.f[i];
+                mean+= myVector->data.F32[i];
             }
             mean/= (float) myVector->n;
@@ -287,9 +287,9 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if ((myVector->vec.f[i] > max) &&
-                            (rangeMin <= myVector->vec.f[i]) &&
-                            (myVector->vec.f[i] <= rangeMax)) {
-                        max = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if ((myVector->data.F32[i] > max) &&
+                            (rangeMin <= myVector->data.F32[i]) &&
+                            (myVector->data.F32[i] <= rangeMax)) {
+                        max = myVector->data.F32[i];
                     }
                 }
@@ -297,8 +297,8 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((myVector->vec.f[i] > max) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    max = myVector->vec.f[i];
+                if ((myVector->data.F32[i] > max) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    max = myVector->data.F32[i];
                 }
             }
@@ -307,7 +307,7 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if (myVector->vec.f[i] > max) {
-                        max = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if (myVector->data.F32[i] > max) {
+                        max = myVector->data.F32[i];
                     }
                 }
@@ -315,6 +315,6 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if (myVector->vec.f[i] > max) {
-                    max = myVector->vec.f[i];
+                if (myVector->data.F32[i] > max) {
+                    max = myVector->data.F32[i];
                 }
             }
@@ -340,9 +340,9 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if ((myVector->vec.f[i] < min) &&
-                            (rangeMin <= myVector->vec.f[i]) &&
-                            (myVector->vec.f[i] <= rangeMax)) {
-                        min = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if ((myVector->data.F32[i] < min) &&
+                            (rangeMin <= myVector->data.F32[i]) &&
+                            (myVector->data.F32[i] <= rangeMax)) {
+                        min = myVector->data.F32[i];
                     }
                 }
@@ -350,8 +350,8 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((myVector->vec.f[i] < min) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    min = myVector->vec.f[i];
+                if ((myVector->data.F32[i] < min) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    min = myVector->data.F32[i];
                 }
             }
@@ -360,7 +360,7 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    if (myVector->vec.f[i] < min) {
-                        min = myVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    if (myVector->data.F32[i] < min) {
+                        min = myVector->data.F32[i];
                     }
                 }
@@ -368,6 +368,6 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if (myVector->vec.f[i] < min) {
-                    min = myVector->vec.f[i];
+                if (myVector->data.F32[i] < min) {
+                    min = myVector->data.F32[i];
                 }
             }
@@ -397,7 +397,7 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
                     numData++;
                 }
@@ -405,6 +405,6 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
                     numData++;
                 }
@@ -416,5 +416,5 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
+                if (!(maskVal & maskVector->data.U8[i])) {
                     numData++;
                 }
@@ -469,7 +469,7 @@
 
     // Allocate temporary vectors for the data.
-    unsortedVector = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    unsortedVector = psVectorAlloc(nValues, PS_TYPE_F32);
     unsortedVector->n = unsortedVector->nalloc;
-    sortedVector   = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    sortedVector   = psVectorAlloc(nValues, PS_TYPE_F32);
     sortedVector->n = sortedVector->nalloc;
 
@@ -484,15 +484,15 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
                 }
             }
@@ -503,11 +503,11 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                unsortedVector->vec.f[i] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                unsortedVector->data.F32[i] = maskVector->data.F32[i];
             }
         }
@@ -518,8 +518,8 @@
     // Calculate the median exactly.
     if (0 == (nValues % 2)) {
-        stats->sampleMedian = 0.5 * (sortedVector->vec.f[(nValues/2)-1] +
-                                     sortedVector->vec.f[nValues/2]);
+        stats->sampleMedian = 0.5 * (sortedVector->data.F32[(nValues/2)-1] +
+                                     sortedVector->data.F32[nValues/2]);
     } else {
-        stats->sampleMedian = sortedVector->vec.f[nValues/2];
+        stats->sampleMedian = sortedVector->data.F32[nValues/2];
     }
 
@@ -569,7 +569,7 @@
         for (j=-GAUSS_WIDTH;j<=+GAUSS_WIDTH;j++) {
             if (((j+i) >= 0) && ((j+i) < robustHistogram->nums->n)) {
-                robustHistogram->nums->vec.i32[j+i]+=
+                robustHistogram->nums->data.S32[j+i]+=
                     (gaussianCoefs[j+GAUSS_WIDTH] *
-                     (float) robustHistogram->nums->vec.i32[j+i]);
+                     (float) robustHistogram->nums->data.S32[j+i]);
             }
         }
@@ -623,7 +623,7 @@
 
     // Allocate temporary vectors for the data.
-    unsortedVector = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    unsortedVector = psVectorAlloc(nValues, PS_TYPE_F32);
     unsortedVector->n = unsortedVector->nalloc;
-    sortedVector   = psVectorAlloc(PS_TYPE_FLOAT, nValues);
+    sortedVector   = psVectorAlloc(nValues, PS_TYPE_F32);
     sortedVector->n = sortedVector->nalloc;
 
@@ -637,15 +637,15 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
                 }
             }
@@ -656,11 +656,11 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    unsortedVector->vec.f[count++] = maskVector->vec.f[i];
-                }
-            }
-        } else {
-            for (i=0;i<myVector->n;i++) {
-                unsortedVector->vec.f[i] = maskVector->vec.f[i];
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    unsortedVector->data.F32[count++] = maskVector->data.F32[i];
+                }
+            }
+        } else {
+            for (i=0;i<myVector->n;i++) {
+                unsortedVector->data.F32[i] = maskVector->data.F32[i];
             }
         }
@@ -672,7 +672,7 @@
     // Calculate the quartile points exactly.
     ind = 3 * (nValues / 4);
-    stats->sampleUQ = sortedVector->vec.f[ind];
+    stats->sampleUQ = sortedVector->data.F32[ind];
     ind = (nValues / 4);
-    stats->sampleLQ = sortedVector->vec.f[ind];
+    stats->sampleLQ = sortedVector->data.F32[ind];
 
     // Free the temporary data structures.
@@ -765,11 +765,11 @@
     UQBinNum = -1;
     for (i=0;i<robustHistogram->nums->n;i++) {
-        if ((robustHistogram->nums->vec.i32[i] <= stats->sampleLQ) &&
-                (stats->sampleLQ <= robustHistogram->nums->vec.i32[i])) {
+        if ((robustHistogram->nums->data.S32[i] <= stats->sampleLQ) &&
+                (stats->sampleLQ <= robustHistogram->nums->data.S32[i])) {
             LQBinNum = i;
         }
 
-        if ((robustHistogram->nums->vec.i32[i] <= stats->sampleUQ) &&
-                (stats->sampleUQ <= robustHistogram->nums->vec.i32[i])) {
+        if ((robustHistogram->nums->data.S32[i] <= stats->sampleUQ) &&
+                (stats->sampleUQ <= robustHistogram->nums->data.S32[i])) {
             UQBinNum = i;
         }
@@ -778,9 +778,9 @@
     // Determine the bin with the peak value in the range LQ to UQ.
     maxBinNum = LQBinNum;
-    maxBinCount = robustHistogram->nums->vec.i32[maxBinNum];
+    maxBinCount = robustHistogram->nums->data.S32[maxBinNum];
     for (i=LQBinNum;i<=UQBinNum;i++) {
-        if (robustHistogram->nums->vec.i32[i] > maxBinCount) {
+        if (robustHistogram->nums->data.S32[i] > maxBinCount) {
             maxBinNum = i;
-            maxBinCount = robustHistogram->nums->vec.i32[i];
+            maxBinCount = robustHistogram->nums->data.S32[i];
         }
     }
@@ -843,8 +843,8 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i]) &&
-                        (rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    diff = myVector->vec.f[i] - mean;
+                if (!(maskVal & maskVector->data.U8[i]) &&
+                        (rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    diff = myVector->data.F32[i] - mean;
                     sumSquares+= (diff * diff);
                     sumDiffs+= diff;
@@ -854,7 +854,7 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                if ((rangeMin <= myVector->vec.f[i]) &&
-                        (myVector->vec.f[i] <= rangeMax)) {
-                    diff = myVector->vec.f[i] - mean;
+                if ((rangeMin <= myVector->data.F32[i]) &&
+                        (myVector->data.F32[i] <= rangeMax)) {
+                    diff = myVector->data.F32[i] - mean;
                     sumSquares+= (diff * diff);
                     sumDiffs+= diff;
@@ -867,6 +867,6 @@
         if (maskVector != NULL) {
             for (i=0;i<myVector->n;i++) {
-                if (!(maskVal & maskVector->vec.ui8[i])) {
-                    diff = myVector->vec.f[i] - mean;
+                if (!(maskVal & maskVector->data.U8[i])) {
+                    diff = myVector->data.F32[i] - mean;
                     sumSquares+= (diff * diff);
                     sumDiffs+= diff;
@@ -876,5 +876,5 @@
         } else {
             for (i=0;i<myVector->n;i++) {
-                diff = myVector->vec.f[i] - mean;
+                diff = myVector->data.F32[i] - mean;
                 sumSquares+= (diff * diff);
                 sumDiffs+= diff;
@@ -920,9 +920,9 @@
     }
 
-    tmpMask = psVectorAlloc(maskVector->type.type, myVector->nalloc);
+    tmpMask = psVectorAlloc(myVector->nalloc, maskVector->type.type);
 
     tmpMask->n = maskVector->n;
     for (i=0;i<tmpMask->n;i++) {
-        tmpMask->vec.ui8[i] = maskVector->vec.ui8[i];
+        tmpMask->data.U8[i] = maskVector->data.U8[i];
     }
 
@@ -944,7 +944,7 @@
         for (j=0;j<myVector->n;j++) {
             // a) Exclude all values x_i for which |x_i - x| > K * stdev
-            if ( fabs(myVector->vec.f[j] - clippedMean) >
+            if ( fabs(myVector->data.F32[j] - clippedMean) >
                     (stats->clipSigma * clippedStdev)) {
-                tmpMask->vec.ui8[i] = 0xff;
+                tmpMask->data.U8[i] = 0xff;
             }
             // b) compute new mean and stdev
@@ -979,6 +979,6 @@
  
     NOTE: The current strategy is to implement everything assuming that all
-    input data is of type PS_TYPE_FLOAT.  Once the basic code is in place,
-    we will macro-ize everything and add PS_TYPE_UINT16 and PS_TYPE_DOUBLE.
+    input data is of type PS_TYPE_F32.  Once the basic code is in place,
+    we will macro-ize everything and add PS_TYPE_U16 and PS_TYPE_F64.
  
  *****************************************************************************/
@@ -992,7 +992,7 @@
     }
 
-    if (in->type.type != PS_TYPE_FLOAT) {
+    if (in->type.type != PS_TYPE_F32) {
         psAbort(__func__,
-                "Only data type PS_TYPE_FLOAT is currently supported.");
+                "Only data type PS_TYPE_F32 is currently supported.");
     }
     if (mask != NULL) {
@@ -1001,7 +1001,7 @@
                     "Vector data and vector mask are of different sizes.");
         }
-        if (mask->type.type != PS_TYPE_UINT8) {
+        if (mask->type.type != PS_TYPE_U8) {
             psAbort(__func__,
-                    "Vector mask must be type PS_TYPE_UINT8");
+                    "Vector mask must be type PS_TYPE_U8");
         }
     }
Index: /trunk/psLib/src/mathtypes/psImage.h
===================================================================
--- /trunk/psLib/src/mathtypes/psImage.h	(revision 830)
+++ /trunk/psLib/src/mathtypes/psImage.h	(revision 831)
@@ -9,6 +9,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-06-01 22:42:57 $
+ *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -46,18 +46,18 @@
 
     union {
-        psU8    **U8;                   ///< unsigned 8-bit integer data.
-        psU16   **U16;                  ///< unsigned 16-bit integer data.
-        psU32   **U32;                  ///< unsigned 32-bit integer data.
-        psU64   **U64;                  ///< unsigned 64-bit integer data.
-        psS8    **S8;                   ///< signed 8-bit integer data.
-        psS16   **S16;                  ///< signed 16-bit integer data.
-        psS32   **S32;                  ///< signed 32-bit integer data.
-        psS64   **S64;                  ///< signed 64-bit integer data.
-        psF32   **F32;                  ///< single-precision float data.
-        psF64   **F64;                  ///< double-precision float data.
-        psC32   **C32;                  ///< single-precision complex data.
-        psC64   **C64;                  ///< double-precision complex data.
-        psPTR   **PTR;                  ///< void pointers
-        void    **V;                    ///< pointer to data
+        psU8    **U8;                   ///< Unsigned 8-bit integer data.
+        psU16   **U16;                  ///< Unsigned 16-bit integer data.
+        psU32   **U32;                  ///< Unsigned 32-bit integer data.
+        psU64   **U64;                  ///< Unsigned 64-bit integer data.
+        psS8    **S8;                   ///< Signed 8-bit integer data.
+        psS16   **S16;                  ///< Signed 16-bit integer data.
+        psS32   **S32;                  ///< Signed 32-bit integer data.
+        psS64   **S64;                  ///< Signed 64-bit integer data.
+        psF32   **F32;                  ///< Single-precision float data.
+        psF64   **F64;                  ///< Double-precision float data.
+        psC32   **C32;                  ///< Single-precision complex data.
+        psC64   **C64;                  ///< Double-precision complex data.
+        psPTR   **PTR;                  ///< Void pointers.
+        psPTR    *V;                    ///< Pointer to data.
     } data;                             ///< Union for data types.
     const struct psImage *parent;       ///< Parent, if a subimage.
Index: /trunk/psLib/src/mathtypes/psVector.c
===================================================================
--- /trunk/psLib/src/mathtypes/psVector.c	(revision 830)
+++ /trunk/psLib/src/mathtypes/psVector.c	(revision 831)
@@ -19,6 +19,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-29 01:08:46 $
+ *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -64,5 +64,5 @@
 /* FUNCTION IMPLEMENTATION - PUBLIC                                          */
 /*****************************************************************************/
-psVector* psVectorAlloc(psElemType elemType, unsigned int nalloc)
+psVector* psVectorAlloc(unsigned int nalloc, psElemType elemType)
 {
     psVector *psVec = NULL;
@@ -86,10 +86,10 @@
 
     // Create vector data array
-    psVec->vec.v = psAlloc(nalloc*elementSize);
+    psVec->data.V = psAlloc(nalloc*elementSize);
 
     return psVec;
 }
 
-psVector *psVectorRealloc(psVector *restrict in, unsigned int nalloc)
+psVector *psVectorRealloc(unsigned int nalloc, psVector *restrict in)
 {
     int elementSize = 0;
@@ -110,5 +110,5 @@
             if (elemType == PS_TYPE_PTR) {
                 for (int i = nalloc; i < in->n; i++) {   // For reduction in vector size
-                    psMemDecrRefCounter(in->vec.vp[i]);
+                    psMemDecrRefCounter(in->data.PTR[i]);
                 }
             }
@@ -117,5 +117,5 @@
 
         // Realloc after decrementation to avoid accessing freed array elements
-        in->vec.v = psRealloc(in->vec.v,nalloc*elementSize);
+        in->data.V = psRealloc(in->data.V,nalloc*elementSize);
         in->nalloc = nalloc;
     }
@@ -129,5 +129,5 @@
 
     if (in == NULL) {
-        return psVectorAlloc(type,nalloc);
+        return psVectorAlloc(nalloc, type);
     }
 
@@ -150,10 +150,10 @@
     if (elemType == PS_TYPE_PTR) {
         for (int i = 0; i < in->n; i++) {   // For reduction in vector size
-            psMemDecrRefCounter(in->vec.vp[i]);
-            in->vec.vp[i] = NULL;
+            psMemDecrRefCounter(in->data.PTR[i]);
+            in->data.PTR[i] = NULL;
         }
     }
 
-    in->vec.v = psRealloc(in->vec.v,nalloc*PSELEMTYPE_SIZEOF(elemType));
+    in->data.V = psRealloc(in->data.V,nalloc*PSELEMTYPE_SIZEOF(elemType));
 
     in->n = 0;
@@ -170,5 +170,5 @@
     }
 
-    psFree(psVec->vec.v);
+    psFree(psVec->data.V);
     psFree(psVec);
 }
@@ -188,9 +188,9 @@
     for(int i = 0; i < psVec->nalloc; i++) {
         if(elemFree == NULL) {
-            psMemDecrRefCounter(psVec->vec.vp[i]);
+            psMemDecrRefCounter(psVec->data.PTR[i]);
         } else {
-            elemFree(psMemDecrRefCounter(psVec->vec.vp[i]));
+            elemFree(psMemDecrRefCounter(psVec->data.PTR[i]));
         }
-        psVec->vec.vp[i] = NULL;
+        psVec->data.PTR[i] = NULL;
     }
 }
Index: /trunk/psLib/src/mathtypes/psVector.h
===================================================================
--- /trunk/psLib/src/mathtypes/psVector.h	(revision 830)
+++ /trunk/psLib/src/mathtypes/psVector.h	(revision 831)
@@ -1,24 +1,14 @@
 /** @file  psVector.h
  *
- *  @brief Contains support for basic vector types
+ *  @brief Contains basic vector definitions and operations
  *
- *  This file defines types and functions for one dimensional vectors which include:
- *      char
- *      short
- *      int
- *      long
- *      unsigned char
- *      unsigned short
- *      unsigned int
- *      unsigned long
- *      float
- *      double
- *      complex float
- *      void **
+ *  This file defines the basic type for a vector struct and functions useful
+ *  in manupulating vectors.
  *
+ *  @author Robert DeSonia, MHPCC
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-29 01:08:46 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -42,18 +32,19 @@
 
     union {
-        int8_t *i8;                     ///< Pointers to char integer data.
-        int16_t *i16;                   ///< Pointers to short integer data.
-        int32_t *i32;                   ///< Pointers to integer data.
-        int64_t *i64;                   ///< Pointers to long integer data.
-        uint8_t *ui8;                   ///< Pointers to unsigned char integer data.
-        uint16_t*ui16;                  ///< Pointers to unsigned short integer data.
-        uint32_t *ui32;                 ///< Pointers to unsigned integer data.
-        uint64_t *ui64;                 ///< Pointers to unsigned long integer data.
-        float *f;                       ///< Pointers to floating point data.
-        double *d;                      ///< Pointers to double precision data.
-        complex float *cf;              ///< Pointers to complex floating point data.
-        void *v;                        ///< Pointers to generic void data
-        void **vp;                      ///< Void pointer vector.
-    }vec;                               ///< Union for data types.
+        psU8    *U8;                    ///< Unsigned 8-bit integer data.
+        psU16   *U16;                   ///< Unsigned 16-bit integer data.
+        psU32   *U32;                   ///< Unsigned 32-bit integer data.
+        psU64   *U64;                   ///< Unsigned 64-bit integer data.
+        psS8    *S8;                    ///< Signed 8-bit integer data.
+        psS16   *S16;                   ///< Signed 16-bit integer data.
+        psS32   *S32;                   ///< Signed 32-bit integer data.
+        psS64   *S64;                   ///< Signed 64-bit integer data.
+        psF32   *F32;                   ///< Single-precision float data.
+        psF64   *F64;                   ///< Double-precision float data.
+        psC32   *C32;                   ///< Single-precision complex data.
+        psC64   *C64;                   ///< Double-precision complex data.
+        psPTR   *PTR;                   ///< Void pointers
+        psPTR    V;                     ///< Pointer to data
+    } data;                             ///< Union for data types.
 }
 psVector;
@@ -71,6 +62,6 @@
  */
 psVector *psVectorAlloc(
-    psElemType dataType,                ///< Type of data to be held by vector.
-    unsigned int nalloc                 ///< Total number of elements to make available.
+    unsigned int nalloc,                ///< Total number of elements to make available.
+    psElemType dataType                 ///< Type of data to be held by vector.
 );
 
@@ -84,6 +75,6 @@
  */
 psVector *psVectorRealloc(
-    psVector *restrict psVec,           ///< Vector to reallocate.
-    unsigned int nalloc                 ///< Total number of elements to make available.
+    unsigned int nalloc,                ///< Total number of elements to make available.
+    psVector *restrict psVec            ///< Vector to reallocate.
 );
 
Index: /trunk/psLib/src/sys/psType.h
===================================================================
--- /trunk/psLib/src/sys/psType.h	(revision 830)
+++ /trunk/psLib/src/sys/psType.h	(revision 831)
@@ -3,23 +3,11 @@
  *  @brief Contains support for basic types
  *
- *  This file defines datatypes which include:
- *      char
- *      short
- *      int
- *      long
- *      unsigned char
- *      unsigned short
- *      unsigned int
- *      unsigned long
- *      float
- *      double
- *      complex float
- *      void **
+ *  This file defines common datatypes used throughout psLib.
  *
  *  @author Robert DeSonia, MHPCC
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-29 01:10:22 $
+ *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -59,19 +47,4 @@
 
 typedef enum {
-    PS_TYPE_INT8             = 0x0101,  ///< Character.
-    PS_TYPE_INT16            = 0x0102,  ///< Short integer.
-    PS_TYPE_INT32            = 0x0104,  ///< Integer.
-    PS_TYPE_INT64            = 0x0108,  ///< Long integer.
-    PS_TYPE_UINT8            = 0x0301,  ///< Unsigned character.
-    PS_TYPE_UINT16           = 0x0302,  ///< Unsigned short integer.
-    PS_TYPE_UINT32           = 0x0304,  ///< Unsigned integer.
-    PS_TYPE_UINT64           = 0x0308,  ///< Unsigned long integer.
-    PS_TYPE_FLOAT            = 0x0404,  ///< Single-precision Floating point.
-    PS_TYPE_DOUBLE           = 0x0408,  ///< Double-precision floating point.
-    PS_TYPE_COMPLEX_FLOAT    = 0x0808,  ///< Complex numbers consisting of single-precision floating point.
-    PS_TYPE_COMPLEX_DOUBLE   = 0x0810,  ///< Complex numbers consisting of double-precision floating point.
-    PS_TYPE_OTHER            = 0x0000,  ///< Something else that's not supported for arithmetic.
-
-    // Abbreviated versions of the above types
     PS_TYPE_S8               = 0x0101,  ///< Character.
     PS_TYPE_S16              = 0x0102,  ///< Short integer.
@@ -87,5 +60,4 @@
     PS_TYPE_C64              = 0x0810,  ///< Complex numbers consisting of double-precision floating point.
     PS_TYPE_PTR              = 0x0000   ///< Something else that's not supported for arithmetic.
-
 } psElemType;
 
Index: /trunk/psLib/src/sysUtils/psType.h
===================================================================
--- /trunk/psLib/src/sysUtils/psType.h	(revision 830)
+++ /trunk/psLib/src/sysUtils/psType.h	(revision 831)
@@ -3,23 +3,11 @@
  *  @brief Contains support for basic types
  *
- *  This file defines datatypes which include:
- *      char
- *      short
- *      int
- *      long
- *      unsigned char
- *      unsigned short
- *      unsigned int
- *      unsigned long
- *      float
- *      double
- *      complex float
- *      void **
+ *  This file defines common datatypes used throughout psLib.
  *
  *  @author Robert DeSonia, MHPCC
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-29 01:10:22 $
+ *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:14 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -59,19 +47,4 @@
 
 typedef enum {
-    PS_TYPE_INT8             = 0x0101,  ///< Character.
-    PS_TYPE_INT16            = 0x0102,  ///< Short integer.
-    PS_TYPE_INT32            = 0x0104,  ///< Integer.
-    PS_TYPE_INT64            = 0x0108,  ///< Long integer.
-    PS_TYPE_UINT8            = 0x0301,  ///< Unsigned character.
-    PS_TYPE_UINT16           = 0x0302,  ///< Unsigned short integer.
-    PS_TYPE_UINT32           = 0x0304,  ///< Unsigned integer.
-    PS_TYPE_UINT64           = 0x0308,  ///< Unsigned long integer.
-    PS_TYPE_FLOAT            = 0x0404,  ///< Single-precision Floating point.
-    PS_TYPE_DOUBLE           = 0x0408,  ///< Double-precision floating point.
-    PS_TYPE_COMPLEX_FLOAT    = 0x0808,  ///< Complex numbers consisting of single-precision floating point.
-    PS_TYPE_COMPLEX_DOUBLE   = 0x0810,  ///< Complex numbers consisting of double-precision floating point.
-    PS_TYPE_OTHER            = 0x0000,  ///< Something else that's not supported for arithmetic.
-
-    // Abbreviated versions of the above types
     PS_TYPE_S8               = 0x0101,  ///< Character.
     PS_TYPE_S16              = 0x0102,  ///< Short integer.
@@ -87,5 +60,4 @@
     PS_TYPE_C64              = 0x0810,  ///< Complex numbers consisting of double-precision floating point.
     PS_TYPE_PTR              = 0x0000   ///< Something else that's not supported for arithmetic.
-
 } psElemType;
 
Index: /trunk/psLib/test/collections/tst_psSort_01.c
===================================================================
--- /trunk/psLib/test/collections/tst_psSort_01.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psSort_01.c	(revision 831)
@@ -10,6 +10,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -29,15 +29,15 @@
     // Test A - Create float vectors
     printPositiveTestHeader(stdout,"psSort", "Create float vectors");
-    in = psVectorAlloc(PS_TYPE_FLOAT, 5);
+    in = psVectorAlloc(5, PS_TYPE_F32);
     in->n = 5;
-    out = psVectorAlloc(PS_TYPE_FLOAT, 5);
+    out = psVectorAlloc(5, PS_TYPE_F32);
     out->n = 5;
-    in->vec.f[0] = 7.0f;
-    in->vec.f[1] = 9.0f;
-    in->vec.f[2] = 3.0f;
-    in->vec.f[3] = 1.0f;
-    in->vec.f[4] = 5.0f;
+    in->data.F32[0] = 7.0f;
+    in->data.F32[1] = 9.0f;
+    in->data.F32[2] = 3.0f;
+    in->data.F32[3] = 1.0f;
+    in->data.F32[4] = 5.0f;
     for(int i=0; i<5; i++) {
-        printf("vec[%d] = %f\n", i, in->vec.f[i]);
+        printf("vec[%d] = %f\n", i, in->data.F32[i]);
     }
     printFooter(stdout, "psSort", "Create float vectors", true);
@@ -48,5 +48,5 @@
     out = psSort(out, in);
     for(int i=0; i<5; i++) {
-        printf("vec[%d] = %f\n", i, out->vec.f[i]);
+        printf("vec[%d] = %f\n", i, out->data.F32[i]);
     }
     printFooter(stdout, "psSort", "Sort float vector", true);
Index: /trunk/psLib/test/collections/tst_psSort_02.c
===================================================================
--- /trunk/psLib/test/collections/tst_psSort_02.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psSort_02.c	(revision 831)
@@ -10,6 +10,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -29,15 +29,15 @@
     // Test A - Create float vectors
     printPositiveTestHeader(stdout,"psSort", "Create vectors");
-    in = psVectorAlloc(PS_TYPE_FLOAT, 5);
+    in = psVectorAlloc(5, PS_TYPE_F32);
     in->n = 5;
-    out = psVectorAlloc(PS_TYPE_INT32, 5);
+    out = psVectorAlloc(5, PS_TYPE_F32);
     out->n = 5;
-    in->vec.f[0] = 7.0f;
-    in->vec.f[1] = 9.0f;
-    in->vec.f[2] = 3.0f;
-    in->vec.f[3] = 1.0f;
-    in->vec.f[4] = 5.0f;
+    in->data.F32[0] = 7.0f;
+    in->data.F32[1] = 9.0f;
+    in->data.F32[2] = 3.0f;
+    in->data.F32[3] = 1.0f;
+    in->data.F32[4] = 5.0f;
     for(int i=0; i<5; i++) {
-        printf("arr[%d] = %f\n", i, in->vec.f[i]);
+        printf("arr[%d] = %f\n", i, in->data.F32[i]);
     }
     printFooter(stdout, "psSort", "Create vectors", true);
@@ -48,5 +48,5 @@
     out = psSortIndex(out, in);
     for(int i=0; i<5; i++) {
-        printf("arr[%d] = %d\n", i, out->vec.i32[i]);
+        printf("arr[%d] = %d\n", i, out->data.S32[i]);
     }
     printFooter(stdout, "psSort", "Create sorted index vector", true);
Index: /trunk/psLib/test/collections/tst_psSort_03.c
===================================================================
--- /trunk/psLib/test/collections/tst_psSort_03.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psSort_03.c	(revision 831)
@@ -10,6 +10,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -29,11 +29,11 @@
     // Test A - Create float vectors
     printPositiveTestHeader(stdout,"psSort", "Create float vectors of different sizes");
-    in = psVectorAlloc(PS_TYPE_FLOAT, 5);
+    in = psVectorAlloc(5, PS_TYPE_F32);
     in->n = 5;
-    out = psVectorAlloc(PS_TYPE_FLOAT, 6);
+    out = psVectorAlloc(6, PS_TYPE_F32);
     out->n = 6;
     in->n = 5;
     for(int i=0; i<5; i++) {
-        printf("arr[%d] = %f\n", i, in->vec.f[i]);
+        printf("arr[%d] = %f\n", i, in->data.F32[i]);
     }
     printFooter(stdout, "psSort", "Create float vectors of different sizes", true);
Index: /trunk/psLib/test/collections/tst_psSort_04.c
===================================================================
--- /trunk/psLib/test/collections/tst_psSort_04.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psSort_04.c	(revision 831)
@@ -10,6 +10,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -25,6 +25,6 @@
     psVector *badIn = NULL;
     psVector *badOut = NULL;
-    psVector *goodIn = psVectorAlloc(PS_TYPE_FLOAT, 5);
-    psVector *goodOut = psVectorAlloc(PS_TYPE_FLOAT, 5);
+    psVector *goodIn = psVectorAlloc(5, PS_TYPE_F32);
+    psVector *goodOut = psVectorAlloc(5, PS_TYPE_F32);
 
     // Test A - Attempt to sort with null input vector
Index: /trunk/psLib/test/collections/tst_psVector_01.c
===================================================================
--- /trunk/psLib/test/collections/tst_psVector_01.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psVector_01.c	(revision 831)
@@ -4,14 +4,14 @@
  *
  *  This test driver contains the following tests for psVector test point 1:
- *     A)  Create INT32 vector
- *     B)  Add data to INT32 vector
- *     C)  Reallocate INT32 vector bigger
- *     D)  Reallocate INT32 vector smaller
- *     E)  Free INT32 vector
+ *     A)  Create S32 vector
+ *     B)  Add data to S32 vector
+ *     C)  Reallocate S32 vector bigger
+ *     D)  Reallocate S32 vector smaller
+ *     E)  Free S32 vector
  *
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -27,52 +27,52 @@
 
 
-    // Test A - Create INT32 vector
-    printPositiveTestHeader(stdout,"psVector", "Create INT32 vector");
-    psVector *psVec = psVectorAlloc(PS_TYPE_INT32, 5);
+    // Test A - Create S32 vector
+    printPositiveTestHeader(stdout,"psVector", "Create S32 vector");
+    psVector *psVec = psVectorAlloc(5, PS_TYPE_S32);
     printf("Vector size = %d\n", psVec->nalloc);
     printf("Vector population = %d\n", psVec->n);
-    printFooter(stdout, "psVector", "Create INT32 vector", true);
+    printFooter(stdout, "psVector", "Create S32 vector", true);
 
 
     // Test B - Add data to integer vector
-    printPositiveTestHeader(stdout, "psVector", "Add data to INT32 vector");
+    printPositiveTestHeader(stdout, "psVector", "Add data to S32 vector");
     for(int i = 0; i < 5; i++) {
-        psVec->vec.i32[i] = i*10;
+        psVec->data.S32[i] = i*10;
         psVec->n++;
-        printf("Elem %d = %d\n", i, psVec->vec.i32[i]);
+        printf("Elem %d = %d\n", i, psVec->data.S32[i]);
     }
     printf("Vector size = %d\n", psVec->nalloc);
     printf("Vector population = %d\n", psVec->n);
-    printFooter(stdout, "psVector", "Add data to INT32 vector", true);
+    printFooter(stdout, "psVector", "Add data to S32 vector", true);
 
 
-    // Test C - Reallocate INT32 vector bigger
-    printPositiveTestHeader(stdout,"psVector", "Reallocate INT32 vector bigger");
-    psVec = psVectorRealloc(psVec, 10);
-    printf("Adding more elements to INT32 vector...\n");
+    // Test C - Reallocate S32 vector bigger
+    printPositiveTestHeader(stdout,"psVector", "Reallocate S32 vector bigger");
+    psVec = psVectorRealloc(10, psVec);
+    printf("Adding more elements to S32 vector...\n");
     for(int i = 5; i < 10; i++) {
-        psVec->vec.i32[i] = i*10;
+        psVec->data.S32[i] = i*10;
         psVec->n++;
-        printf("Elem %d = %d\n", i, psVec->vec.i32[i]);
+        printf("Elem %d = %d\n", i, psVec->data.S32[i]);
     }
     printf("Vector size = %d\n", psVec->nalloc);
     printf("Vector population = %d\n", psVec->n);
-    printFooter(stdout, "psVector", "Reallocate INT32 vector bigger", true);
+    printFooter(stdout, "psVector", "Reallocate S32 vector bigger", true);
 
 
-    // Test D - Reallocate INT32 vector smaller
-    printPositiveTestHeader(stdout,"psVector","Reallocate INT32 vector smaller");
-    psVec = psVectorRealloc(psVec, 3);
+    // Test D - Reallocate S32 vector smaller
+    printPositiveTestHeader(stdout,"psVector","Reallocate S32 vector smaller");
+    psVec = psVectorRealloc(3, psVec);
     printf("Vector size = %d\n", psVec->nalloc);
     for(int i = 0; i < 3; i++) {
-        printf("Elem %d = %d\n", i, psVec->vec.i32[i]);
+        printf("Elem %d = %d\n", i, psVec->data.S32[i]);
     }
     printf("Vector size = %d\n", psVec->nalloc);
     printf("Vector population = %d\n", psVec->n);
-    printFooter(stdout, "psVector", "Reallocate integer INT32 smaller", true);
+    printFooter(stdout, "psVector", "Reallocate integer S32 smaller", true);
 
 
-    // Test E - Free INT32 vector
-    printPositiveTestHeader(stdout, "psVector", "Free INT32 vector");
+    // Test E - Free S32 vector
+    printPositiveTestHeader(stdout, "psVector", "Free S32 vector");
     psVectorFree(psVec);
     psMemCheckLeaks(0, NULL, stdout);
@@ -81,5 +81,5 @@
         printf("ERROR: Found %d bad memory blocks\n", nBad);
     }
-    printFooter(stdout, "psVector" ,"Free INT32 vector", true);
+    printFooter(stdout, "psVector" ,"Free S32 vector", true);
 
     return 0;
Index: /trunk/psLib/test/collections/tst_psVector_02.c
===================================================================
--- /trunk/psLib/test/collections/tst_psVector_02.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psVector_02.c	(revision 831)
@@ -12,6 +12,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -39,5 +39,5 @@
     // Test A - Create void pointer vector
     printPositiveTestHeader(stdout,"psVector", "Create void pointer vector");
-    psVector *psVec = psVectorAlloc(PS_TYPE_PTR, 5);
+    psVector *psVec = psVectorAlloc(5, PS_TYPE_PTR);
     printf("Vector size = %d\n", psVec->nalloc);
     printf("Vector population = %d\n", psVec->n);
@@ -52,5 +52,5 @@
         ts->y = 10.1*i;
         mySt[i] = ts;
-        psVec->vec.vp[i] = ts;
+        psVec->data.PTR[i] = ts;
         psVec->n++;
         psMemIncrRefCounter(ts);
@@ -58,5 +58,5 @@
 
     for(int i = 0; i < 5; i++) {
-        testStruct *ts = (testStruct*)psVec->vec.vp[i];
+        testStruct *ts = (testStruct*)psVec->data.PTR[i];
         printf("ts[%d].x = %d ts[%d].y = %.2f\n", i, ts->x, i, ts->y);
     }
@@ -68,5 +68,5 @@
     // Test C - Reallocate void pointer vector bigger
     printPositiveTestHeader(stdout,"psVector", "Reallocate void pointer vector bigger");
-    psVec = psVectorRealloc(psVec, 10);
+    psVec = psVectorRealloc(10, psVec);
     printf("Adding more elements to void pointer vector...\n");
     for(int i = 5; i < 10; i++) {
@@ -75,10 +75,10 @@
         ts->y = 10.1*i;
         mySt[i] = ts;
-        psVec->vec.vp[i] = ts;
+        psVec->data.PTR[i] = ts;
         psVec->n++;
         psMemIncrRefCounter(ts);
     }
     for(int i = 0; i < 10; i++) {
-        testStruct *ts = (testStruct*)psVec->vec.vp[i];
+        testStruct *ts = (testStruct*)psVec->data.PTR[i];
         printf("ts[%d].x = %d ts[%d].y = %.2f\n", i, ts->x, i, ts->y);
     }
@@ -90,7 +90,7 @@
     // Test D - Reallocate void pointer vector smaller
     printPositiveTestHeader(stdout,"psVector","Reallocate void pointer vector smaller");
-    psVec = psVectorRealloc(psVec, 3);
+    psVec = psVectorRealloc(3, psVec);
     for(int i = 0; i < 3; i++) {
-        testStruct *ts = (testStruct*)psVec->vec.vp[i];
+        testStruct *ts = (testStruct*)psVec->data.PTR[i];
         printf("ts[%d].x = %d ts[%d].y = %.2f\n", i, ts->x, i, ts->y);
     }
Index: /trunk/psLib/test/collections/tst_psVector_03.c
===================================================================
--- /trunk/psLib/test/collections/tst_psVector_03.c	(revision 830)
+++ /trunk/psLib/test/collections/tst_psVector_03.c	(revision 831)
@@ -12,6 +12,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-18 19:22:34 $
+ *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -44,5 +44,5 @@
     // Test A - Create void pointer vector
     printPositiveTestHeader(stdout,"psVector", "Create void pointer vector");
-    psVector *psVec = psVectorAlloc(PS_TYPE_PTR, 5);
+    psVector *psVec = psVectorAlloc(5, PS_TYPE_PTR);
     printf("Vector size = %d\n", psVec->nalloc);
     printf("Vector population = %d\n", psVec->n);
@@ -57,5 +57,5 @@
         ts->y = 10.1*i;
         mySt[i] = ts;
-        psVec->vec.vp[i] = ts;
+        psVec->data.PTR[i] = ts;
         psVec->n++;
         psMemIncrRefCounter(ts);
@@ -63,5 +63,5 @@
 
     for(int i = 0; i < 5; i++) {
-        testStruct *ts = (testStruct*)psVec->vec.vp[i];
+        testStruct *ts = (testStruct*)psVec->data.PTR[i];
         printf("ts[%d].x = %d ts[%d].y = %.2f\n", i, ts->x, i, ts->y);
     }
@@ -73,5 +73,5 @@
     // Test C - Reallocate void pointer vector bigger
     printPositiveTestHeader(stdout,"psVector", "Reallocate void pointer vector bigger");
-    psVec = psVectorRealloc(psVec, 10);
+    psVec = psVectorRealloc(10, psVec);
     printf("Adding more elements to void pointer vector...\n");
     for(int i = 5; i < 10; i++) {
@@ -80,10 +80,10 @@
         ts->y = 10.1*i;
         mySt[i] = ts;
-        psVec->vec.vp[i] = ts;
+        psVec->data.PTR[i] = ts;
         psVec->n++;
         psMemIncrRefCounter(ts);
     }
     for(int i = 0; i < 10; i++) {
-        testStruct *ts = (testStruct*)psVec->vec.vp[i];
+        testStruct *ts = (testStruct*)psVec->data.PTR[i];
         printf("ts[%d].x = %d ts[%d].y = %.2f\n", i, ts->x, i, ts->y);
     }
@@ -95,7 +95,7 @@
     // Test D - Reallocate void pointer vector smaller
     printPositiveTestHeader(stdout,"psVector","Reallocate void pointer vector smaller");
-    psVec = psVectorRealloc(psVec, 3);
+    psVec = psVectorRealloc(3, psVec);
     for(int i = 0; i < 3; i++) {
-        testStruct *ts = (testStruct*)psVec->vec.vp[i];
+        testStruct *ts = (testStruct*)psVec->data.PTR[i];
         printf("ts[%d].x = %d ts[%d].y = %.2f\n", i, ts->x, i, ts->y);
     }
Index: /trunk/psLib/test/dataManip/tst_psMatrix03.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrix03.c	(revision 830)
+++ /trunk/psLib/test/dataManip/tst_psMatrix03.c	(revision 831)
@@ -11,6 +11,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.1 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-28 02:52:23 $
+ *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:39 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -31,5 +31,5 @@
 #define PRINT_VECTOR(VECTOR)                        \
 for(int i=0; i<VECTOR->n; i++) {               \
-    printf("%f\n", VECTOR->vec.d[i]);          \
+    printf("%f\n", VECTOR->data.F64[i]);          \
 }
 
@@ -48,7 +48,7 @@
     printPositiveTestHeader(stdout, "psMatrix", "Create input and output images and vectors");
     luImage = (psImage*)psImageAlloc(3, 3, PS_TYPE_F64);
-    perm = (psVector*)psVectorAlloc(PS_TYPE_F64, 3);
-    outVector = (psVector*)psVectorAlloc(PS_TYPE_F64, 3);
-    inVector = (psVector*)psVectorAlloc(PS_TYPE_F64, 3);
+    perm = (psVector*)psVectorAlloc(3, PS_TYPE_F64);
+    outVector = (psVector*)psVectorAlloc(3, PS_TYPE_F64);
+    inVector = (psVector*)psVectorAlloc(3, PS_TYPE_F64);
     inImage = (psImage*)psImageAlloc(3, 3, PS_TYPE_F64);
     inImage->data.F64[0][0] =  2;
@@ -61,7 +61,7 @@
     inImage->data.F64[2][1] =  1;
     inImage->data.F64[2][2] = -2;
-    inVector->vec.d[0] = 18.0;
-    inVector->vec.d[1] = 24.0;
-    inVector->vec.d[2] =  4.0;
+    inVector->data.F64[0] = 18.0;
+    inVector->data.F64[1] = 24.0;
+    inVector->data.F64[2] =  4.0;
     inVector->n = 3;
     PRINT_MATRIX(inImage);
Index: /trunk/psLib/test/dataManip/tst_psMatrix07.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrix07.c	(revision 830)
+++ /trunk/psLib/test/dataManip/tst_psMatrix07.c	(revision 831)
@@ -11,6 +11,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.1 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-05-28 02:52:23 $
+ *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-06-02 23:29:39 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -31,5 +31,5 @@
 #define PRINT_VECTOR(VECTOR)                        \
 for(int i=0; i<VECTOR->n; i++) {               \
-    printf("%f\n", VECTOR->vec.d[i]);          \
+    printf("%f\n", VECTOR->data.F64[i]);          \
 }
 
@@ -46,14 +46,14 @@
     // Test A - Create input and output images
     printPositiveTestHeader(stdout, "psMatrix", "Create input and output images and vectors");
-    v1 = (psVector*)psVectorAlloc(PS_TYPE_F64, 3);
+    v1 = (psVector*)psVectorAlloc(3, PS_TYPE_F64);
     m1 = (psImage*)psImageAlloc(1, 3, PS_TYPE_F64);
-    v2 = (psVector*)psVectorAlloc(PS_TYPE_F64, 3);
+    v2 = (psVector*)psVectorAlloc(3, PS_TYPE_F64);
     m2 = (psImage*)psImageAlloc(1, 3, PS_TYPE_F64);
     m1->data.F64[0][0] = 0.0;
     m1->data.F64[1][0] = 1.0;
     m1->data.F64[2][0] = 2.0;
-    v2->vec.d[0] = 0.0;
-    v2->vec.d[1] = 1.0;
-    v2->vec.d[2] = 2.0;
+    v2->data.F64[0] = 0.0;
+    v2->data.F64[1] = 1.0;
+    v2->data.F64[2] = 2.0;
     v2->n = 3;
     PRINT_MATRIX(m1);
Index: /trunk/psLib/test/image/tst_psImage.c
===================================================================
--- /trunk/psLib/test/image/tst_psImage.c	(revision 830)
+++ /trunk/psLib/test/image/tst_psImage.c	(revision 831)
@@ -6,6 +6,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-25 23:59:17 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-06-02 23:29:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -48,7 +48,7 @@
     unsigned int numRows[] = {0,1,100,1,150,100};
     unsigned int types = 12;
-    psElemType type[] = { PS_TYPE_INT8, PS_TYPE_INT16, PS_TYPE_INT32, PS_TYPE_INT64,
-                          PS_TYPE_UINT8, PS_TYPE_UINT16, PS_TYPE_UINT32, PS_TYPE_UINT64,
-                          PS_TYPE_FLOAT, PS_TYPE_DOUBLE, PS_TYPE_COMPLEX_FLOAT, PS_TYPE_COMPLEX_DOUBLE };
+    psElemType type[] = { PS_TYPE_S8, PS_TYPE_S16, PS_TYPE_S32, PS_TYPE_S64,
+                          PS_TYPE_U8, PS_TYPE_U16, PS_TYPE_U32, PS_TYPE_U64,
+                          PS_TYPE_F32, PS_TYPE_F64, PS_TYPE_C32, PS_TYPE_C64 };
 
     psLogMsg(__func__,PS_LOG_INFO,"#546 - psImageAlloc shall allocate memory for a psImage structure");
@@ -111,5 +111,5 @@
 
             switch (type[t]) {
-            case PS_TYPE_UINT16: {
+            case PS_TYPE_U16: {
                     unsigned int rows = numRows[i];
                     unsigned int cols = numCols[i];
@@ -131,5 +131,5 @@
                 }
                 break;
-            case PS_TYPE_FLOAT: {
+            case PS_TYPE_F32: {
                     unsigned int rows = numRows[i];
                     unsigned int cols = numCols[i];
@@ -151,5 +151,5 @@
                 }
                 break;
-            case PS_TYPE_DOUBLE: {
+            case PS_TYPE_F64: {
                     unsigned int rows = numRows[i];
                     unsigned int cols = numCols[i];
@@ -171,5 +171,5 @@
                 }
                 break;
-            case PS_TYPE_COMPLEX_FLOAT: {
+            case PS_TYPE_C32: {
                     unsigned int rows = numRows[i];
                     unsigned int cols = numCols[i];
