Index: trunk/psLib/src/collections/psVector.h
===================================================================
--- trunk/psLib/src/collections/psVector.h	(revision 662)
+++ trunk/psLib/src/collections/psVector.h	(revision 663)
@@ -19,6 +19,6 @@
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-13 19:43:49 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-05-13 19:54:26 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -29,4 +29,5 @@
 
 #include <complex.h>
+#include <stdint.h>
 
 /******************************************************************************/
@@ -47,18 +48,24 @@
  */
 typedef enum {
-    PS_TYPE_INT8,                       ///< Character.
-    PS_TYPE_INT16,                      ///< Short integer.
-    PS_TYPE_INT32,                      ///< Integer.
-    PS_TYPE_INT64,                      ///< Long integer.
-    PS_TYPE_UINT8,                      ///< Unsigned character.
-    PS_TYPE_UINT16,                     ///< Unsigned short integer.
-    PS_TYPE_UINT32,                     ///< Unsigned integer.
-    PS_TYPE_UINT64,                     ///< Unsigned long integer.
-    PS_TYPE_FLOAT,                      ///< Single-precision Floating point.
-    PS_TYPE_DOUBLE,                     ///< Double-precision floating point.
-    PS_TYPE_COMPLEX_FLOAT,              ///< Complex numbers consisting of single-precision floating point.
-    PS_TYPE_COMPLEX_DOUBLE,             ///< Complex numbers consisting of double-precision floating point.
-    PS_TYPE_OTHER,                      ///< Something else that's not supported for arithmetic.
+    PS_TYPE_INT8 = 0x11,              ///< Character.
+    PS_TYPE_INT16 = 0x12,             ///< Short integer.
+    PS_TYPE_INT32 = 0x14,             ///< Integer.
+    PS_TYPE_INT64 = 0x18,             ///< Long integer.
+    PS_TYPE_UINT8 = 0x31,             ///< Unsigned character.
+    PS_TYPE_UINT16 = 0x32,            ///< Unsigned short integer.
+    PS_TYPE_UINT32 = 0x34,            ///< Unsigned integer.
+    PS_TYPE_UINT64 = 0x38,            ///< Unsigned long integer.
+    PS_TYPE_FLOAT = 0x44,             ///< Single-precision Floating point.
+    PS_TYPE_DOUBLE = 0x48,            ///< Double-precision floating point.
+    PS_TYPE_COMPLEX_FLOAT = 0x84,     ///< Complex numbers consisting of single-precision floating point.
+    PS_TYPE_COMPLEX_DOUBLE = 0x88,    ///< Complex numbers consisting of double-precision floating point.
+    PS_TYPE_OTHER,                    ///< Something else that's not supported for arithmetic.} psElemType;
 } psElemType;
+
+#define IS_PSELEMTYPE_INT(x) (x & 0x10 == 0x10)
+#define IS_PSELEMTYPE_UNSIGNED(x) (x & 0x20 == 0x20)
+#define IS_PSELEMTYPE_REAL(x) (x & 0x40 == 0x40)
+#define IS_PSELEMTYPE_COMPLEX(x) (x & 0x80 == 0x80)
+#define PSELEMTYPE_SIZEOF(x) (x & 0x0F)
 
 /** Dimensions of a data type.
@@ -77,5 +84,5 @@
 /** The type of a data type.
  *
- * All psLib complex types consist of primitive components. This struct provides the description of those 
+ * All psLib complex types consist of primitive components. This struct provides the description of those
  * primitives.
  *
