IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6204 for trunk/psLib/src/math


Ignore:
Timestamp:
Jan 26, 2006, 11:10:22 AM (21 years ago)
Author:
gusciora
Message:

Implemented the polynomial alloc argument changes.

Location:
trunk/psLib/src/math
Files:
7 edited

Legend:

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

    r6193 r6204  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.83 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2006-01-26 00:31:19 $
     8 *  @version $Revision: 1.84 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2006-01-26 21:10:22 $
    1010 *
    1111 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    512512static psPolynomial1D *(NAME) = NULL; \
    513513if ((NAME) == NULL) { \
    514     (NAME) = psPolynomial1DAlloc(ORDER, TYPE); \
     514    (NAME) = psPolynomial1DAlloc(TYPE, ORDER); \
    515515    p_psMemSetPersistent((NAME), true); \
    516516    p_psMemSetPersistent((NAME)->coeff, true); \
     
    519519} \
    520520
    521 #define PS_POLY_2D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    522 static psPolynomial2D *(NAME) = NULL; \
    523 if ((NAME) == NULL) { \
    524     (NAME) = psPolynomial2DAlloc(ORDER, TYPE); \
    525     p_psMemSetPersistent((NAME), true); \
    526 } \
    527 
    528 #define PS_POLY_3D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    529 static psPolynomial3D *(NAME) = NULL; \
    530 if ((NAME) == NULL) { \
    531     (NAME) = psPolynomial3DAlloc(ORDER, TYPE); \
    532     p_psMemSetPersistent((NAME), true); \
    533 } \
    534 
    535 #define PS_POLY_4D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    536 static psPolynomial4D *(NAME) = NULL; \
    537 if ((NAME) == NULL) { \
    538     (NAME) = psPolynomial4DAlloc(ORDER, TYPE); \
    539     p_psMemSetPersistent((NAME), true); \
    540 } \
     521/* XXX: This is not correct
     522    #define PS_POLY_2D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     523    static psPolynomial2D *(NAME) = NULL; \
     524    if ((NAME) == NULL) { \
     525        (NAME) = psPolynomial2DAlloc(ORDER, TYPE); \
     526        p_psMemSetPersistent((NAME), true); \
     527    } \
     528 
     529    #define PS_POLY_3D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     530    static psPolynomial3D *(NAME) = NULL; \
     531    if ((NAME) == NULL) { \
     532        (NAME) = psPolynomial3DAlloc(ORDER, TYPE); \
     533        p_psMemSetPersistent((NAME), true); \
     534    } \
     535 
     536    #define PS_POLY_4D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     537    static psPolynomial4D *(NAME) = NULL; \
     538    if ((NAME) == NULL) { \
     539        (NAME) = psPolynomial4DAlloc(ORDER, TYPE); \
     540        p_psMemSetPersistent((NAME), true); \
     541    } \
     542*/
    541543
    542544#define PS_POLY_1D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    543545static psPolynomial1D *(NAME) = NULL; \
    544546if ((NAME) == NULL) { \
    545     (NAME) = psPolynomial1DAlloc(ORDER, TYPE); \
     547    (NAME) = psPolynomial1DAlloc(TYPE, ORDER); \
    546548    p_psMemSetPersistent((NAME), true); \
    547549} \
    548550
    549 #define PS_POLY_2D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    550 static psPolynomial2D *(NAME) = NULL; \
    551 if ((NAME) == NULL) { \
    552     (NAME) = psPolynomial2DAlloc(ORDER, TYPE); \
    553     p_psMemSetPersistent((NAME), true); \
    554 } \
    555 
    556 #define PS_POLY_3D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    557 static psPolynomial3D *(NAME) = NULL; \
    558 if ((NAME) == NULL) { \
    559     (NAME) = psPolynomial3DAlloc(ORDER, TYPE); \
    560     p_psMemSetPersistent((NAME), true); \
    561 } \
    562 
    563 #define PS_POLY_4D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
    564 static psPolynomial4D *(NAME) = NULL; \
    565 if ((NAME) == NULL) { \
    566     (NAME) = psPolynomial4DAlloc(ORDER, TYPE); \
    567     p_psMemSetPersistent((NAME), true); \
    568 } \
     551/* XXX: This is not correct
     552    #define PS_POLY_2D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     553    static psPolynomial2D *(NAME) = NULL; \
     554    if ((NAME) == NULL) { \
     555        (NAME) = psPolynomial2DAlloc(ORDER, TYPE); \
     556        p_psMemSetPersistent((NAME), true); \
     557    } \
     558 
     559    #define PS_POLY_3D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     560    static psPolynomial3D *(NAME) = NULL; \
     561    if ((NAME) == NULL) { \
     562        (NAME) = psPolynomial3DAlloc(ORDER, TYPE); \
     563        p_psMemSetPersistent((NAME), true); \
     564    } \
     565 
     566    #define PS_POLY_4D_D_DECLARE_ALLOC_STATIC(NAME, ORDER, TYPE) \
     567    static psPolynomial4D *(NAME) = NULL; \
     568    if ((NAME) == NULL) { \
     569        (NAME) = psPolynomial4DAlloc(ORDER, TYPE); \
     570        p_psMemSetPersistent((NAME), true); \
     571    } \
     572*/
    569573
    570574#define PS_POLY_PRINT_1D(NAME) \
  • trunk/psLib/src/math/psMinimizeLMM.c

    r6101 r6204  
    1010 *  @author EAM, IfA
    1111 *
    12  *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2006-01-21 02:43:31 $
     12 *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2006-01-26 21:10:22 $
    1414 *
    1515 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    204204    psMinimizeLMChi2Func func)
    205205{
     206    // XXX: Check vector sizes.
    206207    PS_ASSERT_IMAGE_NON_NULL(alpha, NAN);
    207208    PS_ASSERT_VECTOR_NON_NULL(beta, NAN);
     
    218219
    219220    // zero alpha and beta for summing below
    220     for (int j = 0; j < params->n; j++) {
    221         for (int k = 0; k < params->n; k++) {
     221    for (psS32 j = 0; j < params->n; j++) {
     222        for (psS32 k = 0; k < params->n; k++) {
    222223            alpha->data.F64[j][k] = 0;
    223224        }
     
    227228
    228229    // calculate chisq, alpha, beta
    229     for (int i = 0; i < y->n; i++) {
     230    for (psS32 i = 0; i < y->n; i++) {
    230231        ymodel = func(deriv, params, (psVector *) x->data[i]);
    231232
     
    233234        chisq += PS_SQR(delta) * dy->data.F32[i];
    234235
    235         for (int j = 0; j < params->n; j++) {
     236        for (psS32 j = 0; j < params->n; j++) {
    236237            if ((paramMask != NULL) && (paramMask->data.U8[j]))
    237238                continue;
    238239            weight = deriv->data.F32[j] * dy->data.F32[i];
    239             for (int k = 0; k <= j; k++) {
     240            for (psS32 k = 0; k <= j; k++) {
    240241                if ((paramMask != NULL) && (paramMask->data.U8[k]))
    241242                    continue;
     
    247248
    248249    // calculate lower-left half of alpha
    249     for (int j = 1; j < params->n; j++) {
    250         for (int k = 0; k < j; k++) {
     250    for (psS32 j = 1; j < params->n; j++) {
     251        for (psS32 k = 0; k < j; k++) {
    251252            alpha->data.F64[k][j] = alpha->data.F64[j][k];
    252253        }
     
    255256    // fill in pivots if we apply a mask
    256257    if (paramMask != NULL) {
    257         for (int j = 0; j < params->n; j++) {
     258        for (psS32 j = 0; j < params->n; j++) {
    258259            if (paramMask->data.U8[j]) {
    259260                alpha->data.F64[j][j] = 1;
  • trunk/psLib/src/math/psMinimizePolyFit.c

    r6193 r6204  
    1010 *  @author EAM, IfA
    1111 *
    12  *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2006-01-26 00:31:19 $
     12 *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2006-01-26 21:10:22 $
    1414 *
    1515 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    350350    // We first fit an ordinary polynomial to the data.
    351351    //
    352     psPolynomial1D *ordPoly = psPolynomial1DAlloc(polyOrder, PS_POLYNOMIAL_ORD);
     352    psPolynomial1D *ordPoly = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, polyOrder);
    353353    psPolynomial1D *rc = VectorFitPolynomial1DOrd(ordPoly, mask, maskValue, y, yErr, x);
    354354    if (rc == NULL) {
     
    965965        }
    966966    } else {
    967         psError(PS_ERR_UNKNOWN, true, "Incorrect polynomial type.  Returning NULL.\n");
     967        psError(PS_ERR_UNKNOWN, true, "Incorrect polynomial type (%d).  Returning NULL.\n", poly->type);
    968968        poly = NULL;
    969969    }
  • trunk/psLib/src/math/psPolynomial.c

    r6199 r6204  
    77*  polynomials.  It also contains a Gaussian functions.
    88*
    9 *  @version $Revision: 1.139 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2006-01-26 02:44:56 $
     9*  @version $Revision: 1.140 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2006-01-26 21:10:22 $
    1111*
    1212*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    168168        psPolynomial1D **chebPolys = (psPolynomial1D **) psAlloc(numPolys * sizeof(psPolynomial1D *));
    169169        for (psS32 i = 0; i < numPolys; i++) {
    170             chebPolys[i] = psPolynomial1DAlloc(i, PS_POLYNOMIAL_ORD);
     170            chebPolys[i] = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, i);
    171171            chebPolys[i]->coeff[i] = 1;
    172172        }
     
    175175        psPolynomial1D **chebPolys = (psPolynomial1D **) psAlloc(numPolys * sizeof(psPolynomial1D *));
    176176        for (psS32 i = 0; i < numPolys; i++) {
    177             chebPolys[i] = psPolynomial1DAlloc(i, PS_POLYNOMIAL_ORD);
     177            chebPolys[i] = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, i);
    178178        }
    179179
     
    615615 *****************************************************************************/
    616616psPolynomial1D* psPolynomial1DAlloc(
    617     unsigned int n,
    618     psPolynomialType type)
     617    psPolynomialType type,
     618    unsigned int nX)
    619619{
    620620    //PS_ASSERT_INT_NONNEGATIVE(n, NULL);
    621     psU32 nOrder = n;
     621    psU32 nOrder = nX;
    622622    psPolynomial1D *newPoly = (psPolynomial1D* ) psAlloc(sizeof(psPolynomial1D));
    623623    psMemSetDeallocator(newPoly, (psFreeFunc) polynomial1DFree);
     
    639639}
    640640
    641 psPolynomial2D* psPolynomial2DAlloc( unsigned int nX,
    642                                      unsigned int nY,
    643                                      psPolynomialType type)
     641psPolynomial2D* psPolynomial2DAlloc(
     642    psPolynomialType type,
     643    unsigned int nX,
     644    unsigned int nY)
    644645{
    645646    //PS_ASSERT_INT_NONNEGATIVE(nX, NULL);
     
    676677}
    677678
    678 psPolynomial3D* psPolynomial3DAlloc( unsigned int nX,
    679                                      unsigned int nY,
    680                                      unsigned int nZ,
    681                                      psPolynomialType type)
     679psPolynomial3D* psPolynomial3DAlloc(
     680    psPolynomialType type,
     681    unsigned int nX,
     682    unsigned int nY,
     683    unsigned int nZ)
    682684{
    683685    //PS_ASSERT_INT_NONNEGATIVE(nX, NULL);
     
    724726}
    725727
    726 psPolynomial4D* psPolynomial4DAlloc( unsigned int nX,
    727                                      unsigned int nY,
    728                                      unsigned int nZ,
    729                                      unsigned int nT,
    730                                      psPolynomialType type)
     728psPolynomial4D* psPolynomial4DAlloc(
     729    psPolynomialType type,
     730    unsigned int nX,
     731    unsigned int nY,
     732    unsigned int nZ,
     733    unsigned int nT)
    731734{
    732735    //PS_ASSERT_INT_NONNEGATIVE(nX, NULL);
  • trunk/psLib/src/math/psPolynomial.h

    r6186 r6204  
    1111 *  @author GLG, MHPCC
    1212 *
    13  *  @version $Revision: 1.60 $ $Name: not supported by cvs2svn $
    14  *  @date $Date: 2006-01-23 22:25:31 $
     13 *  @version $Revision: 1.61 $ $Name: not supported by cvs2svn $
     14 *  @date $Date: 2006-01-26 21:10:22 $
    1515 *
    1616 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    127127 */
    128128psPolynomial1D* psPolynomial1DAlloc(
    129     unsigned int n,                    ///< Number of terms
    130     psPolynomialType type              ///< Polynomial Type
     129    psPolynomialType type,             ///< Polynomial Type
     130    unsigned int nX                    ///< Number of terms
    131131);
    132132
     
    136136 */
    137137psPolynomial2D* psPolynomial2DAlloc(
     138    psPolynomialType type,             ///< Polynomial Type
     139    unsigned int nX,                   ///< Number of terms in x
     140    unsigned int nY                    ///< Number of terms in y
     141);
     142
     143/** Allocates a 3-D polynomial structure
     144 *
     145 *  @return  psPolynomial3D*    new 3-D polynomial struct
     146 */
     147psPolynomial3D* psPolynomial3DAlloc(
     148    psPolynomialType type,             ///< Polynomial Type
    138149    unsigned int nX,                   ///< Number of terms in x
    139150    unsigned int nY,                   ///< Number of terms in y
    140     psPolynomialType type              ///< Polynomial Type
    141 );
    142 
    143 /** Allocates a 3-D polynomial structure
    144  *
    145  *  @return  psPolynomial3D*    new 3-D polynomial struct
    146  */
    147 psPolynomial3D* psPolynomial3DAlloc(
     151    unsigned int nZ                    ///< Number of terms in z
     152);
     153
     154/** Allocates a 4-D polynomial structure
     155 *
     156 *  @return  psPolynomial4D*    new 4-D polynomial struct
     157 */
     158psPolynomial4D* psPolynomial4DAlloc(
     159    psPolynomialType type,             ///< Polynomial Type
    148160    unsigned int nX,                   ///< Number of terms in x
    149161    unsigned int nY,                   ///< Number of terms in y
    150162    unsigned int nZ,                   ///< Number of terms in z
    151     psPolynomialType type              ///< Polynomial Type
    152 );
    153 
    154 /** Allocates a 4-D polynomial structure
    155  *
    156  *  @return  psPolynomial4D*    new 4-D polynomial struct
    157  */
    158 psPolynomial4D* psPolynomial4DAlloc(
    159     unsigned int nX,                   ///< Number of terms in x
    160     unsigned int nY,                   ///< Number of terms in y
    161     unsigned int nZ,                   ///< Number of terms in z
    162     unsigned int nT,                   ///< Number of terms in t
    163     psPolynomialType type              ///< Polynomial Type
     163    unsigned int nT                    ///< Number of terms in t
    164164);
    165165
  • trunk/psLib/src/math/psSpline.c

    r6186 r6204  
    77*  splines.
    88*
    9 *  @version $Revision: 1.133 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2006-01-23 22:25:31 $
     9*  @version $Revision: 1.134 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2006-01-26 21:10:22 $
    1111*
    1212*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    507507    spline->spline = (psPolynomial1D **) psAlloc(numSplines * sizeof(psPolynomial1D *));
    508508    for (psS32 i=0;i<numSplines;i++) {
    509         spline->spline[i] = psPolynomial1DAlloc(3, PS_POLYNOMIAL_ORD);
     509        spline->spline[i] = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 3);
    510510    }
    511511
  • trunk/psLib/src/math/psStats.c

    r6193 r6204  
    1414 *      stats->binsize
    1515 *
    16  *  @version $Revision: 1.161 $ $Name: not supported by cvs2svn $
    17  *  @date $Date: 2006-01-26 00:31:19 $
     16 *  @version $Revision: 1.162 $ $Name: not supported by cvs2svn $
     17 *  @date $Date: 2006-01-26 21:10:22 $
    1818 *
    1919 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    14571457    psVector *y = psVectorAlloc(3, PS_TYPE_F64);
    14581458    psVector *yErr = psVectorAlloc(3, PS_TYPE_F64);
    1459     psPolynomial1D *myPoly = psPolynomial1DAlloc(2, PS_POLYNOMIAL_ORD);
     1459    psPolynomial1D *myPoly = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2);
    14601460
    14611461    psF32 tmpFloat = 0.0f;
Note: See TracChangeset for help on using the changeset viewer.