Index: /trunk/psLib/psLib.kdevses
===================================================================
--- /trunk/psLib/psLib.kdevses	(revision 2020)
+++ /trunk/psLib/psLib.kdevses	(revision 2021)
@@ -2,5 +2,5 @@
 <!DOCTYPE KDevPrjSession>
 <KDevPrjSession>
- <DocsAndViews NumberOfDocuments="6" >
+ <DocsAndViews NumberOfDocuments="15" >
   <Doc0 NumberOfViews="1" URL="file:/home/desonia/psLib/src/image/psImageConvolve.c" >
    <View0 line="412" Type="???" >
@@ -10,5 +10,5 @@
   <Doc1 NumberOfViews="1" URL="file:/home/desonia/psLib/src/image/psImageFFT.c" >
    <View0 line="36" Type="???" >
-    <AdditionalSettings Top="2" Width="1181" Attach="1" Height="701" Left="2" MinMaxMode="0" />
+    <AdditionalSettings Top="2" Width="1526" Attach="1" Height="1007" Left="2" MinMaxMode="0" />
    </View0>
   </Doc1>
@@ -29,8 +29,53 @@
   </Doc4>
   <Doc5 NumberOfViews="1" URL="file:/home/desonia/psLib/src/collections/psVector.c" >
-   <View0 line="86" Type="???" >
-    <AdditionalSettings Top="2" Width="1181" Attach="1" Height="701" Left="2" MinMaxMode="0" />
+   <View0 line="100" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="809" Left="2" MinMaxMode="0" />
    </View0>
   </Doc5>
+  <Doc6 NumberOfViews="1" URL="file:/home/desonia/psLib/src/dataManip/psMatrix.c" >
+   <View0 line="212" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="809" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc6>
+  <Doc7 NumberOfViews="1" URL="file:/home/desonia/psLib/src/dataManip/psFunctions.c" >
+   <View0 line="0" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="809" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc7>
+  <Doc8 NumberOfViews="1" URL="file:/home/desonia/psLib/src/dataManip/psMatrixVectorArithmetic.c" >
+   <View0 line="684" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="538" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc8>
+  <Doc9 NumberOfViews="1" URL="file:/home/desonia/psLib/src/collections/psScalar.c" >
+   <View0 line="0" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="809" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc9>
+  <Doc10 NumberOfViews="1" URL="file:/home/desonia/psLib/src/collections/psScalar.h" >
+   <View0 line="0" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="807" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc10>
+  <Doc11 NumberOfViews="1" URL="file:/home/desonia/psLib/src/sysUtils/psType.h" >
+   <View0 line="196" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="771" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc11>
+  <Doc12 NumberOfViews="1" URL="file:/home/desonia/psLib/test/dataManip/tst_psMatrixVectorArithmetic01.c" >
+   <View0 line="202" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="538" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc12>
+  <Doc13 NumberOfViews="1" URL="file:/home/desonia/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c" >
+   <View0 line="265" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="538" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc13>
+  <Doc14 NumberOfViews="1" URL="file:/home/desonia/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c" >
+   <View0 line="199" Type="???" >
+    <AdditionalSettings Top="2" Width="1212" Attach="1" Height="538" Left="2" MinMaxMode="0" />
+   </View0>
+  </Doc14>
  </DocsAndViews>
  <pluginList>
@@ -41,4 +86,7 @@
      <mark line="652" />
      <mark line="593" />
+    </bookmark>
+    <bookmark url="/home/desonia/psLib/src/dataManip/psMatrixVectorArithmetic.c" >
+     <mark line="60" />
     </bookmark>
     <bookmark url="/home/desonia/psLib/src/collections/psBitSet.c" >
Index: /trunk/psLib/src/dataManip/psMatrix.c
===================================================================
--- /trunk/psLib/src/dataManip/psMatrix.c	(revision 2020)
+++ /trunk/psLib/src/dataManip/psMatrix.c	(revision 2021)
@@ -1,3 +1,2 @@
-
 /** @file  psMatrix.c
  *
@@ -21,6 +20,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-21 23:44:10 $
+ *  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-08 02:48:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -28,7 +27,5 @@
 
 /******************************************************************************/
-
 /*  INCLUDE FILES                                                             */
-
 /******************************************************************************/
 #include <string.h>
@@ -44,42 +41,4 @@
 #include "psMatrix.h"
 
-/******************************************************************************/
-
-/*  DEFINE STATEMENTS                                                         */
-
-/******************************************************************************/
-
-// None
-
-/******************************************************************************/
-
-/*  TYPE DEFINITIONS                                                          */
-
-/******************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  GLOBAL VARIABLES                                                         */
-
-/*****************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  FILE STATIC VARIABLES                                                    */
-
-/*****************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  FUNCTION IMPLEMENTATION - LOCAL                                          */
-
-/*****************************************************************************/
-
 /** Preprocessor macro to generate error a NULL image */
 #define PS_CHECK_NULL_VECTOR(NAME, RETURN)                                                          \
@@ -155,7 +114,5 @@
 
 /*****************************************************************************/
-
 /* FUNCTION IMPLEMENTATION - PUBLIC                                          */
-
 /*****************************************************************************/
 
Index: /trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c
===================================================================
--- /trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c	(revision 2020)
+++ /trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c	(revision 2021)
@@ -1,3 +1,2 @@
-
 /** @file  psMatrixVectorArithmetic.c
  *
@@ -30,15 +29,13 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-08-27 23:33:31 $
+ *  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-08 02:48:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  */
 
-/******************************************************************************/
-
-/*  INCLUDE FILES                                                             */
-
-/******************************************************************************/
+/******************************************************************************
+ *  INCLUDE FILES                                                             *
+ ******************************************************************************/
 #include <string.h>
 #include <math.h>
@@ -50,42 +47,9 @@
 #include "psVector.h"
 #include "psScalar.h"
-
-/******************************************************************************/
-
-/*  DEFINE STATEMENTS                                                         */
-
-/******************************************************************************/
-
-// None
-
-/******************************************************************************/
-
-/*  TYPE DEFINITIONS                                                          */
-
-/******************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  GLOBAL VARIABLES                                                         */
-
-/*****************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  FILE STATIC VARIABLES                                                    */
-
-/*****************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  FUNCTION IMPLEMENTATION - LOCAL                                          */
-
-/*****************************************************************************/
+#include "psLogMsg.h"
+
+/*****************************************************************************
+ *  FUNCTION IMPLEMENTATION - LOCAL                                          *
+ *****************************************************************************/
 
 // Conversion for degrees to radians
@@ -95,16 +59,18 @@
 #define R2D 57.29577950924861   /* 180.0/PI */
 
+/* IEEE Standards on floating-point makes this function pointless, really.
 // Division with NAN checking
 static complex double psNanDiv(complex double a, complex double b)
 {
     complex double out = 0 + 0i;
-
+ 
     out = a / b;
     if (isnan(creal(out)) || isnan(cimag(out))) {
         psError(__func__, ": Divide by zero");
     }
-
+ 
     return out;
 }
+*/
 
 // Binary SCALAR_XXXX operations
@@ -186,5 +152,8 @@
     if(n1 != n2) {                                                                                           \
         psError(__func__, ": Inconsistent element count: %d vs %d", n1, n2);                                 \
-        return OUT;                                                                                          \
+        if (OUT != IN1 && OUT != IN2) {                                                                      \
+            psFree(OUT);                                                                                     \
+        }                                                                                                    \
+        return NULL;                                                                                         \
     }                                                                                                        \
     o  = ((psVector* )OUT)->data.TYPE;                                                                       \
@@ -215,5 +184,8 @@
         if(n1!=numRows2) {                                                                                   \
             psError(__func__, ": Inconsistent element count: %d vs %d", n1, numRows2);                       \
-            return OUT;                                                                                      \
+            if (OUT != IN1 && OUT != IN2) {                                                                  \
+                psFree(OUT);                                                                                 \
+            }                                                                                                \
+            return NULL;                                                                                     \
         }                                                                                                    \
         \
@@ -229,5 +201,8 @@
         if(n1!=numCols2) {                                                                                   \
             psError(__func__, ": Inconsistent element count: %d vs %d", n1, numCols2);                       \
-            return OUT;                                                                                      \
+            if (OUT != IN1 && OUT != IN2) {                                                                  \
+                psFree(OUT);                                                                                 \
+            }                                                                                                \
+            return NULL;                                                                                     \
         }                                                                                                    \
         \
@@ -284,5 +259,8 @@
         if(n2!=numRows1) {                                                                                   \
             psError(__func__, ": Inconsistent element count: %d vs %d", n2, numRows1);                       \
-            return OUT;                                                                                      \
+            if (OUT != IN1 && OUT != IN2) {                                                                  \
+                psFree(OUT);                                                                                 \
+            }                                                                                                \
+            return NULL;                                                                                     \
         }                                                                                                    \
         \
@@ -298,5 +276,8 @@
         if(n2!=numCols1) {                                                                                   \
             psError(__func__, ": Inconsistent element count: %d vs %d", n2, numCols1);                       \
-            return OUT;                                                                                      \
+            if (OUT != IN1) {                                                                                \
+                psFree(OUT);                                                                                 \
+            }                                                                                                \
+            return NULL;                                                                                     \
         }                                                                                                    \
         \
@@ -330,5 +311,8 @@
         psError(__func__, ": Inconsistent element count: numRows: %d vs %d numCols: %d vs %d", numRows1,     \
                 numRows2, numCols1, numCols2);                                                               \
-        return OUT;                                                                                          \
+        if (OUT != IN1 && OUT != IN2) {                                                                      \
+            psFree(OUT);                                                                                     \
+        }                                                                                                    \
+        return NULL;                                                                                         \
     }                                                                                                        \
     for(j = 0; j < numRows1; j++) {                                                                          \
@@ -345,7 +329,28 @@
 #define BINARY_TYPE(DIM1,DIM2,OUT,IN1,OP,IN2)                                                                \
 switch (IN1->type) {                                                                                         \
+case PS_TYPE_U8:                                                                                             \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,U8);                                                                        \
+    break;                                                                                                   \
+case PS_TYPE_U16:                                                                                            \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,U16);                                                                       \
+    break;                                                                                                   \
+case PS_TYPE_U32:                                                                                            \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,U32);                                                                       \
+    break;                                                                                                   \
+case PS_TYPE_U64:                                                                                            \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,U64);                                                                       \
+    break;                                                                                                   \
+case PS_TYPE_S8:                                                                                             \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,S8);                                                                        \
+    break;                                                                                                   \
+case PS_TYPE_S16:                                                                                            \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,S16);                                                                       \
+    break;                                                                                                   \
 case PS_TYPE_S32:                                                                                            \
     DIM1##_##DIM2(OUT,IN1,OP,IN2,S32);                                                                       \
     break;                                                                                                   \
