Index: /trunk/psLib/src/collections/psScalar.c
===================================================================
--- /trunk/psLib/src/collections/psScalar.c	(revision 1647)
+++ /trunk/psLib/src/collections/psScalar.c	(revision 1648)
@@ -9,6 +9,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-08-10 19:27:47 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-08-27 23:34:05 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -130,4 +130,5 @@
 psScalar* psScalarCopy(psScalar *scalar)
 {
+    psElemType dataType;
     psScalar *newScalar = NULL;
 
@@ -136,7 +137,44 @@
     }
 
-    newScalar =  psScalarAlloc(scalar->data.C64, scalar->type.type);
-    if (newScalar == NULL) {
-        psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__);
+    dataType = scalar->type.type;
+    switch (dataType) {
+    case PS_TYPE_S8:
+        newScalar =  psScalarAlloc(scalar->data.S8, dataType);
+        break;
+    case PS_TYPE_U8:
+        newScalar =  psScalarAlloc(scalar->data.U8, dataType);
+        break;
+    case PS_TYPE_S16:
+        newScalar =  psScalarAlloc(scalar->data.S16, dataType);
+        break;
+    case PS_TYPE_U16:
+        newScalar =  psScalarAlloc(scalar->data.U16, dataType);
+        break;
+    case PS_TYPE_S32:
+        newScalar =  psScalarAlloc(scalar->data.S32, dataType);
+        break;
+    case PS_TYPE_U32:
+        newScalar =  psScalarAlloc(scalar->data.U32, dataType);
+        break;
+    case PS_TYPE_S64:
+        newScalar =  psScalarAlloc(scalar->data.S64, dataType);
+        break;
+    case PS_TYPE_U64:
+        newScalar =  psScalarAlloc(scalar->data.U64, dataType);
+        break;
+    case PS_TYPE_F32:
+        newScalar =  psScalarAlloc(scalar->data.F32, dataType);
+        break;
+    case PS_TYPE_F64:
+        newScalar =  psScalarAlloc(scalar->data.F64, dataType);
+        break;
+    case PS_TYPE_C32:
+        newScalar =  psScalarAlloc(scalar->data.C32, dataType);
+        break;
+    case PS_TYPE_C64:
+        newScalar =  psScalarAlloc(scalar->data.C64, dataType);
+        break;
+    default:
+        psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType);
     }
 
Index: /trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c
===================================================================
--- /trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c	(revision 1647)
+++ /trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c	(revision 1648)
@@ -30,6 +30,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-08-27 23:29:36 $
+ *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-08-27 23:33:31 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -114,7 +114,7 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    o  = &((psScalar* )OUT)->data.TYPE;                                                                       \
-    i1 = &((psScalar* )IN1)->data.TYPE;                                                                       \
-    i2 = &((psScalar* )IN2)->data.TYPE;                                                                       \
+    o  = &((psScalar* )OUT)->data.TYPE;                                                                      \
+    i1 = &((psScalar* )IN1)->data.TYPE;                                                                      \
+    i2 = &((psScalar* )IN2)->data.TYPE;                                                                      \
     *o = OP;                                                                                                 \
 }
