Index: trunk/psLib/src/dataIO/psLookupTable.h
===================================================================
--- trunk/psLib/src/dataIO/psLookupTable.h	(revision 2195)
+++ trunk/psLib/src/dataIO/psLookupTable.h	(revision 2302)
@@ -7,6 +7,6 @@
 *  @author Ross Harman, MHPCC
 *
-*  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-10-26 00:37:15 $
+*  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-11-09 00:38:14 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -15,4 +15,8 @@
 #ifndef PS_LOOKUPTABLE_H
 #define PS_LOOKUPTABLE_H
+
+#include "psType.h"
+#include "psVector.h"
+#include "psArray.h"
 
 
@@ -24,20 +28,36 @@
 typedef struct
 {
+    const char *fileName;              ///< Name of file with table
+    psU64 numRows;                     ///< Number of table rows
+    psU64 numCols;                     ///< Number of table columns
+    psF64 validFrom;                   ///< Lower bound for rable read
+    psF64 validTo;                     ///< Upper bound for table read
     psVector *index;                   ///< Vector of independent index values
-    psArray *values;                   ///< Array of dependent table values corresponding to index values.
+    psArray *values;                   ///< Array of dependent table values corresponding to index values
 }
 psLookupTable;
 
 
-/** Lookup error conditions
+/** Lookup table lookup status and error conditions
  *
- *  Success and failure conditions for table lookups.
+ *  Success, failure, and status conditions for table lookups.
  */
 typedef enum {
-    PS_LOOKUP_SUCCESS = 0x000,         ///< Table lookup succeeded.
-    PS_LOOKUP_TOP     = 0x0001,        ///< Lookup off top of table.
-    PS_LOOKUP_BOTTOM  = 0x0002,        ///< Lookup off bottom of table.
-    PS_LOOKUP_ERROR   = 0x0003,        ///< Any other type of lookup error.
-} psLookupErrorType;
+    PS_LOOKUP_SUCCESS             = 0x0000,        ///< Table lookup succeeded
+    PS_LOOKUP_PAST_TOP            = 0x0101,        ///< Lookup off top of table
+    PS_LOOKUP_PAST_BOTTOM         = 0x0102,        ///< Lookup off bottom of table
+    PS_LOOKUP_ERROR               = 0x0104         ///< Any other type of lookup error
+} psLookupStatusType;
+
+/** Lookup table parse status and error conditions
+ *
+ *  Success, failure, and status conditions for table parsing.
+ */
+typedef enum {
+    PS_PARSE_SUCCESS              = 0x0000,        ///< Table lookup succeeded
+    PS_PARSE_ERROR_TYPE           = 0x0101,        ///< Error parsing type
+    PS_PARSE_ERROR_VALUE          = 0x0102,        ///< Error parsing numerical value
+    PS_PARSE_ERROR_GENERAL        = 0x0104         ///< Any other type of lookup error
+}psParseErrorType;
 
 /** Allocator for psLookupTable struct
@@ -48,6 +68,7 @@
  */
 psLookupTable* psLookupTableAlloc(
-    psU64 numRows,                  ///< Number of rows
-    psU64 numCols                   ///< number of columns
+    const char *fileName,           ///< Name of file to read
+    psF64 validFrom,                ///< Lower bound for rable read
+    psF64 validTo                   ///< Upper bound for table read
 );
 
@@ -59,5 +80,5 @@
  */
 psLookupTable* psLookupTableRead(
-    char *fileName                  ///< Name of file to read
+    psLookupTable *table            ///< Table to read
 );
 
@@ -67,10 +88,11 @@
  *  conditions.
  *
- *  @return psLookupTable*     New psLookupTable struct.
+ *  @return psLookupTable*     New psLookupTable struct
  */
 psF64 psLookupTableInterpolate(
     psLookupTable *table,           ///< Table with data
     psF64 index,                    ///< Value to be interpolated
-    psMaskType *status              ///< Status of lookup.
+    psU64 column,                   ///< Column in table to be interpolated
+    psLookupStatusType *status      ///< Status of lookup
 );
 
@@ -80,10 +102,10 @@
  *  conditions.
  *
- *  @return psLookupTable*     New psLookupTable struct.
+ *  @return psLookupTable*     New psLookupTable struct
  */
-psVector* psLookupTableInterpolate(
+psVector* psLookupTableInterpolateAll(
     psLookupTable *table,           ///< Table with data
     psF64 index,                    ///< Value to be interpolated
-    psMaskType *status              ///< Status of lookup.
+    psVector *stats                 ///< Vector of status for each lookup
 );
 