+case PS_TYPE_S64:                                                                                            \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,S64);                                                                       \
+    break;                                                                                                   \
 case PS_TYPE_F32:                                                                                            \
     DIM1##_##DIM2(OUT,IN1,OP,IN2,F32);                                                                       \
@@ -357,14 +362,13 @@
     DIM1##_##DIM2(OUT,IN1,OP,IN2,C32);                                                                       \
     break;                                                                                                   \
+case PS_TYPE_C64:                                                                                            \
+    DIM1##_##DIM2(OUT,IN1,OP,IN2,C64);                                                                       \
+    break;                                                                                                   \
 default:                                                                                                     \
-case PS_TYPE_S8:                                                                                             \
-case PS_TYPE_U8:                                                                                             \
-case PS_TYPE_S16:                                                                                            \
-case PS_TYPE_U16:                                                                                            \
-case PS_TYPE_U32:                                                                                            \
-case PS_TYPE_S64:                                                                                            \
-case PS_TYPE_U64:                                                                                            \
-case PS_TYPE_C64:                                                                                            \
     psError(__func__, ": Invalid PS_TYPE: %d", IN1->type);                                                   \
+    if (OUT != IN1 && OUT != IN2) {                                                                          \
+        psFree(OUT);                                                                                         \
+    }                                                                                                        \
+    return NULL;                                                                                             \
 }
 
