Index: /trunk/psLib/src/math/psPolynomial.c
===================================================================
--- /trunk/psLib/src/math/psPolynomial.c	(revision 6499)
+++ /trunk/psLib/src/math/psPolynomial.c	(revision 6500)
@@ -7,6 +7,6 @@
 *  polynomials.  It also contains a Gaussian functions.
 *
-*  @version $Revision: 1.144 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-02-24 23:43:15 $
+*  @version $Revision: 1.145 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-02-28 02:53:02 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -262,4 +262,5 @@
         // General case where the Chebyshev poly has 2 or more terms.
         d = psVectorAlloc(nTerms, PS_TYPE_F64);
+        d->n = d->nalloc;
         if(poly->mask[nTerms-1] == 0) {
             d->data.F64[nTerms-1] = poly->coeff[nTerms-1];
Index: /trunk/psLib/src/mathtypes/psVector.c
===================================================================
--- /trunk/psLib/src/mathtypes/psVector.c	(revision 6499)
+++ /trunk/psLib/src/mathtypes/psVector.c	(revision 6500)
@@ -9,6 +9,6 @@
 *  @author Robert DeSonia, MHPCC
 *
-*  @version $Revision: 1.65 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-02-24 23:43:15 $
+*  @version $Revision: 1.66 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-02-28 02:53:03 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -1001,2 +1001,13 @@
 }
 
+long psVectorLength(const psVector *vector)
+{
+    if ( !psMemCheckVector((psVector*)vector) ) {
+        psError(PS_ERR_BAD_PARAMETER_TYPE, true,
+                "Error:  Specified vector is not a valid psVector \n");
+        return -1;
+    }
+    return (vector->n);
+}
+
+
Index: /trunk/psLib/src/mathtypes/psVector.h
===================================================================
--- /trunk/psLib/src/mathtypes/psVector.h	(revision 6499)
+++ /trunk/psLib/src/mathtypes/psVector.h	(revision 6500)
@@ -11,6 +11,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.51 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-01-28 01:12:14 $
+ *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -260,4 +260,13 @@
 );
 
+/** Get the number of elements in use from a specified psVector. (vector.n)
+ *
+ *  @return long:       The number of elements in use.
+ */
+long psVectorLength(
+    const psVector *vector             ///< input psVector
+);
+
+
 /// @}
 
Index: /trunk/psLib/src/sys/psMemory.c
===================================================================
--- /trunk/psLib/src/sys/psMemory.c	(revision 6499)
+++ /trunk/psLib/src/sys/psMemory.c	(revision 6500)
@@ -8,6 +8,6 @@
 *  @author Robert Lupton, Princeton University
 *
-*  @version $Revision: 1.69 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-02-14 00:09:27 $
+*  @version $Revision: 1.70 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-02-28 02:53:03 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -828,5 +828,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -835,46 +836,30 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-            break;
-        }
-        /*    case PS_DATA_CELL:
-                if ( psMemCheckCell(ptr) )
-                    return true;
-                else
-                {
-                    psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-                    break;
-                }
-            case PS_DATA_CHIP:
-                if ( psMemCheckChip(ptr) )
-                    return true;
-                else
-                {
-                    psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-                    break;
-                }
-        */
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
+            break;
+        }
     case PS_DATA_CUBE:
         if ( psMemCheckCube(ptr) )
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-            break;
-        }
-
-
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
+            break;
+        }
     case PS_DATA_FITS:
         if ( psMemCheckFits(ptr) )
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-            break;
-        }
-
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
+            break;
+        }
     case PS_DATA_HASH:
         if ( psMemCheckHash(ptr) )
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -883,5 +868,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -890,5 +876,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -897,5 +884,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -904,5 +892,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -911,5 +900,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -918,5 +908,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -925,5 +916,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -932,5 +924,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -939,5 +932,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -946,5 +940,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -953,5 +948,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -960,5 +956,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -967,5 +964,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -974,5 +972,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -981,5 +980,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -988,5 +988,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -995,31 +996,14 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-            break;
-        }
-
-        /*    case PS_DATA_READOUT:
-                if ( psMemCheckReadout(ptr) )
-                    return true;
-                else
-                {
-                    psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-                    break;
-                }
-
-        *//*    case PS_DATA_REGION:
-                if ( psMemCheckRegion(ptr) )
-                    return true;
-                else
-                {
-                    psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
-                    break;
-                }
-        */
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
+            break;
+        }
     case PS_DATA_SCALAR:
         if ( psMemCheckScalar(ptr) )
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -1028,5 +1012,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -1035,5 +1020,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -1042,5 +1028,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -1049,5 +1036,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -1056,5 +1044,6 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
@@ -1063,9 +1052,11 @@
             return true;
         else {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Incorrect pointer.  Datatypes do not match.\n");
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                    "Incorrect pointer.  Datatypes do not match.\n");
             break;
         }
     default:
-        psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Invalid datatype specified.\n");
+        psError(PS_ERR_BAD_PARAMETER_TYPE, true,
+                "Invalid datatype specified.\n");
     }
     return false;
Index: /trunk/psLib/src/sys/psMemory.h
===================================================================
--- /trunk/psLib/src/sys/psMemory.h	(revision 6499)
+++ /trunk/psLib/src/sys/psMemory.h	(revision 6500)
@@ -12,6 +12,6 @@
  *  @ingroup MemoryManagement
  *
- *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-10 02:44:46 $
+ *  @version $Revision: 1.53 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
Index: /trunk/psLib/src/types/psArray.c
===================================================================
--- /trunk/psLib/src/types/psArray.c	(revision 6499)
+++ /trunk/psLib/src/types/psArray.c	(revision 6500)
@@ -9,6 +9,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.42 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-24 23:43:15 $
+ *  @version $Revision: 1.43 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -241,2 +241,13 @@
     return psMemIncrRefCounter(array->data[position]);
 }
+
+long psArrayLength(const psArray *array)
+{
+    if ( !psMemCheckArray((psArray*)array) ) {
+        psError(PS_ERR_BAD_PARAMETER_TYPE, true,
+                "Error:  Specified array is not a valid psArray \n");
+        return -1;
+    }
+    return (array->n);
+}
+
Index: /trunk/psLib/src/types/psArray.h
===================================================================
--- /trunk/psLib/src/types/psArray.h	(revision 6499)
+++ /trunk/psLib/src/types/psArray.h	(revision 6500)
@@ -11,6 +11,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-16 23:06:35 $
+ *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -160,4 +160,12 @@
 );
 
+/** Get the number of elements in use from a specified psArray. (array.n)
+ *
+ *  @return long:       The number of elements in use.
+ */
+long psArrayLength(
+    const psArray *array               ///< input psArray
+);
+
 /// @}
 
Index: /trunk/psLib/src/types/psList.c
===================================================================
--- /trunk/psLib/src/types/psList.c	(revision 6499)
+++ /trunk/psLib/src/types/psList.c	(revision 6500)
@@ -6,6 +6,6 @@
  *  @author Robert Daniel DeSonia, MHPCC
  *
- *  @version $Revision: 1.47 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-14 00:09:27 $
+ *  @version $Revision: 1.48 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -621,2 +621,13 @@
 }
 
+long psListLength(const psList *list)
+{
+    if ( !psMemCheckList((psList*)list) ) {
+        psError(PS_ERR_BAD_PARAMETER_TYPE, true,
+                "Error:  Specified list is not a valid psList \n");
+        return -1;
+    }
+    return (list->n);
+}
+
+
Index: /trunk/psLib/src/types/psList.h
===================================================================
--- /trunk/psLib/src/types/psList.h	(revision 6499)
+++ /trunk/psLib/src/types/psList.h	(revision 6500)
@@ -7,6 +7,6 @@
  *  @ingroup LinkedList
  *
- *  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-14 00:09:27 $
+ *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -232,4 +232,13 @@
 );
 
