IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 22, 2006, 12:59:32 PM (20 years ago)
Author:
Paul Price
Message:

Adding reporting of how many values were clipped.

File:
1 edited

Legend:

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

    r7131 r7166  
    7474        printf("        using a psF32 in vector\n");
    7575        in = psVectorCopy(in, truth, PS_TYPE_F32);
    76         if (VERBOSE) {
    77             for (psS32 i=0;i<numData;i++) {
    78                 printf("Original in data %d: (%.1f)\n", i, in->data.F32[i]);
    79             }
    80         }
    8176    }
    8277
     
    8479        printf("        using a psF64 in vector\n");
    8580        in = psVectorCopy(in, truth, PS_TYPE_F64);
    86 
    87         if (VERBOSE) {
    88             for (psS32 i=0;i<numData;i++) {
    89                 printf("Original in data %d: (%.1f)\n", i, in->data.F64[i]);
    90             }
    91         }
    9281    }
    9382
     
    9584        printf("        using a psS8 in vector\n");
    9685        in = psVectorCopy(in, truth, PS_TYPE_S8);
    97 
    98         if (VERBOSE) {
    99             for (psS32 i=0;i<numData;i++) {
    100                 printf("Original in data %d: (%d)\n", i, in->data.S8[i]);
    101             }
    102         }
    10386    }
    10487
     
    10689        printf("        using a psU16 in vector\n");
    10790        in = psVectorCopy(in, truth, PS_TYPE_U16);
    108 
    109         if (VERBOSE) {
    110             for (psS32 i=0;i<numData;i++) {
    111                 printf("Original in data %d: (%d)\n", i, in->data.U16[i]);
    112             }
    113         }
    11491    }
    11592
     
    11794        printf("        using a psS32 in vector\n");
    11895        in = psVectorCopy(in, truth, PS_TYPE_S32);
    119 
    120         if (VERBOSE) {
    121             for (psS32 i=0;i<numData;i++) {
    122                 printf("Original in data %d: (%d)\n", i, in->data.S32[i]);
    123             }
    124         }
    12596    }
    12697
     
    136107            errors->n++;
    137108        }
    138 
    139         if (VERBOSE) {
    140             for (psS32 i=0;i<numData;i++) {
    141                 printf("Original errors data %d: (%.1f)\n", i, errors->data.F32[i]);
    142             }
    143         }
    144109    }
    145110
     
    151116            errors->n++;
    152117        }
    153 
    154         if (VERBOSE) {
    155             for (psS32 i=0;i<numData;i++) {
    156                 printf("Original errors data %d: (%.1f)\n", i, errors->data.F64[i]);
    157             }
    158         }
    159118    }
    160119
     
    166125            errors->n++;
    167126        }
    168 
    169         if (VERBOSE) {
    170             for (psS32 i=0;i<numData;i++) {
    171                 printf("Original errors data %d: (%d)\n", i, errors->data.S8[i]);
    172             }
    173         }
    174127    }
    175128
     
    181134            errors->n++;
    182135        }
    183 
    184         if (VERBOSE) {
    185             for (psS32 i=0;i<numData;i++) {
    186                 printf("Original errors data %d: (%d)\n", i, errors->data.U16[i]);
    187             }
    188         }
    189136    }
    190137
     
    196143            errors->n++;
    197144        }
    198 
    199         if (VERBOSE) {
    200             for (psS32 i=0;i<numData;i++) {
    201                 printf("Original errors data %d: (%d)\n", i, errors->data.S32[i]);
    202             }
    203         }
    204145    }
    205146
     
    216157            mask->n++;
    217158        }
    218 
    219         if (VERBOSE) {
    220             for (psS32 i=0;i<numData;i++) {
    221                 printf("Original mask data %d: (%d)\n", i, mask->data.U8[i]);
    222             }
    223         }
    224159    }
    225160
     
    231166            mask->n++;
    232167        }
    233 
    234         if (VERBOSE) {
    235             for (psS32 i=0;i<numData;i++) {
    236                 printf("Original mask data %d: (%d)\n", i, mask->data.S32[i]);
    237             }
    238         }
    239168    }
    240169
     
    246175    outliers->n = numData;
    247176    psVectorInit(outliers, 0);
     177    long numOutliers = 0;
    248178    if (flags & TST_IN_F32) {
    249179        for (psS32 i=0;i<numData;i++) {
     
    251181                in->data.F32[i] = 100.0;
    252182                outliers->data.U8[i] = 1;
    253             }
    254         }
    255 
    256         if (VERBOSE) {
    257             for (psS32 i=0;i<numData;i++) {
    258                 printf("Original in data %d: (%.1f)\n", i, in->data.F32[i]);
     183                numOutliers++;
     184            }
     185        }
     186
     187        if (VERBOSE) {
     188            for (psS32 i=0;i<numData;i++) {
     189                printf("Data %d: (%f)\n", i, in->data.F32[i]);
    259190            }
    260191        }
     
    265196                in->data.F64[i] = 100.0;
    266197                outliers->data.U8[i] = 1;
    267             }
    268         }
    269 
    270         if (VERBOSE) {
    271             for (psS32 i=0;i<numData;i++) {
    272                 printf("Original in data %d: (%.1f)\n", i, in->data.F64[i]);
     198                numOutliers++;
     199            }
     200        }
     201
     202        if (VERBOSE) {
     203            for (psS32 i=0;i<numData;i++) {
     204                printf("Data %d: (%f)\n", i, in->data.F64[i]);
    273205            }
    274206        }
     
    279211                in->data.S8[i] = 100;
    280212                outliers->data.U8[i] = 1;
    281             }
    282         }
    283 
    284         if (VERBOSE) {
    285             for (psS32 i=0;i<numData;i++) {
    286                 printf("Original in data %d: (%d)\n", i, in->data.S8[i]);
     213                numOutliers++;
     214            }
     215        }
     216
     217        if (VERBOSE) {
     218            for (psS32 i=0;i<numData;i++) {
     219                printf("Data %d: (%d)\n", i, in->data.S8[i]);
    287220            }
    288221        }
     
    293226                in->data.U16[i] = 100;
    294227                outliers->data.U8[i] = 1;
    295             }
    296         }
    297 
    298         if (VERBOSE) {
    299             for (psS32 i=0;i<numData;i++) {
    300                 printf("Original in data %d: (%d)\n", i, in->data.U16[i]);
     228                numOutliers++;
     229            }
     230        }
     231
     232        if (VERBOSE) {
     233            for (psS32 i=0;i<numData;i++) {
     234                printf("Data %d: (%d)\n", i, in->data.U16[i]);
    301235            }
    302236        }
     
    307241                in->data.S32[i] = 100;
    308242                outliers->data.U8[i] = 1;
    309             }
    310         }
    311 
    312         if (VERBOSE) {
    313             for (psS32 i=0;i<numData;i++) {
    314                 printf("Original in data %d: (%d)\n", i, in->data.S32[i]);
    315             }
    316         }
    317     }
     243                numOutliers++;
     244            }
     245        }
     246
     247        if (VERBOSE) {
     248            for (psS32 i=0;i<numData;i++) {
     249                printf("Data %d: (%d)\n", i, in->data.S32[i]);
     250            }
     251        }
     252    }
     253
     254    printf("%ld outliers.\n", numOutliers);
    318255
    319256    //
     
    342279    psStats *myStats = psStatsAlloc(PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV);
    343280    myStats->clipSigma = 5.0;
     281    myStats->clipIter = 2;
    344282    psStats *rc = psVectorStats(myStats, in, errors, mask, maskValue);
    345283    if (rc == NULL) {
     
    353291            testStatus = false;
    354292        }
     293
     294        printf("Used %ld data points after clipping %ld.\n", myStats->clippedNvalues,
     295               in->n - myStats->clippedNvalues);
    355296
    356297        if (fabs(myStats->clippedMean - sampleMean) > (ERROR_TOLERANCE * sampleMean)) {
Note: See TracChangeset for help on using the changeset viewer.