@@ -127,8 +127,8 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    npt  = ((psVector* )IN1)->n;                                                                              \
-    o  = ((psVector* )OUT)->data.TYPE;                                                                        \
-    i1 = &((psScalar* )IN1)->data.TYPE;                                                                       \
-    i2 = ((psVector* )IN2)->data.TYPE;                                                                        \
+    npt  = ((psVector* )IN1)->n;                                                                             \
+    o  = ((psVector* )OUT)->data.TYPE;                                                                       \
+    i1 = &((psScalar* )IN1)->data.TYPE;                                                                      \
+    i2 = ((psVector* )IN2)->data.TYPE;                                                                       \
     for (i=0; i < npt; i++, o++, i2++) {                                                                     \
         *o = OP;                                                                                             \
@@ -145,10 +145,10 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    numRows = ((psImage* )IN1)->numRows;                                                                      \
-    numCols = ((psImage* )IN1)->numCols;                                                                      \
+    numRows = ((psImage* )IN1)->numRows;                                                                     \
+    numCols = ((psImage* )IN1)->numCols;                                                                     \
     for(j = 0; j < numCols; j++) {                                                                           \
-        o  = ((psImage* )OUT)->data.TYPE[j];                                                                  \
-        i1 = &((psScalar* )IN1)->data.TYPE;                                                                   \
-        i2 = ((psImage* )IN2)->data.TYPE[j];                                                                  \
+        o  = ((psImage* )OUT)->data.TYPE[j];                                                                 \
+        i1 = &((psScalar* )IN1)->data.TYPE;                                                                  \
+        i2 = ((psImage* )IN2)->data.TYPE[j];                                                                 \
         for(i = 0; i < numRows; i++, o++, i2++) {                                                            \
             *o = OP;                                                                                         \
@@ -165,8 +165,8 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    n1  = ((psVector* )IN1)->n;                                                                               \
-    o  = ((psVector* )OUT)->data.TYPE;                                                                        \
-    i1 = ((psVector* )IN1)->data.TYPE;                                                                        \
-    i2 = &((psScalar* )IN2)->data.TYPE;                                                                       \
+    n1  = ((psVector* )IN1)->n;                                                                              \
+    o  = ((psVector* )OUT)->data.TYPE;                                                                       \
+    i1 = ((psVector* )IN1)->data.TYPE;                                                                       \
+    i2 = &((psScalar* )IN2)->data.TYPE;                                                                      \
     for (i=0; i < n1; i++, o++, i1++) {                                                                      \
         *o = OP;                                                                                             \
@@ -182,13 +182,13 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    n1  = ((psVector* )IN1)->n;                                                                               \
-    n2  = ((psVector* )IN2)->n;                                                                               \
+    n1  = ((psVector* )IN1)->n;                                                                              \
+    n2  = ((psVector* )IN2)->n;                                                                              \
     if(n1 != n2) {                                                                                           \
         psError(__func__, ": Inconsistent element count: %d vs %d", n1, n2);                                 \
         return OUT;                                                                                          \
     }                                                                                                        \
-    o  = ((psVector* )OUT)->data.TYPE;                                                                        \
-    i1 = ((psVector* )IN1)->data.TYPE;                                                                        \
-    i2 = ((psVector* )IN2)->data.TYPE;                                                                        \
+    o  = ((psVector* )OUT)->data.TYPE;                                                                       \
+    i1 = ((psVector* )IN1)->data.TYPE;                                                                       \
+    i2 = ((psVector* )IN2)->data.TYPE;                                                                       \
     for (i=0; i < n1; i++, o++, i1++, i2++) {                                                                \
         *o = OP;                                                                                             \
@@ -207,8 +207,8 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    n1  = ((psVector* )IN1)->n;                                                                               \
-    dim1 = ((psVector* )IN1)->type.dimen;                                                                     \
-    numRows2 = ((psImage* )IN2)->numRows;                                                                     \
-    numCols2 = ((psImage* )IN2)->numCols;                                                                     \
+    n1  = ((psVector* )IN1)->n;                                                                              \
+    dim1 = ((psVector* )IN1)->type.dimen;                                                                    \
+    numRows2 = ((psImage* )IN2)->numRows;                                                                    \
+    numCols2 = ((psImage* )IN2)->numCols;                                                                    \
     \
     if(dim1 == PS_DIMEN_VECTOR) { /* Regular vectors */                                                      \
@@ -218,8 +218,8 @@
         }                                                                                                    \
         \
-        i1 = ((psVector* )IN1)->data.TYPE;                                                                    \
+        i1 = ((psVector* )IN1)->data.TYPE;                                                                   \
         for(j = 0; j < numRows2; j++, i1++) {                                                                \
-            o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
-            i2 = ((psImage* )IN2)->data.TYPE[j];                                                              \
+            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
+            i2 = ((psImage* )IN2)->data.TYPE[j];                                                             \
             for(i = 0; i < numCols2; i++, o++, i2++) {                                                       \
                 *o = OP;                                                                                     \
@@ -233,7 +233,7 @@
         \
         for(j = 0; j < numRows2; j++) {                                                                      \
-            o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
-            i1 = ((psVector* )IN1)->data.TYPE;                                                                \
-            i2 = ((psImage* )IN2)->data.TYPE[j];                                                              \
+            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
+            i1 = ((psVector* )IN1)->data.TYPE;                                                               \
+            i2 = ((psImage* )IN2)->data.TYPE[j];                                                             \
             for(i = 0; i < numCols2; i++, o++, i1++, i2++) {                                                 \
                 *o = OP;                                                                                     \
@@ -253,10 +253,10 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    numRows = ((psImage* )IN1)->numRows;                                                                      \
-    numCols = ((psImage* )IN1)->numCols;                                                                      \
+    numRows = ((psImage* )IN1)->numRows;                                                                     \
+    numCols = ((psImage* )IN1)->numCols;                                                                     \
     for(j = 0; j < numRows; j++) {                                                                           \
-        o  = ((psImage* )OUT)->data.TYPE[j];                                                                  \
-        i1 = ((psImage* )IN1)->data.TYPE[j];                                                                  \
-        i2 = &((psScalar* )IN2)->data.TYPE;                                                                   \
+        o  = ((psImage* )OUT)->data.TYPE[j];                                                                 \
+        i1 = ((psImage* )IN1)->data.TYPE[j];                                                                 \
+        i2 = &((psScalar* )IN2)->data.TYPE;                                                                  \
         for(i = 0; i < numCols; i++, o++, i1++) {                                                            \
             *o = OP;                                                                                         \
@@ -276,8 +276,8 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    n2  = ((psVector* )IN2)->n;                                                                               \
-    dim2 = ((psVector* )IN2)->type.dimen;                                                                     \
-    numRows1 = ((psImage* )IN1)->numRows;                                                                     \
-    numCols1 = ((psImage* )IN1)->numCols;                                                                     \
+    n2  = ((psVector* )IN2)->n;                                                                              \
+    dim2 = ((psVector* )IN2)->type.dimen;                                                                    \
+    numRows1 = ((psImage* )IN1)->numRows;                                                                    \
+    numCols1 = ((psImage* )IN1)->numCols;                                                                    \
     \
     if(dim2 == PS_DIMEN_VECTOR) { /* Regular vectors */                                                      \
@@ -287,8 +287,8 @@
         }                                                                                                    \
         \
-        i2 = ((psVector* )IN2)->data.TYPE;                                                                    \
+        i2 = ((psVector* )IN2)->data.TYPE;                                                                   \
         for(j = 0; j < numRows1; j++, i1++) {                                                                \
-            o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
-            i1 = ((psImage* )IN1)->data.TYPE[j];                                                              \
+            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
+            i1 = ((psImage* )IN1)->data.TYPE[j];                                                             \
             for(i = 0; i < numCols1; i++, o++, i1++) {                                                       \
                 *o = OP;                                                                                     \
@@ -302,7 +302,7 @@
         \
         for(j = 0; j < numRows1; j++) {                                                                      \
-            o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
-            i1 = ((psVector* )IN2)->data.TYPE;                                                                \
-            i2 = ((psImage* )IN1)->data.TYPE[j];                                                              \
+            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
+            i1 = ((psVector* )IN2)->data.TYPE;                                                               \
+            i2 = ((psImage* )IN1)->data.TYPE[j];                                                             \
             for(i = 0; i < numCols1; i++, o++, i2++, i1++) {                                                 \
                 *o = OP;                                                                                     \
@@ -323,8 +323,8 @@
     ps##TYPE *i1 = NULL;                                                                                     \
     ps##TYPE *i2 = NULL;                                                                                     \
-    numRows1 = ((psImage* )IN1)->numRows;                                                                     \
-    numCols1 = ((psImage* )IN1)->numCols;                                                                     \
-    numRows2 = ((psImage* )IN2)->numRows;                                                                     \
-    numCols2 = ((psImage* )IN2)->numCols;                                                                     \
+    numRows1 = ((psImage* )IN1)->numRows;                                                                    \
+    numCols1 = ((psImage* )IN1)->numCols;                                                                    \
+    numRows2 = ((psImage* )IN2)->numRows;                                                                    \
+    numCols2 = ((psImage* )IN2)->numCols;                                                                    \
     if(numRows1!=numRows2 || numCols1!=numCols2) {                                                           \
         psError(__func__, ": Inconsistent element count: numRows: %d vs %d numCols: %d vs %d", numRows1,     \
@@ -333,7 +333,7 @@
     }                                                                                                        \
     for(j = 0; j < numRows1; j++) {                                                                          \
-        o  = ((psImage* )OUT)->data.TYPE[j];                                                                  \
-        i1 = ((psImage* )IN1)->data.TYPE[j];                                                                  \
-        i2 = ((psImage* )IN2)->data.TYPE[j];                                                                  \
+        o  = ((psImage* )OUT)->data.TYPE[j];                                                                 \
+        i1 = ((psImage* )IN1)->data.TYPE[j];                                                                 \
+        i2 = ((psImage* )IN2)->data.TYPE[j];                                                                 \
         for(i = 0; i < numCols1; i++, o++, i1++, i2++) {                                                     \
             *o = OP;                                                                                         \
Index: /trunk/psLib/src/mathtypes/psScalar.c
===================================================================
--- /trunk/psLib/src/mathtypes/psScalar.c	(revision 1647)
+++ /trunk/psLib/src/mathtypes/psScalar.c	(revision 1648)
@@ -9,6 +9,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-08-10 19:27:47 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-08-27 23:34:05 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -130,4 +130,5 @@
 psScalar* psScalarCopy(psScalar *scalar)
 {
+    psElemType dataType;
     psScalar *newScalar = NULL;
 
@@ -136,7 +137,44 @@
     }
 
-    newScalar =  psScalarAlloc(scalar->data.C64, scalar->type.type);
-    if (newScalar == NULL) {
-        psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__);
+    dataType = scalar->type.type;
+    switch (dataType) {
+    case PS_TYPE_S8:
+        newScalar =  psScalarAlloc(scalar->data.S8, dataType);
+        break;
+    case PS_TYPE_U8:
+        newScalar =  psScalarAlloc(scalar->data.U8, dataType);
+        break;
+    case PS_TYPE_S16:
+        newScalar =  psScalarAlloc(scalar->data.S16, dataType);
+        break;
+    case PS_TYPE_U16:
+        newScalar =  psScalarAlloc(scalar->data.U16, dataType);
+        break;
+    case PS_TYPE_S32:
+        newScalar =  psScalarAlloc(scalar->data.S32, dataType);
+        break;
+    case PS_TYPE_U32:
+        newScalar =  psScalarAlloc(scalar->data.U32, dataType);
+        break;
+    case PS_TYPE_S64:
+        newScalar =  psScalarAlloc(scalar->data.S64, dataType);
+        break;
+    case PS_TYPE_U64:
+        newScalar =  psScalarAlloc(scalar->data.U64, dataType);
+        break;
+    case PS_TYPE_F32:
+        newScalar =  psScalarAlloc(scalar->data.F32, dataType);
+        break;
+    case PS_TYPE_F64:
+        newScalar =  psScalarAlloc(scalar->data.F64, dataType);
+        break;
+    case PS_TYPE_C32:
+        newScalar =  psScalarAlloc(scalar->data.C32, dataType);
+        break;
+    case PS_TYPE_C64:
+        newScalar =  psScalarAlloc(scalar->data.C64, dataType);
+        break;
+    default:
+        psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType);
     }
 
Index: /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic01.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic01.c	(revision 1647)
+++ /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic01.c	(revision 1648)
@@ -1,3 +1,3 @@
-/** @file  tst_psMatrix_01.c
+/** @file  tst_psMatrixVectorArithmetic01.c
  *
  *  @brief Test driver for psMatrixVector arithmetic functions
@@ -10,6 +10,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-08-27 23:29:25 $
+ *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-08-27 23:31:22 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
Index: /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c	(revision 1647)
+++ /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c	(revision 1648)
@@ -1,4 +1,4 @@
 
-/** @file  tst_psMatrix_02.c
+/** @file  tst_psMatrixVectorArithmetic02.c
  *
  *  @brief Test driver for psMatrixVector arithmetic functions
@@ -10,6 +10,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-08-14 01:31:30 $
+ *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-08-27 23:31:29 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -37,5 +37,5 @@
             printf("Calculated: %.2f\n", (double)(TRUTH));                                                   \
         }                                                                                                    \
-    }                                                                                                       \
+    }                                                                                                        \
 }                                                                                                            \
 printf("\n");
@@ -45,5 +45,5 @@
 for(int i=IMAGE->numRows-1; i>-1; i--) {                                                                     \
     for(int j=0; j<IMAGE->numCols; j++) {                                                                    \
-        if(cabs(IMAGE->data.TYPE[i][j])-cabs(TRUTH) > FLT_EPSILON){                                         \
+        if(cabs(IMAGE->data.TYPE[i][j])-cabs(TRUTH) > FLT_EPSILON){                                          \
             printf("ERROR:Truth and calculated values don't match for matrix operation:\n");                 \
             if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                 \
@@ -57,5 +57,5 @@
                 printf("Calculated: %.2f\n", (double)(TRUTH));                                               \
             }                                                                                                \
-        }                                                                                                   \
+        }                                                                                                    \
     }                                                                                                        \
     printf("\n");                                                                                            \
Index: /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c	(revision 1647)
+++ /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c	(revision 1648)
@@ -1,3 +1,3 @@
-/** @file  tst_psMatrix_01.c
+/** @file  tst_psMatrixVectorArithmetic03.c
  *
  *  @brief Test driver for psMatrixVector arithmetic functions
@@ -15,6 +15,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-08-06 22:34:06 $
+ *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-08-27 23:31:35 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