+/** Get the number of elements in use from a specified psList. (list.n)
+ *
+ *  @return long:       The number of elements in use.
+ */
+long psListLength(
+    const psList *list                 ///< input psList
+);
+
+
 /// @} End of DataGroup Functions
 
Index: /trunk/psLib/src/types/psPixels.c
===================================================================
--- /trunk/psLib/src/types/psPixels.c	(revision 6499)
+++ /trunk/psLib/src/types/psPixels.c	(revision 6500)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-16 23:06:35 $
+ *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -65,5 +65,5 @@
         out->data = NULL;
     }
-    out->n = nalloc;
+    out->n = 0;
     P_PSPIXELS_SET_NALLOC(out,nalloc);
 
@@ -409,2 +409,12 @@
 }
 
+long psPixelsLength(const psPixels *pixels)
+{
+    if ( !psMemCheckPixels((psPixels*)pixels) ) {
+        psError(PS_ERR_BAD_PARAMETER_TYPE, true,
+                "Error:  Specified pixels is not a valid psPixels \n");
+        return -1;
+    }
+    return (pixels->n);
+}
+
Index: /trunk/psLib/src/types/psPixels.h
===================================================================
--- /trunk/psLib/src/types/psPixels.h	(revision 6499)
+++ /trunk/psLib/src/types/psPixels.h	(revision 6500)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-01-28 01:31:44 $
+ *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -185,3 +185,11 @@
 );
 
+/** Get the number of elements in use from a specified psPixels. (pixels.n)
+ *
+ *  @return long:       The number of elements in use.
+ */
+long psPixelsLength(
+    const psPixels *pixels             ///< input psPixels
+);
+
 #endif // #ifndef PS_PIXELS_H
Index: /trunk/psLib/test/astro/tst_psCoord.c
===================================================================
--- /trunk/psLib/test/astro/tst_psCoord.c	(revision 6499)
+++ /trunk/psLib/test/astro/tst_psCoord.c	(revision 6500)
@@ -6,6 +6,6 @@
 *  @author GLG, MHPCC
 *
-*  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-02-08 21:30:09 $
+*  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-02-28 02:53:03 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -437,4 +437,5 @@
 
     input = psPixelsAlloc(2);
+    input->n = 2;
     input->data[0].x = 1.0;
     input->data[0].y = 1.0;
Index: /trunk/psLib/test/mathtypes/tst_psVector.c
===================================================================
--- /trunk/psLib/test/mathtypes/tst_psVector.c	(revision 6499)
+++ /trunk/psLib/test/mathtypes/tst_psVector.c	(revision 6500)
@@ -14,6 +14,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2006-02-24 23:43:16 $
+ *  @version $Revision: 1.11 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -33,4 +33,5 @@
 static psS32 testVectorGetSet(void);
 static psS32 testVectorCountPixelMask(void);
+static psS32 testVectorLength(void);
 
 testDescription tests[] = {
@@ -44,4 +45,5 @@
                               {testVectorGetSet,-8,"psVectorGet/Set",0,false},
                               {testVectorCountPixelMask,-9,"psVectorCountPixelMask",0,false},
+                              {testVectorLength,666,"psVectorLength",0,false},
                               {NULL}
                           };
@@ -548,2 +550,45 @@
 }
 
