Index: trunk/psLib/src/collections/psArray.c
===================================================================
--- trunk/psLib/src/collections/psArray.c	(revision 486)
+++ trunk/psLib/src/collections/psArray.c	(revision 493)
@@ -8,6 +8,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-21 00:40:32 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-04-21 18:53:10 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -179,2 +179,86 @@
     p_psFree(psArr, __FILE__, __LINE__);
 }
+
+psComplexArray* psComplexArrayAlloc(int nalloc)
+{
+    psComplexArray *psArr = (psComplexArray*)p_psAlloc(sizeof(psComplexArray), __FILE__, __LINE__);
+    psArr->type.dimen = PS_DIMEN_VECTOR;
+    psArr->type.type = PS_TYPE_COMPLEX;
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+
+    if(nalloc == 0) {
+        psArr->arr = NULL;
+    } else {
+        psArr->arr = p_psAlloc(nalloc*sizeof(complex float), __FILE__, __LINE__);
+    }
+
+    return psArr;
+}
+
+psComplexArray *psComplexArrayRealloc(psComplexArray *psArr, int nalloc)
+{
+    if(psArr == NULL) {
+        return psComplexArrayAlloc(nalloc);
+    }
+    if(nalloc <= psArr->nalloc) {
+        if (psArr->n < nalloc) {
+            psArr->n = nalloc;
+        }
+    } else {
+        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(complex float), __FILE__, __LINE__);
+        psArr->nalloc = nalloc;
+    }
+    return psArr;
+}
+
+void psComplexArrayFree(psComplexArray *restrict psArr)
+{
+    if (psArr == NULL) {
+        return;
+    }
+    p_psFree(psArr->arr, __FILE__, __LINE__);
+    p_psFree(psArr, __FILE__, __LINE__);
+}
+
+psVoidPtrArray* psVoidPtrArrayAlloc(int nalloc)
+{
+    psVoidPtrArray *psArr = (psVoidPtrArray*)p_psAlloc(sizeof(psVoidPtrArray), __FILE__, __LINE__);
+    psArr->type.dimen = PS_DIMEN_VECTOR;
+    psArr->type.type = PS_TYPE_OTHER;
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+
+    if(nalloc == 0) {
+        psArr->arr = NULL;
+    } else {
+        psArr->arr = p_psAlloc(nalloc*sizeof(void*), __FILE__, __LINE__);
+    }
+
+    return psArr;
+}
+
+psVoidPtrArray *psVoidPtrArrayRealloc(psVoidPtrArray *psArr, int nalloc)
+{
+    if(psArr == NULL) {
+        return psVoidPtrArrayAlloc(nalloc);
+    }
+    if(nalloc <= psArr->nalloc) {
+        if (psArr->n < nalloc) {
+            psArr->n = nalloc;
+        }
+    } else {
+        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(void*), __FILE__, __LINE__);
+        psArr->nalloc = nalloc;
+    }
+    return psArr;
+}
+
+void psVoidPtrArrayFree(psVoidPtrArray *restrict psArr, void (*elemFree)(void *))
+{
+    if (psArr == NULL) {
+        return;
+    }
+    p_psFree(psArr->arr, __FILE__, __LINE__);
+    p_psFree(psArr, __FILE__, __LINE__);
+}
