IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 12, 2004, 9:36:07 AM (22 years ago)
Author:
gusciora
Message:

Added a few macros to declare and allocate static persistant polynomials.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/math/psConstants.h

    r2304 r2342  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-11-09 00:41:35 $
     8 *  @version $Revision: 1.39 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-11-12 19:36:07 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    298298} \
    299299
     300// The following macros declare and allocate a static polynomial of the
     301// specified order and type.
     302
     303#define PS_POLY_1D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     304static psPolynomial1D *NAME = NULL; \
     305if (NAME == NULL) { \
     306    NAME = psPolynomial1DAlloc(ORDER, TYPE); \
     307    p_psMemSetPersistent(NAME, true); \
     308} \
     309
     310#define PS_POLY_2D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     311static psPolynomial2D *NAME = NULL; \
     312if (NAME == NULL) { \
     313    NAME = psPolynomial2DAlloc(ORDER, TYPE); \
     314    p_psMemSetPersistent(NAME, true); \
     315} \
     316
     317#define PS_POLY_3D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     318static psPolynomial3D *NAME = NULL; \
     319if (NAME == NULL) { \
     320    NAME = psPolynomial3DAlloc(ORDER, TYPE); \
     321    p_psMemSetPersistent(NAME, true); \
     322} \
     323
     324#define PS_POLY_4D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     325static psPolynomial4D *NAME = NULL; \
     326if (NAME == NULL) { \
     327    NAME = psPolynomial4DAlloc(ORDER, TYPE); \
     328    p_psMemSetPersistent(NAME, true); \
     329} \
     330
     331#define PS_POLY_1D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     332static psPolynomial1D *NAME = NULL; \
     333if (NAME == NULL) { \
     334    NAME = psPolynomial1DAlloc(ORDER, TYPE); \
     335    p_psMemSetPersistent(NAME, true); \
     336} \
     337
     338#define PS_POLY_2D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     339static psPolynomial2D *NAME = NULL; \
     340if (NAME == NULL) { \
     341    NAME = psPolynomial2DAlloc(ORDER, TYPE); \
     342    p_psMemSetPersistent(NAME, true); \
     343} \
     344
     345#define PS_POLY_3D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     346static psPolynomial3D *NAME = NULL; \
     347if (NAME == NULL) { \
     348    NAME = psPolynomial3DAlloc(ORDER, TYPE); \
     349    p_psMemSetPersistent(NAME, true); \
     350} \
     351
     352#define PS_POLY_4D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     353static psPolynomial4D *NAME = NULL; \
     354if (NAME == NULL) { \
     355    NAME = psPolynomial4DAlloc(ORDER, TYPE); \
     356    p_psMemSetPersistent(NAME, true); \
     357} \
     358
    300359/*****************************************************************************
    301360    PS_IMAGE macros:
Note: See TracChangeset for help on using the changeset viewer.