+psS32 testVectorLength( void )
+{
+    psVector *vector = psVectorAlloc(5, PS_TYPE_F32);
+
+    if (psVectorLength(vector) != 0) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psVectorLength failed to return the correct length of vector.\n");
+        return 1;
+    }
+    vector->n = 5;
+    if (psVectorLength(vector) != 5) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psVectorLength failed to return the correct length of vector.\n");
+        return 2;
+    }
+    vector->n++;
+    if (psVectorLength(vector) != 6) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psVectorLength failed to return the correct length of vector.\n");
+        return 3;
+    }
+    psFree(vector);
+
+    psVector *emptyVector = NULL;
+    psArray *array = psArrayAlloc(5);
+
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psVectorLength(emptyVector) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psVectorLength failed to return -1 for a NULL input vector.\n");
+        return 4;
+    }
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psVectorLength((psVector*)array) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psVectorLength failed to return -1 for an invalid input vector.\n");
+        return 5;
+    }
+    psFree(array);
+
+    return 0;
+}
+
Index: /trunk/psLib/test/mathtypes/verified/tst_psVector.stderr
===================================================================
--- /trunk/psLib/test/mathtypes/verified/tst_psVector.stderr	(revision 6499)
+++ /trunk/psLib/test/mathtypes/verified/tst_psVector.stderr	(revision 6500)
@@ -108,2 +108,19 @@
 ---> TESTPOINT PASSED (psVector{psVectorCountPixelMask} | tst_psVector.c)
 
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psVector.c                                             *
+*            TestPoint: psVector{psVectorLength}                                   *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+<HOST>|I|testVectorLength
+    Following should generate error message
+<HOST>|E|psVectorLength (FILE:LINENO)
+    Error:  Specified vector is not a valid psVector 
+<HOST>|I|testVectorLength
+    Following should generate error message
+<HOST>|E|psVectorLength (FILE:LINENO)
+    Error:  Specified vector is not a valid psVector 
+
+---> TESTPOINT PASSED (psVector{psVectorLength} | tst_psVector.c)
+
Index: /trunk/psLib/test/types/tst_psArray.c
===================================================================
--- /trunk/psLib/test/types/tst_psArray.c	(revision 6499)
+++ /trunk/psLib/test/types/tst_psArray.c	(revision 6500)
@@ -17,6 +17,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2006-02-17 03:24:46 $
+ *  @version $Revision: 1.6 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -53,5 +53,5 @@
 static psS32 testArrayAdd( void );
 static psS32 testArrayGetSet( void );
-
+static psS32 testArrayLength( void );
 
 testDescription tests[] = {
@@ -60,4 +60,5 @@
                               {testArrayAdd, 667, "psArrayAdd", 0, false},
                               {testArrayGetSet, 668, "psArrayGetSet", 0, false},
+                              {testArrayLength, 669, "psArrayLength", 0, false},
                               {NULL}
                           };
@@ -464,4 +465,5 @@
     if ( !psArraySet(test, 0, p1) )
         fprintf(stderr, "ArraySet failed to set S32 at position 0\n");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     if ( psArraySet(test, 10, p1) )
         fprintf(stderr, "ArraySet Improperly set S32 at out of range position\n");
@@ -475,4 +477,5 @@
     psFree(p2); // free ref from psArrayGet
 
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     if ( psArraySet(test, -6, p3) )
         fprintf(stderr, "ArraySet failed to fail using an out of range negative number\n");
@@ -485,2 +488,46 @@
     return 0;
 }
+
+psS32 testArrayLength( void )
+{
+    psArray *array = psArrayAlloc(5);
+
+    if (psArrayLength(array) != 0) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psArrayLength failed to return the correct length of array.\n");
+        return 1;
+    }
+    array->n = 5;
+    if (psArrayLength(array) != 5) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psArrayLength failed to return the correct length of array.\n");
+        return 2;
+    }
+    array->n++;
+    if (psArrayLength(array) != 6) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psArrayLength failed to return the correct length of array.\n");
+        return 3;
+    }
+    psFree(array);
+
+    psArray *emptyArray = NULL;
+    psVector *vector = psVectorAlloc(5, PS_TYPE_F32);
+
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psArrayLength(emptyArray) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psArrayLength failed to return -1 for a NULL input array.\n");
+        return 4;
+    }
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psArrayLength((psArray*)vector) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psArrayLength failed to return -1 for an invalid input array.\n");
+        return 5;
+    }
+    psFree(vector);
+
+    return 0;
+}
+
Index: /trunk/psLib/test/types/tst_psList.c
===================================================================
--- /trunk/psLib/test/types/tst_psList.c	(revision 6499)
+++ /trunk/psLib/test/types/tst_psList.c	(revision 6500)
@@ -6,6 +6,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-07-13 02:47:01 $
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -28,4 +28,5 @@
 static psS32 testListAddAfter(void);
 static psS32 testListAddBefore(void);
+static psS32 testListLength(void);
 
 testDescription tests[] = {
@@ -40,4 +41,5 @@
                               {testListAddAfter,811,"psListAddAfter",0,false},
                               {testListAddBefore,811,"psListAddBefore",0,false},
+                              {testListLength,666,"testListLength",0,false},
                               {NULL}
                           };
@@ -1271,2 +1273,48 @@
     return 0;
 }
+
+psS32 testListLength( void )
+{
+    psArray *temp = psArrayAlloc(5);
+    psList *list = psListAlloc(temp);
+
+    if (psListLength(list) != 1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psListLength failed to return the correct length of list.\n");
+        return 1;
+    }
+    list->n = 5;
+    if (psListLength(list) != 5) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psListLength failed to return the correct length of list.\n");
+        return 2;
+    }
+    list->n++;
+    if (psListLength(list) != 6) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psListLength failed to return the correct length of list.\n");
+        return 3;
+    }
+    psFree(temp);
+    psFree(list);
+
+    psList *emptyList = NULL;
+    psVector *vector = psVectorAlloc(5, PS_TYPE_F32);
+
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psListLength(emptyList) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psListLength failed to return -1 for a NULL input list.\n");
+        return 4;
+    }
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psListLength((psList*)vector) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psListLength failed to return -1 for an invalid input list.\n");
+        return 5;
+    }
+    psFree(vector);
+
+    return 0;
+}
+
Index: /trunk/psLib/test/types/tst_psPixels.c
===================================================================
--- /trunk/psLib/test/types/tst_psPixels.c	(revision 6499)
+++ /trunk/psLib/test/types/tst_psPixels.c	(revision 6500)
@@ -5,7 +5,7 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.3 $
+ *  @version $Revision: 1.4 $
  *           $Name: not supported by cvs2svn $
- *  @date $Date: 2005-10-01 00:14:17 $
+ *  @date $Date: 2006-02-28 02:53:03 $
  *
  *  Copyright 2005 Maui High Performance Computing Center, University of Hawaii
@@ -22,4 +22,5 @@
 static int testPixelsConcatenate(void);
 static psS32 testPixelsGetSet(void);
+static psS32 testPixelsLength( void );
 
 testDescription tests[] = {
@@ -31,4 +32,5 @@
                               {testPixelsConcatenate,866,"psPixelsConcatenate",0,false},
                               {testPixelsGetSet,867,"psPixelsGet/Set",0,false},
+                              {testPixelsLength,666,"psPixelsLength",0,false},
                               {NULL}
                           };
@@ -85,5 +87,5 @@
     p1->data[0].x = 1;
     p1->data[0].y = 2;
-
+    p1->n++;
     if (p1->n != p1->nalloc) {
         psError(PS_ERR_UNKNOWN, true,
@@ -113,4 +115,5 @@
         p2->data[i].x = i;
         p2->data[i].y = 100+i;
+        p2->n++;
     }
 
@@ -140,4 +143,5 @@
     // first, tests that reallocing a NULL just allocates
     psPixels* p0 = psPixelsRealloc(NULL,10);
+    p0->n = 10;
 
     if (p0 == NULL) {
@@ -168,4 +172,5 @@
 
     psPixels* p1 = psPixelsRealloc(p0, 20);
+    //    p1->n = 20;
 
     if (p1 != p0) {
@@ -205,5 +210,5 @@
 
     psPixels* p2 = psPixelsRealloc(p1,5);
-
+    p2->n = 5;
     if (p2 != p1) {
         psError(PS_ERR_UNKNOWN, true,
@@ -546,2 +551,45 @@
 }
 
+psS32 testPixelsLength( void )
+{
+    psPixels *pixels = psPixelsAlloc(5);
+
+    if (psPixelsLength(pixels) != 0) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psPixelsLength failed to return the correct length of pixels.\n");
+        return 1;
+    }
+    pixels->n = 5;
+    if (psPixelsLength(pixels) != 5) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psPixelsLength failed to return the correct length of pixels.\n");
+        return 2;
+    }
+    pixels->n++;
+    if (psPixelsLength(pixels) != 6) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psPixelsLength failed to return the correct length of pixels.\n");
+        return 3;
+    }
+    psFree(pixels);
+
+    psPixels *emptyPixels = NULL;
+    psVector *vector = psVectorAlloc(5, PS_TYPE_F32);
+
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psPixelsLength(emptyPixels) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psPixelsLength failed to return -1 for a NULL input pixels.\n");
+        return 4;
+    }
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psPixelsLength((psPixels*)vector) != -1) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "psPixelsLength failed to return -1 for an invalid input pixels.\n");
+        return 5;
+    }
+    psFree(vector);
+
+    return 0;
+}
+
Index: /trunk/psLib/test/types/verified/tst_psArray.stderr
===================================================================
--- /trunk/psLib/test/types/verified/tst_psArray.stderr	(revision 6499)
+++ /trunk/psLib/test/types/verified/tst_psArray.stderr	(revision 6500)
@@ -225,6 +225,10 @@
 \**********************************************************************************/
 