@@ -378,5 +382,5 @@
     BINARY_TYPE(DIM1,DIM2,OUT,IN1,*i1 * *i2,IN2);                                                            \
 } else if(!strncmp(OP, "/", 1)) {                                                                            \
-    BINARY_TYPE(DIM1,DIM2,OUT,IN1,psNanDiv(*i1,*i2),IN2);                                                    \
+    BINARY_TYPE(DIM1,DIM2,OUT,IN1,*i1 / *i2,IN2);                                                    \
 } else if(!strncmp(OP, "^", 1)) {                                                                            \
     if(PS_IS_PSELEMTYPE_COMPLEX(IN1->type)) {                                                                \
@@ -388,4 +392,8 @@
     if(PS_IS_PSELEMTYPE_COMPLEX(IN1->type)) {                                                                \
         psError(__func__, ": Minimum operation not supported for complex numbers");                          \
+        if (OUT != IN1 && OUT != IN2) {                                                                      \
+            psFree(OUT);                                                                                     \
+        }                                                                                                    \
+        return NULL;                                                                                         \
     } else {                                                                                                 \
         BINARY_TYPE(DIM1,DIM2,OUT,IN1,fmin(*i1,*i2),IN2);                                                    \
@@ -394,4 +402,8 @@
     if(PS_IS_PSELEMTYPE_COMPLEX(IN1->type)) {                                                                \
         psError(__func__, ": Maximum operation not supported for complex numbers");                          \
+        if (OUT != IN1 && OUT != IN2) {                                                                      \
+            psFree(OUT);                                                                                     \
+        }                                                                                                    \
+        return NULL;                                                                                         \
     } else {                                                                                                 \
         BINARY_TYPE(DIM1,DIM2,OUT,IN1,fmax(*i1,*i2),IN2);                                                    \
@@ -399,4 +411,8 @@
 } else {                                                                                                     \
     psError(__func__, ": Invalid operation: %s", OP);                                                        \
+    if (OUT != IN1 && OUT != IN2) {                                                                          \
+        psFree(OUT);                                                                                         \
+    }                                                                                                        \
+    return NULL;                                                                                             \
 }
 
@@ -405,22 +421,16 @@
     psDimen dim1 = 0;
     psDimen dim2 = 0;
-    psDimen dimOut = 0;
     psElemType elType1 = 0;
     psElemType elType2 = 0;
-    psElemType elTypeOut = 0;
     psType* psType1 = NULL;
     psType* psType2 = NULL;
-    psType* psTypeOut = NULL;
-
-    psTypeOut = (psType* ) out;
-    if (psTypeOut == NULL) {
-        psError(__func__, ": Line %d - Null out argument", __LINE__);
-        return out;
-    }
 
     psType1 = (psType* ) in1;
     if (psType1 == NULL) {
         psError(__func__, ": Line %d - Null in1 argument", __LINE__);
-        return out;
+        if (out != in1 && out != in2) {
+            psFree(out);
+        }
+        return NULL;
     }
 
@@ -428,57 +438,89 @@
     if (psType2 == NULL) {
         psError(__func__, ": Line %d - Null in2 argument", __LINE__);
-        return out;
+        if (out != in1 && out != in2) {
+            psFree(out);
+        }
+        return NULL;
     }
 
     if (op == NULL) {
         psError(__func__, ": Line %d - Null op argument", __LINE__);
-        return out;
+        if (out != in1 && out != in2) {
+            psFree(out);
+        }
+        return NULL;
     }
 
     dim1 = psType1->dimen;
     dim2 = psType2->dimen;
-    dimOut = psTypeOut->dimen;
     elType1 = psType1->type;
     elType2 = psType2->type;
-    elTypeOut = psTypeOut->type;
-
-    if (elType1 != elType2 && elType1 != elTypeOut) {
-        psError(__func__, ": Line %d - Element types for arguments inconsistent: (%d, %d, %d)", __LINE__,
-                elType1, elType2, elTypeOut);
-        return out;
-    }
-
-    if (dim1 == PS_DIMEN_OTHER || dim2 == PS_DIMEN_OTHER || dimOut == PS_DIMEN_OTHER) {
-        psError(__func__, ": Line %d - PS_DIMEN_OTHER not allowed for arguments: (%d, %d, %d)", __LINE__,
-                dim1, dim2, dimOut);
-        return out;
-    }
-
-    if (dim1 == PS_DIMEN_VECTOR) {
+
+    if (elType1 != elType2) {
+        psError(__func__, ": Line %d - Element types for arguments inconsistent: (%d, %d)", __LINE__,
+                elType1, elType2);
+        if (out != in1 && out != in2) {
+            psFree(out);
+        }
+        return NULL;
+    }
+
+    if (dim1 == PS_DIMEN_OTHER || dim2 == PS_DIMEN_OTHER) {
+        psError(__func__, ": Line %d - PS_DIMEN_OTHER not allowed for arguments: (%d, %d)", __LINE__,
+                dim1, dim2);
+        if (out != in1 && out != in2) {
+            psFree(out);
+        }
+        return NULL;
+    }
+
+    if (dim1 == PS_DIMEN_VECTOR || dim1 == PS_DIMEN_TRANSV) {
         if (((psVector* ) in1)->n == 0) {
-            psError(__func__, ": Line %d - Vector contains zero elements");
+            psLogMsg(__func__, PS_LOG_WARN, ": Line %d - Vector contains zero elements");
         }
     } else if (dim1 == PS_DIMEN_IMAGE) {
         if (((psImage* ) in1)->numCols == 0 || ((psImage* ) in1)->numRows == 0) {
-            psError(__func__, ": Line %d - Image contains zero length row or cols");
-        }
-    }
-
-    if (dim2 == PS_DIMEN_VECTOR) {
+            psLogMsg(__func__, PS_LOG_WARN, ": Line %d - Image contains zero length row or cols");
+        }
+    }
+
+    if (dim2 == PS_DIMEN_VECTOR || dim2 == PS_DIMEN_TRANSV) {
         if (((psVector* ) in2)->n == 0) {
-            psError(__func__, ": Line %d - Vector contains zero elements");
+            psLogMsg(__func__, PS_LOG_WARN, ": Line %d - Vector contains zero elements");
         }
     } else if (dim2 == PS_DIMEN_IMAGE) {
         if (((psImage* ) in2)->numCols == 0 || ((psImage* ) in2)->numRows == 0) {
-            psError(__func__, ": Line %d - Image contains zero length row or cols");
+            psLogMsg(__func__, PS_LOG_WARN, ": Line %d - Image contains zero length row or cols");
         }
     }
 
     if (dim1 == PS_DIMEN_SCALAR) {
+        if ( out != NULL && ((psType*)out)->dimen != dim2) {
+            if (out != in1 && out != in2) {
+                psFree(out);
+            }
+            out = NULL;
+        }
         if (dim2 == PS_DIMEN_SCALAR) {
+            if (out == NULL || ((psScalar*)out)->type.type != elType1) {
+                if (out != in1 && out != in2) {
+                    psFree(out);
+                }
+                out = psScalarAlloc(0.0,elType1);
+            }
             BINARY_OP(SCALAR, SCALAR, out, psType1, op, psType2);       // scalar op scalar
         } else if (dim2 == PS_DIMEN_VECTOR || dim2 == PS_DIMEN_TRANSV) {
+            out = psVectorRecycle(out,((psVector*)in2)->n,elType1);
+            if (out == NULL) {
+                psError(__func__, "Couldn't create a proper output psVector.");
+                return NULL;
+            }
             BINARY_OP(SCALAR, VECTOR, out, psType1, op, psType2);       // scalar op vector
         } else if (dim2 == PS_DIMEN_IMAGE) {
+            out = psImageRecycle(out, ((psImage* ) in2)->numCols, ((psImage* ) in2)->numRows,elType1);
+            if (out == NULL) {
+                psError(__func__, "Couldn't create a proper output psImage.");
+                return NULL;
+            }
             BINARY_OP(SCALAR, IMAGE, out, psType1, op, psType2);        // scalar op image
         } else {
@@ -487,8 +529,23 @@
     } else if (dim1 == PS_DIMEN_VECTOR || dim1 == PS_DIMEN_TRANSV) {
         if (dim2 == PS_DIMEN_SCALAR) {
+            out = psVectorRecycle(out,((psVector*)in1)->n,elType1);
+            if (out == NULL) {
+                psError(__func__, "Couldn't create a proper output psVector.");
+                return NULL;
+            }
             BINARY_OP(VECTOR, SCALAR, out, psType1, op, psType2);       // vector op scalar
         } else if (dim2 == PS_DIMEN_VECTOR || dim2 == PS_DIMEN_TRANSV) {
+            out = psVectorRecycle(out,((psVector*)in2)->n,elType2);
+            if (out == NULL) {
+                psError(__func__, "Couldn't create a proper output psVector.");
+                return NULL;
+            }
             BINARY_OP(VECTOR, VECTOR, out, psType1, op, psType2);       // vector op vector
         } else if (dim2 == PS_DIMEN_IMAGE) {
+            out = psImageRecycle(out, ((psImage* ) in2)->numCols, ((psImage* ) in2)->numRows, elType2);
+            if (out == NULL) {
+                psError(__func__, "Couldn't create a proper output psImage.");
+                return NULL;
+            }
             BINARY_OP(VECTOR, IMAGE, out, psType1, op, psType2);        // vector op image
         } else {
@@ -496,4 +553,9 @@
         }
     } else if (dim1 == PS_DIMEN_IMAGE) {
+        out = psImageRecycle(out, ((psImage*)in1)->numCols, ((psImage*)in1)->numRows, elType1);
+        if (out == NULL) {
+            psError(__func__, "Couldn't create a proper output psImage.");
+            return NULL;
+        }
         if (dim2 == PS_DIMEN_SCALAR) {
             BINARY_OP(IMAGE, SCALAR, out, psType1, op, psType2);        // image op scalar
@@ -503,8 +565,16 @@
             BINARY_OP(IMAGE, IMAGE, out, psType1, op, psType2); // image op image
         } else {
+            if (out != in1 && out != in2) {
+                psFree(out);
+            }
             psError(__func__, ": Line %d - Invalid dimensionality for in2 arg: %d", __LINE__, dim2);
+            return NULL;
         }
     } else {
+        if (out != in1 && out != in2) {
+            psFree(out);
+        }
         psError(__func__, ": Line %d - Invalid dimensionality for in1 arg: %d", __LINE__, dim1);
+        return NULL;
     }
 
@@ -544,5 +614,8 @@
     if(nIn != nOut) {                                                                                        \
         psError(__func__, ": Inconsistent element count: %d vs %d", nIn, nOut);                              \
-        return OUT;                                                                                          \
+        if (OUT != IN) {                                                                                     \
+            psFree(OUT);                                                                                     \
+        }                                                                                                    \
+        return NULL;                                                                                         \
     }                                                                                                        \
     o  = ((psVector* )OUT)->data.TYPE;                                                                       \
@@ -571,5 +644,8 @@
         psError(__func__, ": Inconsistent element count: numRows: %d vs %d numCols: %d vs %d", numRowsIn,    \
                 numRowsOut, numColsIn, numColsOut);                                                          \
-        return OUT;                                                                                          \
+        if (OUT != IN) {                                                                                     \
+            psFree(OUT);                                                                                     \
+        }                                                                                                    \
+        return NULL;                                                                                         \
     }                                                                                                        \
     for(j = 0; j < numRowsIn; j++) {                                                                         \
@@ -597,14 +673,34 @@
     DIM(OUT,IN,OP,C32);                                                                                      \
     break;                                                                                                   \
+case PS_TYPE_S8:                                                                                             \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_U8:                                                                                             \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_S16:                                                                                            \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_U16:                                                                                            \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_U32:                                                                                            \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_S64:                                                                                            \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_U64:                                                                                            \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
+case PS_TYPE_C64:                                                                                            \
+    DIM(OUT,IN,OP,C32);                                                                                      \
+    break;                                                                                                   \
 default:                                                                                                     \
-case PS_TYPE_S8:                                                                                             \
-case PS_TYPE_U8:                                                                                             \
-case PS_TYPE_S16:                                                                                            \
-case PS_TYPE_U16:                                                                                            \
-case PS_TYPE_U32:                                                                                            \
-case PS_TYPE_S64:                                                                                            \
-case PS_TYPE_U64:                                                                                            \
-case PS_TYPE_C64:                                                                                            \
     psError(__func__, ": Invalid PS_TYPE: %d", IN->type);                                                    \
+    if (OUT != IN) {                                                                                         \
+        psFree(OUT);                                                                                         \
+    }                                                                                                        \
+    return NULL;                                                                                             \
 }
 
@@ -725,78 +821,83 @@
 {
     psDimen dimIn = 0;
-    psDimen dimOut = 0;
     psElemType elTypeIn = 0;
-    psElemType elTypeOut = 0;
     psType* psTypeIn = NULL;
-    psType* psTypeOut = NULL;
-
-    psTypeOut = (psType* ) out;
-    if (psTypeOut == NULL) {
-        psError(__func__, ": Line %d - Null out argument", __LINE__);
-        return out;
-    }
 
     psTypeIn = (psType* ) in;
     if (psTypeIn == NULL) {
         psError(__func__, ": Line %d - Null in argument", __LINE__);
-        return out;
+        if (out != in) {
+            psFree(out);
+        }
+        return NULL;
     }
 
     if (op == NULL) {
         psError(__func__, ": Line %d - Null op argument", __LINE__);
-        return out;
+        if (out != in) {
+            psFree(out);
+        }
+        return NULL;
     }
 
     dimIn = psTypeIn->dimen;
-    dimOut = psTypeOut->dimen;
     elTypeIn = psTypeIn->type;
-    elTypeOut = psTypeOut->type;
-
-    if (elTypeIn != elTypeOut) {
-        psError(__func__, ": Line %d - Element types for arguments inconsistent: (%d, %d)", __LINE__,
-                elTypeIn, elTypeOut);
-        return out;
-    }
-
-    if (dimIn != dimOut) {
-        psError(__func__, ": Line %d - Dimensionality for arguments inconsistent: (%d, %d)", __LINE__,
-                dimIn, dimOut);
-        return out;
-    }
-
-    if (dimIn == PS_DIMEN_OTHER || dimOut == PS_DIMEN_OTHER) {
-        psError(__func__, ": Line %d - PS_DIMEN_OTHER not allowed for arguments: (%d, %d)", __LINE__,
-                dimIn, dimOut);
-        return out;
-    }
-
-    if (dimIn == PS_DIMEN_VECTOR) {
-        if (((psVector* ) in)->n == 0) {
+
+    switch (dimIn) {
+    case PS_DIMEN_SCALAR:
+        if (out == NULL ||
+                ((psType*)out)->dimen != PS_DIMEN_SCALAR ||
+                ((psScalar*)out)->type.type != elTypeIn) {
+            psFree(out);
+            out = psScalarAlloc(0.0,elTypeIn);
+        }
+        UNARY_OP(SCALAR, out, psTypeIn, op);    // scalar
+        break;
+    case PS_DIMEN_VECTOR:
+    case PS_DIMEN_TRANSV:
+        if (((psVector*)in)->n == 0) {
+            if (out != in) {
+                psFree(out);
+            }
             psError(__func__, ": Line %d - Vector contains zero elements");
-        }
-    } else if (dimIn == PS_DIMEN_IMAGE) {
+            return NULL;
+        }
+
+        out = psVectorRecycle(out,
+                              ((psVector*)in)->n,
+                              elTypeIn);
+        if (out == NULL) {
+            psError(__func__, "Couldn't create a proper output psVector.");
+            return NULL;
+        }
+
+        UNARY_OP(VECTOR, out, psTypeIn, op);    // vector
+        break;
+    case PS_DIMEN_IMAGE:
         if (((psImage* ) in)->numCols == 0 || ((psImage* ) in)->numRows == 0) {
+            if (out != in) {
+                psFree(out);
+            }
             psError(__func__, ": Line %d - Image contains zero length row or cols");
-        }
-    }
-
-    if (dimOut == PS_DIMEN_VECTOR) {
-        if (((psVector* ) out)->n == 0) {
-            psError(__func__, ": Line %d - Vector contains zero elements");
-        }
-    } else if (dimOut == PS_DIMEN_IMAGE) {
-        if (((psImage* ) out)->numCols == 0 || ((psImage* ) out)->numRows == 0) {
-            psError(__func__, ": Line %d - Image contains zero length row or cols");
-        }
-    }
-
-    if (dimIn == PS_DIMEN_SCALAR) {
-        UNARY_OP(SCALAR, out, psTypeIn, op);    // scalar
-    } else if (dimIn == PS_DIMEN_VECTOR || dimIn == PS_DIMEN_TRANSV) {
-        UNARY_OP(VECTOR, out, psTypeIn, op);    // vector
-    } else if (dimIn == PS_DIMEN_IMAGE) {
+            return NULL;
+        }
+
+        out = psImageRecycle(out,
+                             ((psImage*)in)->numCols,
+                             ((psImage*)in)->numRows,
+                             elTypeIn);
+        if (out == NULL) {
+            psError(__func__, "Couldn't create a proper output psImage.");
+            return NULL;
+        }
+
         UNARY_OP(IMAGE, out, psTypeIn, op);     // image
-    } else {
+        break;
+    default:
+        if (out != in) {
+            psFree(out);
+        }
         psError(__func__, ": Line %d - Invalid dimensionality for in arg: %d", __LINE__, dimIn);
+        return NULL;
     }
 
Index: /trunk/psLib/src/math/psMatrix.c
===================================================================
--- /trunk/psLib/src/math/psMatrix.c	(revision 2020)
+++ /trunk/psLib/src/math/psMatrix.c	(revision 2021)
@@ -1,3 +1,2 @@
-
 /** @file  psMatrix.c
  *
@@ -21,6 +20,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-21 23:44:10 $
+ *  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-08 02:48:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -28,7 +27,5 @@
 
 /******************************************************************************/
-
 /*  INCLUDE FILES                                                             */
-
 /******************************************************************************/
 #include <string.h>
@@ -44,42 +41,4 @@
 #include "psMatrix.h"
 
-/******************************************************************************/
-
-/*  DEFINE STATEMENTS                                                         */
-
-/******************************************************************************/
-
-// None
-
-/******************************************************************************/
-
-/*  TYPE DEFINITIONS                                                          */
-
-/******************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  GLOBAL VARIABLES                                                         */
-
-/*****************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  FILE STATIC VARIABLES                                                    */
-
-/*****************************************************************************/
-
-// None
-
-/*****************************************************************************/
-
-/*  FUNCTION IMPLEMENTATION - LOCAL                                          */
-
-/*****************************************************************************/
-
 /** Preprocessor macro to generate error a NULL image */
 #define PS_CHECK_NULL_VECTOR(NAME, RETURN)                                                          \
@@ -155,7 +114,5 @@
 
 /*****************************************************************************/
-
 /* FUNCTION IMPLEMENTATION - PUBLIC                                          */
-
 /*****************************************************************************/
 
Index: /trunk/psLib/test/astronomy/verified/tst_psAstrometry.stderr
===================================================================
--- /trunk/psLib/test/astronomy/verified/tst_psAstrometry.stderr	(revision 2021)
+++ /trunk/psLib/test/astronomy/verified/tst_psAstrometry.stderr	(revision 2021)
@@ -0,0 +1,24 @@
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psAstrometry.c                                         *
+*            TestPoint: psImage{psExposureAlloc}                                   *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+<DATE><TIME>|<HOST>|E|psTimeAdd
+     : Line <LINENO> - Argument types inconsistent for time addition
+<DATE><TIME>|<HOST>|E|psTimeToJD
+    NULL value not allowed
+<DATE><TIME>|<HOST>|E|psTimeToMJD
+    NULL value not allowed
+
+---> TESTPOINT PASSED (psImage{psExposureAlloc} | tst_psAstrometry.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psAstrometry.c                                         *
+*            TestPoint: psImage{psObservatoryAlloc}                                *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psImage{psObservatoryAlloc} | tst_psAstrometry.c)
+
Index: /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c	(revision 2020)
+++ /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c	(revision 2021)
@@ -15,6 +15,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-08-27 23:31:35 $
+ *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-10-08 02:48:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -86,20 +86,64 @@
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Check for NULL arguments",
                             "Null XXX argument", 0);
-    psBinaryOp(NULL, image1, "+", image2);
-    psBinaryOp(image2, NULL, "+", image2);
-    psBinaryOp(image2, image1, "+", NULL);
-    psBinaryOp(image2, image1, NULL, image2);
-    psUnaryOp(NULL, image1, "sin");
-    psUnaryOp(image2, NULL, "sin");
-    psUnaryOp(image2, image1, NULL);
-    printFooter(stdout, "psBitSet", "Check for NULL arguments", true);
-
+    psImage* image6 = (psImage*)psBinaryOp(NULL, image1, "+", image2);
+    if (image6 == NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp failed to make an image given no output to recycle.");
+        return 1;
+    }
+
+    image6 = (psImage*)psBinaryOp(image6, NULL, "+", image2);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given a NULL first operand.");
+        return 2;
+    }
+
+    image6 = (psImage*)psBinaryOp(image6, image1, "+", NULL);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given a NULL second operand.");
+        return 3;
+    }
+    image6 = (psImage*)psBinaryOp(image6, image1, NULL, image2);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given a NULL operator.");
+        return 4;
+    }
+
+    image6 = (psImage*)psUnaryOp(NULL, image1, "sin");
+    if (image6 == NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp failed to make an image given no output to recycle.");
+        return 5;
+    }
+
+    image6 = (psImage*)psUnaryOp(image6, NULL, "sin");
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp returned a result given a NULL operand.");
+        return 6;
+    }
+
+    image6 = (psImage*)psUnaryOp(image6, image1, NULL);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp returned a result given a NULL operator.");
+        return 7;
+    }
+
+    printFooter(stdout, "psMatrixVectorArithmetic", "Check for NULL arguments", true);
 
     // Inconsistent element types
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Inconsistent element types",
                             "Element types for arguments inconsistent", 0);
