Loading src/RandomDistributionGenerator.hpp +2 −8 Changes for src/RandomDistributionGenerator.hpp: 2 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -64,8 +64,7 @@ private: long double aim_p = cf.aim_double(p, sum-p); // If the target is unreachable, exit function, only happens when precision error occurs //assert(sum<=1); if(aim_p < target || cf.aim_double(EPSILON, sum-EPSILON) > target) { //std::cout<<"FAILURE "<<aim_p<<" "<<target<<" "<<cf.aim_double(EPSILON, sum-EPSILON)<<std::endl; if((double)aim_p < (double)target || (double)cf.aim_double(EPSILON, sum-EPSILON) > (double)target) { return -1.; } while ((double)step > (double)EPSILON && (double) aim_p != (double) target && p > 0){ Loading Loading @@ -115,7 +114,7 @@ private: distribution[size-1] = EPSILON; min_aim = cf.h(cf.contribution(distribution, size), size); while( (max_aim < target || min_aim > target) && delta > EPSILON ){ while( (max_aim < target || min_aim > target) && delta > EPSILON && (double)max_aim != (double)target && (double)min_aim != (double)target){ __FIRST_STATE_ITERATIONS__++; if( min_aim > target ) Loading @@ -132,7 +131,6 @@ private: min_aim = cf.h(cf.contribution(distribution, size),size); delta/=2; //std::cout<<"x:"<<distribution[0]<<" min:"<<min_aim<<" max:"<<max_aim<<" IT:"<<__FIRST_STATE_ITERATIONS__<<" delta:"<<delta<<std::endl; } contribution = cf.contribution(distribution, size-2); update = cf.update_target(target, contribution, size, size-2); Loading @@ -158,10 +156,6 @@ private: target = cf.aim_triple(dist[triplet[0]],dist[triplet[1]], dist[triplet[2]]); step[0] = cf.random_value_in_approx_interval(sum, target); //std::cout<<"Pas "<<dist[triplet[0]]<<" "<<dist[triplet[1]]<<" "<<dist[triplet[2]]<<" Somme="<<sum<<" "<<step[0]<<std::endl; //assert(step[0] >= 0); //assert(step[0] <=1); if(step[0] < sum){ step[1] = aim_concave_value(sum - step[0], cf.update(target, step, 3, 1)); Loading Loading
src/RandomDistributionGenerator.hpp +2 −8 Changes for src/RandomDistributionGenerator.hpp: 2 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -64,8 +64,7 @@ private: long double aim_p = cf.aim_double(p, sum-p); // If the target is unreachable, exit function, only happens when precision error occurs //assert(sum<=1); if(aim_p < target || cf.aim_double(EPSILON, sum-EPSILON) > target) { //std::cout<<"FAILURE "<<aim_p<<" "<<target<<" "<<cf.aim_double(EPSILON, sum-EPSILON)<<std::endl; if((double)aim_p < (double)target || (double)cf.aim_double(EPSILON, sum-EPSILON) > (double)target) { return -1.; } while ((double)step > (double)EPSILON && (double) aim_p != (double) target && p > 0){ Loading Loading @@ -115,7 +114,7 @@ private: distribution[size-1] = EPSILON; min_aim = cf.h(cf.contribution(distribution, size), size); while( (max_aim < target || min_aim > target) && delta > EPSILON ){ while( (max_aim < target || min_aim > target) && delta > EPSILON && (double)max_aim != (double)target && (double)min_aim != (double)target){ __FIRST_STATE_ITERATIONS__++; if( min_aim > target ) Loading @@ -132,7 +131,6 @@ private: min_aim = cf.h(cf.contribution(distribution, size),size); delta/=2; //std::cout<<"x:"<<distribution[0]<<" min:"<<min_aim<<" max:"<<max_aim<<" IT:"<<__FIRST_STATE_ITERATIONS__<<" delta:"<<delta<<std::endl; } contribution = cf.contribution(distribution, size-2); update = cf.update_target(target, contribution, size, size-2); Loading @@ -158,10 +156,6 @@ private: target = cf.aim_triple(dist[triplet[0]],dist[triplet[1]], dist[triplet[2]]); step[0] = cf.random_value_in_approx_interval(sum, target); //std::cout<<"Pas "<<dist[triplet[0]]<<" "<<dist[triplet[1]]<<" "<<dist[triplet[2]]<<" Somme="<<sum<<" "<<step[0]<<std::endl; //assert(step[0] >= 0); //assert(step[0] <=1); if(step[0] < sum){ step[1] = aim_concave_value(sum - step[0], cf.update(target, step, 3, 1)); Loading