+<DATE><TIME>|<HOST>|I|testArrayGetSet
+    Following should generate error message
 <DATE><TIME>|<HOST>|E|psArraySet (FILE:LINENO)
     Specified position, 10, is greater than n+1 of the array, 1.
+<DATE><TIME>|<HOST>|I|testArrayGetSet
+    Following should generate error message
 <DATE><TIME>|<HOST>|E|psArraySet (FILE:LINENO)
     Invalid position.  Negative number too large
@@ -232,2 +236,19 @@
 ---> TESTPOINT PASSED (psArray{psArrayGetSet} | tst_psArray.c)
 
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psArray.c                                              *
+*            TestPoint: psArray{psArrayLength}                                     *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+<DATE><TIME>|<HOST>|I|testArrayLength
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psArrayLength (FILE:LINENO)
+    Error:  Specified array is not a valid psArray 
+<DATE><TIME>|<HOST>|I|testArrayLength
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psArrayLength (FILE:LINENO)
+    Error:  Specified array is not a valid psArray 
+
+---> TESTPOINT PASSED (psArray{psArrayLength} | tst_psArray.c)
+
Index: /trunk/psLib/test/types/verified/tst_psList.stderr
===================================================================
--- /trunk/psLib/test/types/verified/tst_psList.stderr	(revision 6499)
+++ /trunk/psLib/test/types/verified/tst_psList.stderr	(revision 6500)
@@ -165,2 +165,19 @@
 ---> TESTPOINT PASSED (psList{psListAddBefore} | tst_psList.c)
 
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psList.c                                               *
+*            TestPoint: psList{testListLength}                                     *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+<DATE><TIME>|<HOST>|I|testListLength
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psListLength (FILE:LINENO)
+    Error:  Specified list is not a valid psList 
+<DATE><TIME>|<HOST>|I|testListLength
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psListLength (FILE:LINENO)
+    Error:  Specified list is not a valid psList 
+
+---> TESTPOINT PASSED (psList{testListLength} | tst_psList.c)
+
Index: /trunk/psLib/test/types/verified/tst_psPixels.stderr
===================================================================
--- /trunk/psLib/test/types/verified/tst_psPixels.stderr	(revision 6499)
+++ /trunk/psLib/test/types/verified/tst_psPixels.stderr	(revision 6500)
@@ -84,2 +84,19 @@
 ---> TESTPOINT PASSED (psPixels{psPixelsGet/Set} | tst_psPixels.c)
 
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psPixels.c                                             *
+*            TestPoint: psPixels{psPixelsLength}                                   *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+<DATE><TIME>|<HOST>|I|testPixelsLength
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psPixelsLength (FILE:LINENO)
+    Error:  Specified pixels is not a valid psPixels 
+<DATE><TIME>|<HOST>|I|testPixelsLength
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psPixelsLength (FILE:LINENO)
+    Error:  Specified pixels is not a valid psPixels 
+
+---> TESTPOINT PASSED (psPixels{psPixelsLength} | tst_psPixels.c)
+
