IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38923


Ignore:
Timestamp:
Oct 21, 2015, 9:22:56 AM (11 years ago)
Author:
eugene
Message:

test for nan when setting the max psfQf values

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relphot/src/setMrelCatalog.c

    r38774 r38923  
    1414# define CHECK_VALID_MAG(MAG,D_MAG) (isfinite(MAG) && isfinite(D_MAG) && (MAG > -5.0) && (MAG < 30.0))
    1515# define CHECK_VALID_FLUX(FLUX,D_FLUX) (isfinite(FLUX) && isfinite(D_FLUX))
     16
     17// set A to B if B > A or if A is NAN, as long as B is not NAN
     18# define MAX_NOT_NAN(A,B) { if (isfinite(B) && (!isfinite(A) || (B > A))) A = B; }
    1619
    1720static float MagToFlux (float Mag) {
     
    160163    // various steps only relevant to the final pass
    161164    if (isSetMrelFinal) {
    162       if (isfinite(measure[k].psfQF)     && (measure[k].psfQF     > results->psfQfMax[Nsec]))     results->psfQfMax[Nsec]     = measure[k].psfQF;
    163       if (isfinite(measure[k].psfQFperf) && (measure[k].psfQFperf > results->psfQfPerfMax[Nsec])) results->psfQfPerfMax[Nsec] = measure[k].psfQFperf;
     165      MAX_NOT_NAN (results->psfQfMax[Nsec],     measure[k].psfQF);
     166      MAX_NOT_NAN (results->psfQfPerfMax[Nsec], measure[k].psfQFperf);
    164167
    165168      // are we a PS1 exposure photcode? (hard-wired photcodes)
     
    370373      secfilt[Nsec].psfQfPerfMax = results->psfQfPerfMax[Nsec];
    371374
    372       if (isfinite(secfilt[Nsec].psfQfMax)     && (secfilt[Nsec].psfQfMax     > psfQfMax))     psfQfMax     = secfilt[Nsec].psfQfMax;
    373       if (isfinite(secfilt[Nsec].psfQfPerfMax) && (secfilt[Nsec].psfQfPerfMax > psfQfPerfMax)) psfQfPerfMax = secfilt[Nsec].psfQfPerfMax;
     375      MAX_NOT_NAN (psfQfMax,     secfilt[Nsec].psfQfMax);
     376      MAX_NOT_NAN (psfQfPerfMax, secfilt[Nsec].psfQfPerfMax);
    374377
    375378      StatType *apstats = &results->apstats;
     
    749752    if (IS_DIFF_DB) {
    750753      measure[k].dbFlags |= ID_MEAS_STACK_PRIMARY;
    751       if (measure[k].psfQF     > results->psfQfMax[Nsec])     results->psfQfMax[Nsec]     = measure[k].psfQF;
    752       if (measure[k].psfQFperf > results->psfQfPerfMax[Nsec]) results->psfQfPerfMax[Nsec] = measure[k].psfQFperf;
     754      MAX_NOT_NAN (results->psfQfMax[Nsec],     measure[k].psfQF);
     755      MAX_NOT_NAN (results->psfQfPerfMax[Nsec], measure[k].psfQFperf);
    753756    }
    754757
     
    826829      secfilt[Nsec].psfQfPerfMax = results->psfQfPerfMax[Nsec];
    827830
    828       if (isfinite(secfilt[Nsec].psfQfMax)     && (secfilt[Nsec].psfQfMax     > psfQfMax))     psfQfMax     = secfilt[Nsec].psfQfMax;
    829       if (isfinite(secfilt[Nsec].psfQfPerfMax) && (secfilt[Nsec].psfQfPerfMax > psfQfPerfMax)) psfQfPerfMax = secfilt[Nsec].psfQfPerfMax;
     831      MAX_NOT_NAN (psfQfMax,     secfilt[Nsec].psfQfMax);
     832      MAX_NOT_NAN (psfQfPerfMax, secfilt[Nsec].psfQfPerfMax);
    830833    }
    831834
Note: See TracChangeset for help on using the changeset viewer.