IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 32725 for trunk/psModules


Ignore:
Timestamp:
Nov 20, 2011, 3:55:38 PM (15 years ago)
Author:
eugene
Message:

create a pre-alloc version of image smooth to avoid excessive allocs

Location:
trunk/psModules/src/objects
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/objects/pmPCM_MinimizeChisq.c

    r32347 r32725  
    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);
  • trunk/psModules/src/objects/pmPCMdata.c

    r32347 r32725  
    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
  • trunk/psModules/src/objects/pmPCMdata.h

    r32347 r32725  
    3939    float sigma;
    4040    float nsigma;
     41
     42    psImageSmooth_PreAlloc_Data *smdata;
    4143} pmPCMdata;
    4244
Note: See TracChangeset for help on using the changeset viewer.