Index: /trunk/psLib/src/collections/psCompare.c
===================================================================
--- /trunk/psLib/src/collections/psCompare.c	(revision 3443)
+++ /trunk/psLib/src/collections/psCompare.c	(revision 3444)
@@ -7,6 +7,6 @@
  *  @author Robert Daniel DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-02-17 19:26:23 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-03-17 19:26:19 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -43,6 +43,16 @@
 COMPARE_NUMERIC_PTR(U32)
 COMPARE_NUMERIC_PTR(U64)
-COMPARE_NUMERIC_PTR(F32)
-COMPARE_NUMERIC_PTR(F64)
+
+int psCompareF32Ptr(const void** a, const void** b)
+{
+    psF32 diff = **((psF32**)a) - **((psF32**)b);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareF64Ptr(const void** a, const void** b)
+{
+    psF64 diff = **((psF64**)a) - **((psF64**)b);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
 
 COMPARE_NUMERIC_PTR_DESCENDING(S8)
@@ -54,6 +64,16 @@
 COMPARE_NUMERIC_PTR_DESCENDING(U32)
 COMPARE_NUMERIC_PTR_DESCENDING(U64)
-COMPARE_NUMERIC_PTR_DESCENDING(F32)
-COMPARE_NUMERIC_PTR_DESCENDING(F64)
+
+int psCompareDescendingF32Ptr(const void** a, const void** b)
+{
+    psF32 diff = **((psF32**)b) - **((psF32**)a);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareDescendingF64Ptr(const void** a, const void** b)
+{
+    psF64 diff = **((psF64**)b) - **((psF64**)a);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
 
 COMPARE_NUMERIC(S8)
@@ -65,6 +85,16 @@
 COMPARE_NUMERIC(U32)
 COMPARE_NUMERIC(U64)
-COMPARE_NUMERIC(F32)
-COMPARE_NUMERIC(F64)
+
+int psCompareF32(const void* a, const void* b)
+{
+    psF32 diff = *((psF32*)a) - *((psF32*)b);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareF64(const void* a, const void* b)
+{
+    psF64 diff = *((psF64*)a) - *((psF64*)b);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
 
 COMPARE_NUMERIC_DESCENDING(S8)
@@ -76,4 +106,14 @@
 COMPARE_NUMERIC_DESCENDING(U32)
 COMPARE_NUMERIC_DESCENDING(U64)
-COMPARE_NUMERIC_DESCENDING(F32)
-COMPARE_NUMERIC_DESCENDING(F64)
+
+int psCompareDescendingF32(const void* a, const void* b)
+{
+    psF32 diff = *((psF32*)b) - *((psF32*)a);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareDescendingF64(const void* a, const void* b)
+{
+    psF64 diff = *((psF64*)b) - *((psF64*)a);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
Index: /trunk/psLib/src/math/psCompare.c
===================================================================
--- /trunk/psLib/src/math/psCompare.c	(revision 3443)
+++ /trunk/psLib/src/math/psCompare.c	(revision 3444)
@@ -7,6 +7,6 @@
  *  @author Robert Daniel DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-02-17 19:26:23 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-03-17 19:26:19 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -43,6 +43,16 @@
 COMPARE_NUMERIC_PTR(U32)
 COMPARE_NUMERIC_PTR(U64)
-COMPARE_NUMERIC_PTR(F32)
-COMPARE_NUMERIC_PTR(F64)
+
+int psCompareF32Ptr(const void** a, const void** b)
+{
+    psF32 diff = **((psF32**)a) - **((psF32**)b);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareF64Ptr(const void** a, const void** b)
+{
+    psF64 diff = **((psF64**)a) - **((psF64**)b);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
 
 COMPARE_NUMERIC_PTR_DESCENDING(S8)
@@ -54,6 +64,16 @@
 COMPARE_NUMERIC_PTR_DESCENDING(U32)
 COMPARE_NUMERIC_PTR_DESCENDING(U64)
-COMPARE_NUMERIC_PTR_DESCENDING(F32)
-COMPARE_NUMERIC_PTR_DESCENDING(F64)
+
+int psCompareDescendingF32Ptr(const void** a, const void** b)
+{
+    psF32 diff = **((psF32**)b) - **((psF32**)a);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareDescendingF64Ptr(const void** a, const void** b)
+{
+    psF64 diff = **((psF64**)b) - **((psF64**)a);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
 
 COMPARE_NUMERIC(S8)
@@ -65,6 +85,16 @@
 COMPARE_NUMERIC(U32)
 COMPARE_NUMERIC(U64)
-COMPARE_NUMERIC(F32)
-COMPARE_NUMERIC(F64)
+
+int psCompareF32(const void* a, const void* b)
+{
+    psF32 diff = *((psF32*)a) - *((psF32*)b);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareF64(const void* a, const void* b)
+{
+    psF64 diff = *((psF64*)a) - *((psF64*)b);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
 
 COMPARE_NUMERIC_DESCENDING(S8)
@@ -76,4 +106,14 @@
 COMPARE_NUMERIC_DESCENDING(U32)
 COMPARE_NUMERIC_DESCENDING(U64)
-COMPARE_NUMERIC_DESCENDING(F32)
-COMPARE_NUMERIC_DESCENDING(F64)
+
+int psCompareDescendingF32(const void* a, const void* b)
+{
+    psF32 diff = *((psF32*)b) - *((psF32*)a);
+    return (diff>FLT_EPSILON) ? 1 : ((diff<FLT_EPSILON) ? -1 :0);
+}
+
+int psCompareDescendingF64(const void* a, const void* b)
+{
+    psF64 diff = *((psF64*)b) - *((psF64*)a);
+    return (diff>DBL_EPSILON) ? 1 : ((diff<DBL_EPSILON) ? -1 :0);
+}
Index: /trunk/psLib/test/collections/tst_psVectorSort_01.c
===================================================================
--- /trunk/psLib/test/collections/tst_psVectorSort_01.c	(revision 3443)
+++ /trunk/psLib/test/collections/tst_psVectorSort_01.c	(revision 3444)
@@ -12,6 +12,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.6 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2005-02-17 19:26:24 $
+ *  @version $Revision: 1.7 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2005-03-17 19:26:19 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -98,37 +98,37 @@
     in = psVectorAlloc(7, PS_TYPE_F32);
     in->n = 7;
-    in->data.F32[0] = 7.0f;
-    in->data.F32[1] = 9.0f;
-    in->data.F32[2] = 3.0f;
-    in->data.F32[3] = 1.0f;
-    in->data.F32[4] = 5.0f;
-    in->data.F32[5] = 5.0f;
-    in->data.F32[6] = -20.0f;
+    in->data.F32[0] = 0.7f;
+    in->data.F32[1] = 0.9f;
+    in->data.F32[2] = 0.3f;
+    in->data.F32[3] = 0.1f;
+    in->data.F32[4] = 0.5f;
+    in->data.F32[5] = 0.5f;
+    in->data.F32[6] = -2.0f;
     in = psVectorSort(in, in);
-    if(in->data.F32[0] != -20.0f) {
+    if(in->data.F32[0] != -2.0f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[0]");
         return 100;
     }
-    if(in->data.F32[1] != 1.0f) {
+    if(in->data.F32[1] != 0.1f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[1]");
         return 200;
     }
-    if(in->data.F32[2] != 3.0f) {
+    if(in->data.F32[2] != 0.3f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[2]");
         return 300;
     }
-    if(in->data.F32[3] != 5.0f) {
+    if(in->data.F32[3] != 0.5f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[3]");
         return 400;
     }
-    if(in->data.F32[4] != 5.0f) {
+    if(in->data.F32[4] != 0.5f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[4]");
         return 500;
     }
-    if(in->data.F32[5] != 7.0f) {
+    if(in->data.F32[5] != 0.7f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[5]");
         return 600;
     }
-    if(in->data.F32[6] != 9.0f) {
+    if(in->data.F32[6] != 0.9f) {
         psError(PS_ERR_UNKNOWN,true,"Improper self sort in[6]");
         return 700;
