IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4731


Ignore:
Timestamp:
Aug 8, 2005, 11:44:09 AM (21 years ago)
Author:
gusciora
Message:

...

Location:
trunk/psLib/test/math
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/math/tst_psFunc00.c

    r4581 r4731  
    1313*    XXX: Modify these tests so that polynomials with a variety of different
    1414*    orders are created.
    15 *
    16 *    @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
    17 *    @date $Date: 2005-07-20 01:21:13 $
     15* 
     16*    @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
     17*    @date $Date: 2005-08-08 21:44:09 $
    1818*
    1919*  Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    4343psS32 main(psS32 argc, char* argv[])
    4444{
     45    psLogSetFormat("HLNM");
    4546    psLogSetLevel(PS_LOG_INFO);
    4647
  • trunk/psLib/test/math/tst_psFunc01.c

    r4547 r4731  
    1515psS32 main()
    1616{
     17    psLogSetFormat("HLNM");
    1718    psS32 testStatus = true;
    1819    float x = 0.0;
  • trunk/psLib/test/math/tst_psFunc02.c

    r4547 r4731  
    1616psS32 main()
    1717{
     18    psLogSetFormat("HLNM");
    1819    psS32 testStatus = true;
    1920    psS32 memLeaks=0;
     
    388389                    "psSpline1DAllocGeneric(): negative order",
    389390                    testStatus);
     391        // XXX: Currently, if you free a psStructure twice, it seg faults.  Why?
     392        psFree(bounds);
    390393    */
    391     psFree(bounds);
    392 
    393394    /****************************************************************************/
    394395    /****************************************************************************/
  • trunk/psLib/test/math/tst_psFunc03.c

    r4547 r4731  
    1717psS32 main()
    1818{
     19    psLogSetFormat("HLNM");
    1920    psS32 testStatus = true;
    2021    psS32 memLeaks=0;
  • trunk/psLib/test/math/tst_psFunc04.c

    r4547 r4731  
    129129psS32 main()
    130130{
     131    psLogSetFormat("HLNM");
    131132    t00();
     133    // XXX: Why is this commented?
    132134    //    t01();
    133135}
  • trunk/psLib/test/math/tst_psFunc05.c

    r4547 r4731  
    2020psS32 main()
    2121{
     22    psLogSetFormat("HLNM");
    2223    psS32 testStatus = true;
    2324    psS32 memLeaks=0;
  • trunk/psLib/test/math/tst_psFunc08.c

    r4581 r4731  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-20 01:21:13 $
     6*  @version  $Revision: 1.3 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-08-08 21:44:09 $
    88*
    99*  XXX: Probably should test single- and multi-dimensional polynomials in
     
    4646psS32 main(psS32 argc, char* argv[])
    4747{
     48    psLogSetFormat("HLNM");
    4849    psLogSetLevel(PS_LOG_INFO);
    4950
  • trunk/psLib/test/math/tst_psFunc09.c

    r4581 r4731  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-20 01:21:13 $
     6*  @version  $Revision: 1.3 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-08-08 21:44:09 $
    88*
    99* Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    7575psS32 main(psS32 argc, char* argv[])
    7676{
     77    psLogSetFormat("HLNM");
    7778    psLogSetLevel(PS_LOG_INFO);
    7879
  • trunk/psLib/test/math/tst_psFunc10.c

    r4581 r4731  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-20 01:21:13 $
     6*  @version  $Revision: 1.3 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-08-08 21:44:09 $
    88*
    99* Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    126126psS32 main(psS32 argc, char* argv[])
    127127{
     128    psLogSetFormat("HLNM");
    128129    psLogSetLevel(PS_LOG_INFO);
    129130
  • trunk/psLib/test/math/tst_psFunc11.c

    r4581 r4731  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-20 01:21:13 $
     6*  @version  $Revision: 1.3 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-08-08 21:44:09 $
    88*
    99* Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    368368psS32 main(psS32 argc, char* argv[])
    369369{
     370    psLogSetFormat("HLNM");
    370371    psLogSetLevel(PS_LOG_INFO);
    371372
  • trunk/psLib/test/math/tst_psMinimize06.c

    r4547 r4731  
    66#include "psTest.h"
    77#include <math.h>
    8 #define NUM_ITERATIONS 10000
     8#define NUM_ITERATIONS 100
    99#define ERR_TOL 0.0
    10 #define N 20
    11 #define MIN_VALUE 5.0
    12 #define NUM_PARAMS 3
     10#define NUM_DATA_POINTS 20
     11#define NUM_PARAMS 5
    1312float expectedParm[NUM_PARAMS];
    1413psS32 testStatus = true;
     
    1615/*****************************************************************************
    1716myFunc():
    18     sum = (param[0] * x[0]) +
    19           (param[1] * x[1]) +
    20           ...
     17    sum = param[0] + x[0] * x[1] +
     18          param[1] * x[0] +
     19          param[2] * x[0]^2 +
     20          param[3] * x[1] +
     21          param[4] * x[1]^2
     22 
    2123 *****************************************************************************/
    22 psF64 myFunc(psVector *deriv,
     24psF32 myFunc(psVector *deriv,
    2325             psVector *params,
    2426             psVector *x)
    2527{
    26     if ((deriv == NULL) ||
    27             (params == NULL)) {
     28    if ((deriv == NULL) || (params == NULL)) {
    2829        psError(PS_ERR_UNKNOWN, true, "deriv or params is NULL.\n");
    2930    }
    3031
    31     psF64 sum = 0.0;
    32     for (psS32 i=0 ; i < params->n ; i++) {
    33         sum += (params->data.F32[i] * x->data.F32[i]);
    34         deriv->data.F32[i] = params->data.F32[i];
    35     }
     32    psF32 sum = (params->data.F32[0] * x->data.F32[0] * x->data.F32[1]) +
     33                (params->data.F32[1] * x->data.F32[0]) +
     34                (params->data.F32[2] * PS_SQR(x->data.F32[0])) +
     35                (params->data.F32[3] * x->data.F32[1]) +
     36                (params->data.F32[4] * PS_SQR(x->data.F32[1]));
     37
     38    deriv->data.F32[0] = x->data.F32[0] * x->data.F32[1];
     39    deriv->data.F32[1] = x->data.F32[0];
     40    deriv->data.F32[2] = PS_SQR(x->data.F32[0]);
     41    deriv->data.F32[3] = x->data.F32[1];
     42    deriv->data.F32[4] = PS_SQR(x->data.F32[1]);
    3643
    3744    return(sum);
     
    4249{
    4350    psS32 currentId = psMemGetId();
    44     psS32 memLeaks = 0;
    45     psS32 i = 0;
    46     psArray *myCoords;
    47     psVector *myParams;
    48     psImage *myCovar;
    49     psMinimization *min;
    50     psVector *y;
    51 
    5251    psTraceSetLevel(".psLib", 0);
    5352    /**************************************************************************
    5453     *************************************************************************/
    55     min = psMinimizationAlloc(NUM_ITERATIONS, ERR_TOL);
    56     myCovar = psImageAlloc(NUM_PARAMS, NUM_PARAMS, PS_TYPE_F32);
    57     myParams = psVectorAlloc(NUM_PARAMS, PS_TYPE_F32);
    58     myCoords = psArrayAlloc(N);
    59     y = psVectorAlloc(N, PS_TYPE_F32);
     54    psMinimization *min = psMinimizationAlloc(NUM_ITERATIONS, ERR_TOL);
     55    psImage *myCovar = psImageAlloc(NUM_PARAMS, NUM_PARAMS, PS_TYPE_F32);
     56    psVector *myParams = psVectorAlloc(NUM_PARAMS, PS_TYPE_F32);
     57    psVector *myDerivs = psVectorAlloc(NUM_PARAMS, PS_TYPE_F32);
     58    psArray *myCoords = psArrayAlloc(NUM_DATA_POINTS);
     59    psVector *y = psVectorAlloc(NUM_DATA_POINTS, PS_TYPE_F32);
    6060
    61     for (i=0;i<N;i++) {
     61    for (psS32 i=0;i<NUM_DATA_POINTS;i++) {
    6262        myCoords->data[i] = (psPtr *) psVectorAlloc(2, PS_TYPE_F32);
    6363        ((psVector *) (myCoords->data[i]))->data.F32[0] = (float) (i+10);
    6464        ((psVector *) (myCoords->data[i]))->data.F32[1] = (float) (i+3);
     65        /*
     66                printf("x[%d] is vector (%f, %f)\n", i, ((psVector *) (myCoords->data[i]))->data.F32[0],
     67                                                        ((psVector *) (myCoords->data[i]))->data.F32[1]);
     68        */
    6569        y->data.F32[i] = (float) i;
    6670    }
    67     for (i=0;i<NUM_PARAMS;i++) {
     71    for (psS32 i=0;i<NUM_PARAMS;i++) {
    6872        expectedParm[i] = 2.42 + (float) (2 * i);
    69         myParams->data.F32[i] = (float) i;
    70         myParams->data.F32[i] = expectedParm[i] * 1.3;
    71         myParams->data.F32[i] = 0.0;
    72         myParams->data.F32[i] = (float) (5 + i);
     73        myParams->data.F32[i] = (float) (2 * i);
    7374    }
    7475
     
    8283                     (psMinimizeLMChi2Func) myFunc);
    8384
    84     printf("\nThe chi-squared is %f\n", min->value);
    85     for (i=0;i<NUM_PARAMS;i++) {
     85    printf("\nThe value of the function at the minimum is %f\n", min->value);
     86    for (psS32 i=0;i<NUM_DATA_POINTS;i++) {
     87        printf("The minimum for data point %d: %f\n", i, myFunc(myDerivs, myParams, (psVector *) myCoords->data[i]));
     88    }
     89
     90    for (psS32 i=0;i<NUM_PARAMS;i++) {
    8691        printf("Parameter %d at the minimum is %f (expected: %f)\n", i,
    8792               myParams->data.F32[i], expectedParm[i]);
     
    9196    psFree(myCovar);
    9297    psFree(myParams);
     98    psFree(myDerivs);
    9399    psFree(myCoords);
    94100    psFree(y);
    95101
    96102    psMemCheckCorruption(1);
    97     memLeaks = psMemCheckLeaks(currentId,NULL,NULL,false);
     103    psS32 memLeaks = psMemCheckLeaks(currentId,NULL,NULL,false);
    98104    if (0 != memLeaks) {
    99105        psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
Note: See TracChangeset for help on using the changeset viewer.