IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 25, 2006, 6:34:28 PM (20 years ago)
Author:
jhoblitt
Message:

add gcc format attributes to:

psAbort()
psErrorStackPrint()
p_psError()
p_psWarning()
psLogMsg()
p_psTrace()

add PS_ASSERT_LONG_LARGER_THAN_OR_EQUAL
add PS_ASSERT_S64_WITHIN_RANGE
fix PS_ASSERT_LONG_WITHIN_RANGE
fix a wide range of format related issues:

  • missing format field specifiers
  • missing format args
  • incorrect format field specifiers
  • constants declared with the wrong type (float vs. int)
  • PS_ASSERT* for the wrong type
  • attemps to print structs with *printf()
  • unportable format specifiers, eg. long vs. long long
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/math/psStats.c

    r8245 r8627  
    1616 * use ->min and ->max (PS_STAT_USE_RANGE)
    1717 *
    18  *  @version $Revision: 1.184 $ $Name: not supported by cvs2svn $
    19  *  @date $Date: 2006-08-09 02:26:44 $
     18 *  @version $Revision: 1.185 $ $Name: not supported by cvs2svn $
     19 *  @date $Date: 2006-08-26 04:34:28 $
    2020 *
    2121 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    665665    if (count == 0) {
    666666        stats->sampleStdev = NAN;
    667         psLogMsg(__func__, PS_LOG_WARN, "WARNING: vectorSampleStdev(): no valid psVector elements (%d).  Setting stats->sampleStdev = NAN.\n", count);
     667        psLogMsg(__func__, PS_LOG_WARN, "WARNING: vectorSampleStdev(): no valid psVector elements (%ld).  Setting stats->sampleStdev = NAN.\n", count);
    668668        return false;
    669669    }
    670670    if (count == 1) {
    671671        stats->sampleStdev = 0.0;
    672         psLogMsg(__func__, PS_LOG_WARN, "WARNING: vectorSampleStdev(): only one valid psVector elements (%d).  Setting stats->sampleStdev = 0.0.\n", count);
     672        psLogMsg(__func__, PS_LOG_WARN, "WARNING: vectorSampleStdev(): only one valid psVector elements (%ld).  Setting stats->sampleStdev = 0.0.\n", count);
    673673        return false;
    674674    }
     
    713713
    714714    // Ensure that stats->clipSigma is within the proper range.
    715     PS_ASSERT_INT_WITHIN_RANGE(stats->clipSigma,
    716                                PS_CLIPPED_SIGMA_LB,
    717                                PS_CLIPPED_SIGMA_UB, -1);
     715    PS_ASSERT_FLOAT_WITHIN_RANGE(stats->clipSigma,
     716                                 PS_CLIPPED_SIGMA_LB,
     717                                 PS_CLIPPED_SIGMA_UB, -1);
    718718
    719719    // Allocate a psStats structure for calculating the mean, median, and
     
    777777                        fabsf(myVector->data.F32[j] - clippedMean) > stats->clipSigma * errors->data.F32[j]) {
    778778                    tmpMask->data.U8[j] = 0xff;
    779                     psTrace("psLib.math", 10, "Clipped %d: %f +/- %f\n", j,
     779                    psTrace("psLib.math", 10, "Clipped %ld: %f +/- %f\n", j,
    780780                            myVector->data.F32[j], errors->data.F32[j]);
    781781                    numClipped++;
     
    788788                        fabsf(myVector->data.F32[j] - clippedMean) > (stats->clipSigma * clippedStdev)) {
    789789                    tmpMask->data.U8[j] = 0xff;
    790                     psTrace("psLib.math", 10, "Clipped %d: %f\n", j, myVector->data.F32[j]);
     790                    psTrace("psLib.math", 10, "Clipped %ld: %f\n", j, myVector->data.F32[j]);
    791791                    numClipped++;
    792792                    clipped = true;
     
    896896    PS_ASSERT_VECTOR_TYPE(yVec, PS_TYPE_F32, NAN);
    897897    //    PS_ASSERT_VECTORS_SIZE_EQUAL(xVec, yVec, NAN);
    898     PS_ASSERT_INT_WITHIN_RANGE(binNum, 0, (xVec->n - 1), NAN);
    899     PS_ASSERT_INT_WITHIN_RANGE(binNum, 0, (yVec->n - 1), NAN);
     898    PS_ASSERT_INT_WITHIN_RANGE(binNum, 0, (int)(xVec->n - 1), NAN);
     899    PS_ASSERT_INT_WITHIN_RANGE(binNum, 0, (int)(yVec->n - 1), NAN);
    900900
    901901    psVector *x = psVectorAlloc(3, PS_TYPE_F64);
     
    10081008    psTrace("psLib.math", 4, "---- %s() begin ----\n", __func__);
    10091009    PS_ASSERT_VECTOR_NON_NULL(params, NAN);
    1010     PS_ASSERT_VECTOR_SIZE(params, 2, NAN);
     1010    PS_ASSERT_VECTOR_SIZE(params, (long)2, NAN);
    10111011    PS_ASSERT_VECTOR_TYPE(params, PS_TYPE_F32, NAN);
    10121012    PS_ASSERT_VECTOR_NON_NULL(coords, NAN);
    1013     PS_ASSERT_VECTOR_SIZE(coords, 1, NAN);
     1013    PS_ASSERT_VECTOR_SIZE(coords, (long)1, NAN);
    10141014    PS_ASSERT_VECTOR_TYPE(coords, PS_TYPE_F32, NAN);
    10151015
     
    10201020    psF32 gauss = psGaussian(x, mean, stdev, false);
    10211021    if (deriv) {
    1022         PS_ASSERT_VECTOR_SIZE(deriv, 2, NAN);
     1022        PS_ASSERT_VECTOR_SIZE(deriv, (long)2, NAN);
    10231023        PS_ASSERT_VECTOR_TYPE(deriv, PS_TYPE_F32, NAN);
    10241024        psF32 tmp = (x - mean) * gauss;
     
    11361136        // we get here, we know that binSize != 0.0.
    11371137        long numBins = (max - min) / binSize; // Number of bins
    1138         psTrace("psLib.math", 6, "Numbins is %d\n", numBins);
     1138        psTrace("psLib.math", 6, "Numbins is %ld\n", numBins);
    11391139        psTrace("psLib.math", 6, "Creating a robust histogram from data range (%.2f - %.2f)\n", min, max);
    11401140        // Generate the histogram
     
    11591159        // ADD step 2: Find the bin which contains the 50% data point.
    11601160        totalDataPoints = cumulative->nums->data.F32[numBins - 1];
    1161         psTrace("psLib.math", 6, "Total data points is %d\n", totalDataPoints);
     1161        psTrace("psLib.math", 6, "Total data points is %ld\n", totalDataPoints);
    11621162        long binMedian;
    11631163        if (totalDataPoints/2.0 < cumulative->nums->data.F32[0]) {
     
    11701170            if (binMedian < 0) {
    11711171                psError(PS_ERR_UNKNOWN, false,
    1172                         "Failed to calculate the 50 precent data point (%d).\n", binMedian);
     1172                        "Failed to calculate the 50 precent data point (%ld).\n", binMedian);
    11731173                psFree(statsMinMax);
    11741174                psFree(histogram);
     
    11791179            }
    11801180        }
    1181         psTrace("psLib.math", 6, "The median bin is %d (%.2f to %.2f)\n", binMedian,
     1181        psTrace("psLib.math", 6, "The median bin is %ld (%.2f to %.2f)\n", binMedian,
    11821182                cumulative->bounds->data.F32[binMedian], cumulative->bounds->data.F32[binMedian+1]);
    11831183
     
    12171217            }
    12181218        }
    1219         psTrace("psLib.math", 6, "The 15.8655%% and 84.1345%% data point bins are (%d, %d).\n",
     1219        psTrace("psLib.math", 6, "The 15.8655%% and 84.1345%% data point bins are (%ld, %ld).\n",
    12201220                binLo, binHi);
    12211221        psTrace("psLib.math", 6, "binLo midpoint is %f\n", PS_BIN_MIDPOINT(cumulative, binLo));
     
    12481248        #else
    12491249        // This code basically interpolates to find the positions exactly.
    1250         psTrace("psLib.math", 6, "binLo is %d.  Nums at that bin and the next are (%.2f, %.2f)\n",
     1250        psTrace("psLib.math", 6, "binLo is %ld.  Nums at that bin and the next are (%.2f, %.2f)\n",
    12511251                binLo, cumulative->nums->data.F32[binLo], cumulative->nums->data.F32[binLo+1]);
    1252         psTrace("psLib.math", 6, "binHi is %d.  Nums at that bin and the next are (%.2f, %.2f)\n",
     1252        psTrace("psLib.math", 6, "binHi is %ld.  Nums at that bin and the next are (%.2f, %.2f)\n",
    12531253                binHi, cumulative->nums->data.F32[binHi], cumulative->nums->data.F32[binHi+1]);
    12541254
     
    13041304            psTrace("psLib.math", 6, "Masking data more than 25 bins from the median\n");
    13051305            psTrace("psLib.math", 6,
    1306                     "The median is at bin number %d.  We mask bins outside the bin range (%d:%d)\n",
     1306                    "The median is at bin number %ld.  We mask bins outside the bin range (%ld:%ld)\n",
    13071307                    binMedian, maskLo, maskHi);
    13081308            psTrace("psLib.math", 6, "Masking data outside (%f %f)\n", medianLo, medianHi);
     
    13101310                if ((myVector->data.F32[i] < medianLo) || (myVector->data.F32[i] > medianHi)) {
    13111311                    mask->data.U8[i] = 0xff;
    1312                     psTrace("psLib.math", 6, "Masking element %d is %f\n", i, myVector->data.F32[i]);
     1312                    psTrace("psLib.math", 6, "Masking element %ld is %f\n", i, myVector->data.F32[i]);
    13131313                }
    13141314            }
     
    13501350        return false;
    13511351    }
    1352     psTrace("psLib.math", 6, "The 25-percent and 75-precent data point bins are (%d, %d).\n", binLo25, binHi25);
     1352    psTrace("psLib.math", 6, "The 25-percent and 75-precent data point bins are (%ld, %ld).\n", binLo25, binHi25);
    13531353
    13541354    // ADD step 8: Interpolate to find these two positions exactly: these are the upper and lower quartile
     
    13811381    }
    13821382    stats->robustN50 = N50;
    1383     psTrace("psLib.math", 6, "The robustN50 is %d.\n", N50);
     1383    psTrace("psLib.math", 6, "The robustN50 is %ld.\n", N50);
    13841384
    13851385
     
    14131413        psTrace("psLib.math", 6, "The new min/max values are (%f, %f).\n", min, max);
    14141414        psTrace("psLib.math", 6, "The new bin size is %f.\n", newBinSize);
    1415         psTrace("psLib.math", 6, "The numBins is %d\n", numBins);
     1415        psTrace("psLib.math", 6, "The numBins is %ld\n", numBins);
    14161416
    14171417        psHistogram *histogram = psHistogramAlloc(min, max, numBins); // A new histogram (without outliers)
     
    14601460            }
    14611461        }
    1462         psTrace("psLib.math", 6, "The peak bin is %d, with %f data.n", binNum, binMaxNums);
     1462        psTrace("psLib.math", 6, "The peak bin is %ld, with %f data.n", binNum, binMaxNums);
    14631463
    14641464        // Fit a Gaussian to the bins in the range 20 sigma of the robust histogram median.
     
    16961696    PS_ASSERT_VECTOR_NON_NULL(bounds, NULL);
    16971697    PS_ASSERT_VECTOR_TYPE(bounds, PS_TYPE_F32, NULL);
    1698     PS_ASSERT_INT_LARGER_THAN_OR_EQUAL(bounds->n, 2, NULL);
     1698    PS_ASSERT_LONG_LARGER_THAN_OR_EQUAL(bounds->n, (long)2, NULL);
    16991699
    17001700    // Allocate memory for the new histogram structure.
     
    17611761    PS_ASSERT_PTR_NON_NULL(out->bounds, false);
    17621762    PS_ASSERT_PTR_NON_NULL(out->nums, false);
    1763     PS_ASSERT_INT_WITHIN_RANGE(binNum, 0, ((out->nums->n)-1), false);
     1763    PS_ASSERT_LONG_WITHIN_RANGE(binNum, (long)0, (long)((out->nums->n)-1), false);
    17641764    PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(error, 0.0, false);
    17651765    PS_ASSERT_FLOAT_WITHIN_RANGE(data, out->bounds->data.F32[0],
Note: See TracChangeset for help on using the changeset viewer.