-    psBinaryOp(image2, image3, "+", image2);
-    psUnaryOp(image2, image3, "sin");
-    printFooter(stdout, "psBitSet", "Inconsistent element types", true);
+    image6 = (psImage*)psBinaryOp(image6, image3, "+", image2);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given operands of different types.");
+        return 8;
+    }
+
+    image6 = psImageCopy(image6,image2,PS_TYPE_F64);
+    image6 = (psImage*)psUnaryOp(image6, image3, "sin");
+    if (image6 == NULL || image6->type.type != PS_TYPE_F32) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp failed to convert the type of the output.");
+        return 9;
+    }
+
+    printFooter(stdout, "psMatrixVectorArithmetic", "Inconsistent element types", true);
 
 
@@ -107,10 +151,32 @@
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Inconsistent element count",
                             "Inconsistent element count", 0);
-    psBinaryOp(image2, image4, "+", image2);
-    psUnaryOp(image2, image4, "sin");
-    psBinaryOp(image2, vector1, "+", image2);
+    image6 = (psImage*)psBinaryOp(image6, image4, "+", image2);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given operands of different sizes.");
+        return 10;
+    }
+
+    image6 = psImageCopy(image6,image2,PS_TYPE_F64);
+    image6 = (psImage*)psUnaryOp(image6, image4, "sin");
+    if (image6 == NULL ||
+            image6->numCols != image6->numCols ||
+            image6->numRows != image6->numRows) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp failed to resize the output.");
+        return 11;
+    }
+
+    image6 = (psImage*)psBinaryOp(image6, vector1, "+", image2);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given operands of different sizes.");
+        return 12;
+    }
+
     vector1->type.dimen = PS_DIMEN_TRANSV;
