IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3501


Ignore:
Timestamp:
Mar 24, 2005, 1:56:18 PM (21 years ago)
Author:
evanalst
Message:

Update vector mean sample calculation for weighted mean.

Location:
trunk/psLib/src
Files:
2 edited

Legend:

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

    r3377 r3501  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.119 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2005-03-05 21:53:03 $
     11 *  @version $Revision: 1.120 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2005-03-24 23:56:18 $
    1313 *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    212212    } else {
    213213        psF32 errorDivisor = 0.0;
     214        psF32 errorSqr = 0.0;
    214215        if (stats->options & PS_STAT_USE_RANGE) {
    215216            if (maskVector != NULL) {
     
    219220                            (stats->min <= myVector->data.F32[i]) &&
    220221                            (myVector->data.F32[i] <= stats->max)) {
    221                         mean += myVector->data.F32[i]/errors->data.F32[i];
    222                         errorDivisor+= (1.0 / errors->data.F32[i]);
     222                        errorSqr = errors->data.F32[i]*errors->data.F32[i];
     223                        mean += myVector->data.F32[i]/errorSqr;
     224                        errorDivisor+= (1.0 / errorSqr);
    223225                        count++;
    224226                    }
     
    234236                    if ((stats->min <= myVector->data.F32[i]) &&
    235237                            (myVector->data.F32[i] <= stats->max)) {
    236                         mean += myVector->data.F32[i]/errors->data.F32[i];
    237                         errorDivisor+= (1.0 / errors->data.F32[i]);
     238                        errorSqr = errors->data.F32[i]*errors->data.F32[i];
     239                        mean += myVector->data.F32[i]/errorSqr;
     240                        errorDivisor+= (1.0 / errorSqr);
    238241                        count++;
    239242                    }
     
    249252                for (i = 0; i < myVector->n; i++) {
    250253                    if (!(maskVal & maskVector->data.U8[i])) {
    251                         mean += myVector->data.F32[i]/errors->data.F32[i];
    252                         errorDivisor+= (1.0 / errors->data.F32[i]);
     254                        errorSqr = errors->data.F32[i]*errors->data.F32[i];
     255                        mean += myVector->data.F32[i]/errorSqr;
     256                        errorDivisor+= (1.0 / errorSqr);
    253257                        count++;
    254258                    }
     
    261265            } else {
    262266                for (i = 0; i < myVector->n; i++) {
    263                     mean += myVector->data.F32[i]/errors->data.F32[i];
    264                     errorDivisor+= (1.0 / errors->data.F32[i]);
     267                    errorSqr = errors->data.F32[i]*errors->data.F32[i];
     268                    mean += myVector->data.F32[i]/errorSqr;
     269                    errorDivisor+= (1.0 / errorSqr);
    265270                }
    266271                mean /= errorDivisor;
  • trunk/psLib/src/math/psStats.c

    r3377 r3501  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.119 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2005-03-05 21:53:03 $
     11 *  @version $Revision: 1.120 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2005-03-24 23:56:18 $
    1313 *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    212212    } else {
    213213        psF32 errorDivisor = 0.0;
     214        psF32 errorSqr = 0.0;
    214215        if (stats->options & PS_STAT_USE_RANGE) {
    215216            if (maskVector != NULL) {
     
    219220                            (stats->min <= myVector->data.F32[i]) &&
    220221                            (myVector->data.F32[i] <= stats->max)) {
    221                         mean += myVector->data.F32[i]/errors->data.F32[i];
    222                         errorDivisor+= (1.0 / errors->data.F32[i]);
     222                        errorSqr = errors->data.F32[i]*errors->data.F32[i];
     223                        mean += myVector->data.F32[i]/errorSqr;
     224                        errorDivisor+= (1.0 / errorSqr);
    223225                        count++;
    224226                    }
     
    234236                    if ((stats->min <= myVector->data.F32[i]) &&
    235237                            (myVector->data.F32[i] <= stats->max)) {
    236                         mean += myVector->data.F32[i]/errors->data.F32[i];
    237                         errorDivisor+= (1.0 / errors->data.F32[i]);
     238                        errorSqr = errors->data.F32[i]*errors->data.F32[i];
     239                        mean += myVector->data.F32[i]/errorSqr;
     240                        errorDivisor+= (1.0 / errorSqr);
    238241                        count++;
    239242                    }
     
    249252                for (i = 0; i < myVector->n; i++) {
    250253                    if (!(maskVal & maskVector->data.U8[i])) {
    251                         mean += myVector->data.F32[i]/errors->data.F32[i];
    252                         errorDivisor+= (1.0 / errors->data.F32[i]);
     254                        errorSqr = errors->data.F32[i]*errors->data.F32[i];
     255                        mean += myVector->data.F32[i]/errorSqr;
     256                        errorDivisor+= (1.0 / errorSqr);
    253257                        count++;
    254258                    }
     
    261265            } else {
    262266                for (i = 0; i < myVector->n; i++) {
    263                     mean += myVector->data.F32[i]/errors->data.F32[i];
    264                     errorDivisor+= (1.0 / errors->data.F32[i]);
     267                    errorSqr = errors->data.F32[i]*errors->data.F32[i];
     268                    mean += myVector->data.F32[i]/errorSqr;
     269                    errorDivisor+= (1.0 / errorSqr);
    265270                }
    266271                mean /= errorDivisor;
Note: See TracChangeset for help on using the changeset viewer.