Changeset 26987


Ignore:
Timestamp:
05/04/22 13:46:00 (3 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixing memory leaks

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/Random/randomgenerator.cpp

    r26656 r26987  
    1818
    1919      pseed = new unsigned int;
    20                         *pseed = std::chrono::steady_clock::now().time_since_epoch()/std::chrono::milliseconds(1);
     20                *pseed = std::chrono::steady_clock::now().time_since_epoch()/std::chrono::milliseconds(1);
    2121      a = 1103515245;                  // BSD Formula
    2222      c = 12345;                                             // BSD Formula
     
    2424                        return;
    2525        }/*}}}*/
    26 
    2726  linear_congruential_engine::linear_congruential_engine(unsigned int _a, unsigned int _b, unsigned int _m){/*{{{*/
    2827
    2928      pseed = new unsigned int;
    30                         *pseed = std::chrono::steady_clock::now().time_since_epoch()/std::chrono::milliseconds(1);
     29                *pseed = std::chrono::steady_clock::now().time_since_epoch()/std::chrono::milliseconds(1);
    3130      a = _a;
    3231      c = _b;
     
    3433                        return;
    3534        }/*}}}*/
    36 
    3735        linear_congruential_engine::~linear_congruential_engine(){}
    3836
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_sampling.cpp

    r26747 r26987  
    1313void GaussianVector(Vector<IssmDouble>* ppf,int seed){/*{{{*/
    1414
    15 
    16         /*Intermediaries*/
    17         double      rdnumber;
    18 
    1915        /*Define seed*/
    2016        rnd::linear_congruential_engine random_engine;
    21         if(seed>=0)
    22         {
     17        if(seed>=0){
    2318                int my_rank;
    2419                ISSM_MPI_Comm_rank(ISSM_MPI_COMM_WORLD,&my_rank);
     
    2823
    2924        /* Define univariate distribution */
    30 
    3125        rnd::normal_distribution distribution(0.0,1.0);
    3226
     
    3832        ppf->GetLocalSize(&M);
    3933        for(int i=0;i<M;i++){
    40                 rdnumber = distribution.generator(random_engine);
     34                double rdnumber = distribution.generator(random_engine);
    4135                ppf->SetValue(local_indices[i],rdnumber,INS_VAL);
    4236        }
    4337        ppf->Assemble();
    4438
     39        /*Cleanup*/
     40        random_engine.free_resources();
     41        xDelete<int>(local_indices);
     42        xDelete<IssmDouble>(local_vector);
    4543}/*}}}*/
    4644void solutionsequence_sampling(FemModel* femmodel){
Note: See TracChangeset for help on using the changeset viewer.