-    psBinaryOp(image2, vector1, "+", image2);
-    printFooter(stdout, "psBitSet", "Inconsistent element count", true);
+    image6 = (psImage*)psBinaryOp(image6, vector1, "+", image2);
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned a result given operands of different sizes.");
+        return 13;
+    }
+    printFooter(stdout, "psMatrixVectorArithmetic", "Inconsistent element count", true);
 
 
@@ -118,20 +184,18 @@
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Inconsistent dimensionality",
                             "Dimensionality for arguments inconsistent", 0);
-    psUnaryOp(image2, vector2, "sin");
-    printFooter(stdout, "psBitSet", "Inconsistent dimensionality", true);
-
-
-    // Division by zero
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Divide by zero",
-                            "Divide by zero", 0);
-    psBinaryOp(image1, image1, "/", image2);
-    printFooter(stdout, "psBitSet", "Division by zero", true);
-
+    image6 = psImageCopy(image6,image2,PS_TYPE_F64);
+    image6 = (psImage*)psUnaryOp(image6, vector2, "sin");
+    if (image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp returned result given wrong type out parameter.");
+        return 14;
+    }
+
+    printFooter(stdout, "psMatrixVectorArithmetic", "Inconsistent dimensionality", true);
 
     // Attempt to use min with complex numbers
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Use min with complex numbers",
                             "Minimum operation not supported for complex numbers", 0);
