IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2224


Ignore:
Timestamp:
Oct 27, 2004, 2:22:53 PM (22 years ago)
Author:
gusciora
Message:

Added parameter checking to psStats.c

Location:
trunk/psLib/src
Files:
7 edited

Legend:

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

    r2221 r2224  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-10-27 23:31:43 $
     8 *  @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-10-28 00:22:53 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3232#define PS_INT_CHECK_NON_NEGATIVE(NAME, RVAL) \
    3333if (NAME < 0) { \
    34     psError(__func__,"%s is less than 0.", #NAME); \
     34    psError(__func__,"Error: %s is less than 0.", #NAME); \
    3535    return(RVAL); \
    3636}
     
    3838#define PS_INT_CHECK_POSITIVE(NAME, RVAL) \
    3939if (NAME < 1) { \
    40     psError(__func__,"%s is 0 or less.", #NAME); \
    41     return(RVAL); \
    42 }
    43 
     40    psError(__func__,"Error: %s is 0 or less.", #NAME); \
     41    return(RVAL); \
     42}
     43
     44// Produce an error if ((NAME1 > NAME2)
    4445#define PS_INT_COMPARE(NAME1, NAME2, RVAL) \
    45 if (NAME1 < NAME2) { \
    46     psError(__func__,"%s is less than %s (%d < %D).", #NAME1, #NAME2, NAME1, NAME2); \
    47     return(RVAL); \
    48 }
    49 
    50 
     46if (NAME1 > NAME2) { \
     47    psError(__func__,"Error: (%s > %s) (%d %d).", #NAME1, #NAME2, NAME1, NAME2); \
     48    return(RVAL); \
     49}
     50
     51
     52// Produce an error if ((NAME1 > NAME2)
    5153#define PS_FLOAT_COMPARE(NAME1, NAME2, RVAL) \
    52 if ((NAME1 - NAME2) < -FLT_EPSILON) { \
    53     psError(__func__,"%s is less than %s.", #NAME1, #NAME2); \
    54     return(RVAL); \
    55 }
    56 
    57 
     54if (NAME1 > NAME2) { \
     55    psError(__func__,"Error: (%s > %s) (%f %f)", #NAME1, #NAME2, NAME1, NAME2); \
     56    return(RVAL); \
     57}
     58
     59#define PS_FLOAT_CHECK_NON_EQUAL(NAME1, NAME2, RVAL) \
     60if (fabs(NAME2 - NAME1) < FLT_EPSILON) { \
     61    psError(__func__,"Error: %s and %s are equal.", #NAME1, #NAME2); \
     62    return(RVAL); \
     63}
    5864
    5965/*****************************************************************************
  • trunk/psLib/src/dataManip/psFunctions.c

    r2221 r2224  
    77 *  polynomials.  It also contains a Gaussian functions.
    88 *
    9  *  @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-10-27 23:31:43 $
     9 *  @version $Revision: 1.58 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-10-28 00:22:53 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    16701670    PS_INT_CHECK_NON_NEGATIVE(numSplines, NULL);
    16711671    PS_INT_CHECK_NON_NEGATIVE(order, NULL);
    1672     PS_FLOAT_COMPARE(max, min, NULL);
     1672    PS_FLOAT_CHECK_NON_EQUAL(max, min, NULL);
    16731673
    16741674    psSpline1D *tmp = NULL;
     
    21242124    PS_PTR_CHECK_NULL(spline, NULL);
    21252125    PS_VECTOR_CHECK_NULL(x, NULL);
    2126     PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F32, NULL);
     2126    PS_VECTOR_CHECK_TYPE_F32_OR_F64(x, NULL);
    21272127
    21282128    psS32 i;
  • trunk/psLib/src/dataManip/psStats.c

    r2221 r2224  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.76 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2004-10-27 23:31:43 $
     11 *  @version $Revision: 1.77 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2004-10-28 00:22:53 $
    1313n *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    14871487    PS_VECTOR_CHECK_NULL(bounds, NULL);
    14881488    PS_VECTOR_CHECK_TYPE(bounds, PS_TYPE_F32, NULL);
    1489     PS_INT_COMPARE(bounds->n, 2, NULL);
     1489    PS_INT_COMPARE(2, bounds->n, NULL);
    14901490
    14911491    psHistogram* newHist = NULL;        // The new histogram structure
     
    16941694
    16951695    if ((stats->options & PS_STAT_USE_RANGE) && (stats->min >= stats->max)) {
    1696         PS_FLOAT_COMPARE(stats->max, stats->min, stats);
     1696        PS_FLOAT_COMPARE(stats->min, stats->max, stats);
    16971697    }
    16981698
  • trunk/psLib/src/math/psConstants.h

    r2221 r2224  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-10-27 23:31:43 $
     8 *  @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-10-28 00:22:53 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3232#define PS_INT_CHECK_NON_NEGATIVE(NAME, RVAL) \
    3333if (NAME < 0) { \
    34     psError(__func__,"%s is less than 0.", #NAME); \
     34    psError(__func__,"Error: %s is less than 0.", #NAME); \
    3535    return(RVAL); \
    3636}
     
    3838#define PS_INT_CHECK_POSITIVE(NAME, RVAL) \
    3939if (NAME < 1) { \
    40     psError(__func__,"%s is 0 or less.", #NAME); \
    41     return(RVAL); \
    42 }
    43 
     40    psError(__func__,"Error: %s is 0 or less.", #NAME); \
     41    return(RVAL); \
     42}
     43
     44// Produce an error if ((NAME1 > NAME2)
    4445#define PS_INT_COMPARE(NAME1, NAME2, RVAL) \
    45 if (NAME1 < NAME2) { \
    46     psError(__func__,"%s is less than %s (%d < %D).", #NAME1, #NAME2, NAME1, NAME2); \
    47     return(RVAL); \
    48 }
    49 
    50 
     46if (NAME1 > NAME2) { \
     47    psError(__func__,"Error: (%s > %s) (%d %d).", #NAME1, #NAME2, NAME1, NAME2); \
     48    return(RVAL); \
     49}
     50
     51
     52// Produce an error if ((NAME1 > NAME2)
    5153#define PS_FLOAT_COMPARE(NAME1, NAME2, RVAL) \
    52 if ((NAME1 - NAME2) < -FLT_EPSILON) { \
    53     psError(__func__,"%s is less than %s.", #NAME1, #NAME2); \
    54     return(RVAL); \
    55 }
    56 
    57 
     54if (NAME1 > NAME2) { \
     55    psError(__func__,"Error: (%s > %s) (%f %f)", #NAME1, #NAME2, NAME1, NAME2); \
     56    return(RVAL); \
     57}
     58
     59#define PS_FLOAT_CHECK_NON_EQUAL(NAME1, NAME2, RVAL) \
     60if (fabs(NAME2 - NAME1) < FLT_EPSILON) { \
     61    psError(__func__,"Error: %s and %s are equal.", #NAME1, #NAME2); \
     62    return(RVAL); \
     63}
    5864
    5965/*****************************************************************************
  • trunk/psLib/src/math/psPolynomial.c

    r2221 r2224  
    77 *  polynomials.  It also contains a Gaussian functions.
    88 *
    9  *  @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-10-27 23:31:43 $
     9 *  @version $Revision: 1.58 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-10-28 00:22:53 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    16701670    PS_INT_CHECK_NON_NEGATIVE(numSplines, NULL);
    16711671    PS_INT_CHECK_NON_NEGATIVE(order, NULL);
    1672     PS_FLOAT_COMPARE(max, min, NULL);
     1672    PS_FLOAT_CHECK_NON_EQUAL(max, min, NULL);
    16731673
    16741674    psSpline1D *tmp = NULL;
     
    21242124    PS_PTR_CHECK_NULL(spline, NULL);
    21252125    PS_VECTOR_CHECK_NULL(x, NULL);
    2126     PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F32, NULL);
     2126    PS_VECTOR_CHECK_TYPE_F32_OR_F64(x, NULL);
    21272127
    21282128    psS32 i;
  • trunk/psLib/src/math/psSpline.c

    r2221 r2224  
    77 *  polynomials.  It also contains a Gaussian functions.
    88 *
    9  *  @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-10-27 23:31:43 $
     9 *  @version $Revision: 1.58 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-10-28 00:22:53 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    16701670    PS_INT_CHECK_NON_NEGATIVE(numSplines, NULL);
    16711671    PS_INT_CHECK_NON_NEGATIVE(order, NULL);
    1672     PS_FLOAT_COMPARE(max, min, NULL);
     1672    PS_FLOAT_CHECK_NON_EQUAL(max, min, NULL);
    16731673
    16741674    psSpline1D *tmp = NULL;
     
    21242124    PS_PTR_CHECK_NULL(spline, NULL);
    21252125    PS_VECTOR_CHECK_NULL(x, NULL);
    2126     PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F32, NULL);
     2126    PS_VECTOR_CHECK_TYPE_F32_OR_F64(x, NULL);
    21272127
    21282128    psS32 i;
  • trunk/psLib/src/math/psStats.c

    r2221 r2224  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.76 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2004-10-27 23:31:43 $
     11 *  @version $Revision: 1.77 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2004-10-28 00:22:53 $
    1313n *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    14871487    PS_VECTOR_CHECK_NULL(bounds, NULL);
    14881488    PS_VECTOR_CHECK_TYPE(bounds, PS_TYPE_F32, NULL);
    1489     PS_INT_COMPARE(bounds->n, 2, NULL);
     1489    PS_INT_COMPARE(2, bounds->n, NULL);
    14901490
    14911491    psHistogram* newHist = NULL;        // The new histogram structure
     
    16941694
    16951695    if ((stats->options & PS_STAT_USE_RANGE) && (stats->min >= stats->max)) {
    1696         PS_FLOAT_COMPARE(stats->max, stats->min, stats);
     1696        PS_FLOAT_COMPARE(stats->min, stats->max, stats);
    16971697    }
    16981698
Note: See TracChangeset for help on using the changeset viewer.