IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 32754


Ignore:
Timestamp:
Nov 22, 2011, 10:29:32 AM (15 years ago)
Author:
eugene
Message:

merging changes from trunk (add psImageSmooth_PreAlloc to minimize memory locking)

Location:
tags/ipp-20111110/psModules/src/objects
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • tags/ipp-20111110/psModules/src/objects

  • tags/ipp-20111110/psModules/src/objects/pmPCM_MinimizeChisq.c

    r32347 r32754  
    324324        // * threading takes place above this level
    325325        pcm->modelConvFlux = psImageCopy (pcm->modelConvFlux, pcm->modelFlux, pcm->modelFlux->type.type);
    326         psImageSmooth (pcm->modelConvFlux, pcm->sigma, pcm->nsigma);
     326        psImageSmooth_PreAlloc_F32 (pcm->modelConvFlux, pcm->smdata);
     327        // psImageSmooth (pcm->modelConvFlux, pcm->sigma, pcm->nsigma);
    327328    } else {
    328329        psImageConvolveKernel (pcm->modelConvFlux, pcm->modelFlux, NULL, 0, pcm->psfFFT);
     
    343344            // * threading takes place above this level
    344345            dmodelConv = psImageCopy (dmodelConv, dmodel, dmodel->type.type);
    345             psImageSmooth (dmodelConv, pcm->sigma, pcm->nsigma);
     346            psImageSmooth_PreAlloc_F32 (dmodelConv, pcm->smdata);
     347            // psImageSmooth (dmodelConv, pcm->sigma, pcm->nsigma);
    346348        } else {
    347349            psImageConvolveKernel (dmodelConv, dmodel, NULL, 0, pcm->psfFFT);
     
    363365            // * threading takes place above this level
    364366            dmodelConv = psImageCopy (dmodelConv, dmodel, dmodel->type.type);
    365             psImageSmooth (dmodelConv, pcm->sigma, pcm->nsigma);
     367            psImageSmooth_PreAlloc_F32 (dmodelConv, pcm->smdata);
     368            // psImageSmooth (dmodelConv, pcm->sigma, pcm->nsigma);
    366369        } else {
    367370            psImageConvolveFFT (dmodelConv, dmodel, NULL, 0, pcm->psf);
  • tags/ipp-20111110/psModules/src/objects/pmPCMdata.c

    r32347 r32754  
    5757    psFree (pcm->psfFFT);
    5858    psFree (pcm->constraint);
     59    psFree (pcm->smdata); // pre-allocated data for psImageSmooth_PreAlloc
    5960    return;
    6061}
     
    284285    pcm->sigma = 0.5 * (FWHM_MAJOR + FWHM_MINOR) / 2.35;
    285286    pcm->nsigma = 2.0;
     287
     288    pcm->smdata = psImageSmooth_PreAlloc_DataAlloc (source->pixels, pcm->sigma, pcm->nsigma);
     289# else
     290    pcm->smdata = NULL;
    286291# endif
    287292
     
    393398            pcm->dmodelsConvFlux->data[n] = psImageCopy (pcm->dmodelsConvFlux->data[n], source->pixels, PS_TYPE_F32);
    394399        }
     400        psFree(pcm->smdata);
     401        pcm->smdata = psImageSmooth_PreAlloc_DataAlloc (source->pixels, pcm->sigma, pcm->nsigma);
    395402    }
    396403
  • tags/ipp-20111110/psModules/src/objects/pmPCMdata.h

    r32347 r32754  
    3939    float sigma;
    4040    float nsigma;
     41
     42    psImageSmooth_PreAlloc_Data *smdata;
    4143} pmPCMdata;
    4244
  • tags/ipp-20111110/psModules/src/objects/pmSourceFitPCM.c

    r32347 r32754  
    6767
    6868    psImage *covar = psImageAlloc (params->n, params->n, PS_TYPE_F32);
     69    // NOTE : 4 allocs to here
    6970
    7071    float t1, t2, t3, t4, t5;
    7172    if (TIMING) { t1 = psTimerMark ("pmSourceFitPCM"); }
    7273
     74    // NOTE : 996 allocs in here
    7375    bool fitStatus = pmPCM_MinimizeChisq (myMin, covar, params, source, pcm);
    7476    if (TIMING) { t2 = psTimerMark ("pmSourceFitPCM"); }
Note: See TracChangeset for help on using the changeset viewer.