-    psBinaryOp(image5, image5, "min", image5);
-    printFooter(stdout, "psBitSet", "Use min with complex numbers", true);
+    image6 = (psImage*)psBinaryOp(image6, image5, "min", image5);
+    printFooter(stdout, "psMatrixVectorArithmetic", "Use min with complex numbers", true);
 
 
@@ -139,6 +203,6 @@
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Use max with complex numbers",
                             "Maximum operation not supported for complex numbers", 0);
-    psBinaryOp(image5, image5, "max", image5);
-    printFooter(stdout, "psBitSet", "Use max with complex numbers", true);
+    image6 = (psImage*)psBinaryOp(image6, image5, "max", image5);
+    printFooter(stdout, "psMatrixVectorArithmetic", "Use max with complex numbers", true);
 
 
@@ -146,7 +210,7 @@
     printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Invalid operation",
                             "Invalid operation", 0);
-    psBinaryOp(image1, image1, "yarg", image2);
-    psUnaryOp(image2, image1, "yarg");
-    printFooter(stdout, "psBitSet", "Invalid operation", true);
+    image6 = (psImage*)psBinaryOp(image6, image1, "yarg", image2);
+    image6 = (psImage*)psUnaryOp(image6, image1, "yarg");
+    printFooter(stdout, "psMatrixVectorArithmetic", "Invalid operation", true);
 
     return 0;
