Index: trunk/psLib/src/dataManip/psConstants.h
===================================================================
--- trunk/psLib/src/dataManip/psConstants.h	(revision 2304)
+++ trunk/psLib/src/dataManip/psConstants.h	(revision 2342)
@@ -6,6 +6,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-11-09 00:41:35 $
+ *  @version $Revision: 1.39 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-11-12 19:36:07 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -298,4 +298,63 @@
 } \
 
+// The following macros declare and allocate a static polynomial of the
+// specified order and type.
+
+#define PS_POLY_1D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial1D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial1DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_2D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial2D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial2DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_3D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial3D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial3DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_4D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial4D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial4DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_1D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial1D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial1DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_2D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial2D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial2DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_3D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial3D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial3DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
+#define PS_POLY_4D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
+static psPolynomial4D *NAME = NULL; \
+if (NAME == NULL) { \
+    NAME = psPolynomial4DAlloc(ORDER, TYPE); \
+    p_psMemSetPersistent(NAME, true); \
+} \
+
 /*****************************************************************************
     PS_IMAGE macros:
