Index: trunk/psLib/src/collections/psVector.c
===================================================================
--- trunk/psLib/src/collections/psVector.c	(revision 3407)
+++ trunk/psLib/src/collections/psVector.c	(revision 3476)
@@ -9,6 +9,6 @@
 *  @author Robert DeSonia, MHPCC
 *
-*  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2005-03-11 20:38:56 $
+*  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2005-03-22 21:52:49 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -37,5 +37,5 @@
     }
 
-    psFree(psVec->data.V);
+    psFree(psVec->data.U8);
 }
 
@@ -59,5 +59,5 @@
 
     // Create vector data array
-    psVec->data.V = psAlloc(nalloc * elementSize);
+    psVec->data.U8 = psAlloc(nalloc * elementSize);
 
     return psVec;
@@ -80,5 +80,5 @@
         }
         // Realloc after decrementation to avoid accessing freed array elements
-        in->data.V = psRealloc(in->data.V, nalloc * elementSize);
+        in->data.U8 = psRealloc(in->data.U8, nalloc * elementSize);
         in->nalloc = nalloc;
     }
@@ -107,5 +107,5 @@
     // need to increase data buffer?
     if (byteSize > in->nalloc*PSELEMTYPE_SIZEOF(in->type.type)) {
-        in->data.V = psRealloc(in->data.V, byteSize);
+        in->data.U8 = psRealloc(in->data.U8, byteSize);
         in->nalloc = n;
     }
@@ -235,5 +235,5 @@
     inType = inVector->type.type;
     N = inVector->n;
-    inVec = inVector->data.V;
+    inVec = (psPtr)inVector->data.U8;
     elSize = PSELEMTYPE_SIZEOF(inType);
 
@@ -249,5 +249,5 @@
     }
     outVector->n = N;
-    outVec = outVector->data.V;
+    outVec = outVector->data.U8;
 
     if (N == 0) {
@@ -496,2 +496,46 @@
 }
 
+psF64 p_psVectorGetElementF64(psVector* vector,
+                              int position)
+{
+    if (vector == NULL) {
+        return NAN;
+    }
+    if (position < 0 || position >= vector->n) {
+        return NAN;
+    }
+
+    switch (vector->type.type) {
+    case PS_TYPE_U8:
+        return vector->data.U8[position];
+        break;
+    case PS_TYPE_U16:
+        return vector->data.U16[position];
+        break;
+    case PS_TYPE_U32:
+        return vector->data.U32[position];
+        break;
+    case PS_TYPE_U64:
+        return vector->data.U64[position];
+        break;
+    case PS_TYPE_S8:
+        return vector->data.S8[position];
+        break;
+    case PS_TYPE_S16:
+        return vector->data.S16[position];
+        break;
+    case PS_TYPE_S32:
+        return vector->data.S32[position];
+        break;
+    case PS_TYPE_S64:
+        return vector->data.S64[position];
+        break;
+    case PS_TYPE_F32:
+        return vector->data.F32[position];
+        break;
+    case PS_TYPE_F64:
+        return vector->data.F64[position];
+    default:
+        return NAN;
+    }
+}