Index: /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stderr
===================================================================
--- /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stderr	(revision 2020)
+++ /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stderr	(revision 2021)
@@ -1,4 +1,2 @@
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Null out argument
 <DATE><TIME>|<HOST>|E|psBinaryOp
     : Line <LINENO> - Null in1 argument
@@ -8,16 +6,10 @@
     : Line <LINENO> - Null op argument
 <DATE><TIME>|<HOST>|E|psUnaryOp
-    : Line <LINENO> - Null out argument
-<DATE><TIME>|<HOST>|E|psUnaryOp
     : Line <LINENO> - Null in argument
 <DATE><TIME>|<HOST>|E|psUnaryOp
     : Line <LINENO> - Null op argument
 <DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Element types for arguments inconsistent: (1028, 1032, 1032)
-<DATE><TIME>|<HOST>|E|psUnaryOp
     : Line <LINENO> - Element types for arguments inconsistent: (1028, 1032)
 <DATE><TIME>|<HOST>|E|psBinaryOp
-    : Inconsistent element count: numRows: 2 vs 3 numCols: 2 vs 3
-<DATE><TIME>|<HOST>|E|psUnaryOp
     : Inconsistent element count: numRows: 2 vs 3 numCols: 2 vs 3
 <DATE><TIME>|<HOST>|E|psBinaryOp
@@ -25,24 +17,8 @@
 <DATE><TIME>|<HOST>|E|psBinaryOp
     : Inconsistent element count: 2 vs 3
+<DATE><TIME>|<HOST>|E|psLib.collections.psVectorRecycle
+    The input psVector must have a vector dimension type.
 <DATE><TIME>|<HOST>|E|psUnaryOp
-    : Line <LINENO> - Dimensionality for arguments inconsistent: (1, 3)
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
-<DATE><TIME>|<HOST>|E|psNanDiv
-    : Divide by zero
+    Couldn't create a proper output psVector.
 <DATE><TIME>|<HOST>|E|psBinaryOp
     : Minimum operation not supported for complex numbers
Index: /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stdout
===================================================================
--- /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stdout	(revision 2020)
+++ /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stdout	(revision 2021)
@@ -8,5 +8,5 @@
 
 
----> TESTPOINT PASSED (psBitSet{Check for NULL arguments} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Check for NULL arguments} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
@@ -19,5 +19,5 @@
 
 
----> TESTPOINT PASSED (psBitSet{Inconsistent element types} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Inconsistent element types} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
@@ -30,5 +30,5 @@
 
 
----> TESTPOINT PASSED (psBitSet{Inconsistent element count} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Inconsistent element count} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
@@ -41,16 +41,5 @@
 
 
----> TESTPOINT PASSED (psBitSet{Inconsistent dimensionality} | tst_psMatrixVectorArithmetic03.c)
-
-/***************************** TESTPOINT ******************************************\
-*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Divide by zero}                   *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Divide by zero                                             *
-*  ExpectedStatusValue: 0                                                          *
-\**********************************************************************************/
-
-
----> TESTPOINT PASSED (psBitSet{Division by zero} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Inconsistent dimensionality} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
@@ -63,5 +52,5 @@
 
 
----> TESTPOINT PASSED (psBitSet{Use min with complex numbers} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Use min with complex numbers} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
@@ -74,5 +63,5 @@
 
 
----> TESTPOINT PASSED (psBitSet{Use max with complex numbers} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Use max with complex numbers} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
@@ -85,4 +74,4 @@
 
 
----> TESTPOINT PASSED (psBitSet{Invalid operation} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psMatrixVectorArithmetic{Invalid operation} | tst_psMatrixVectorArithmetic03.c)
 
