80 std::size_t noPoints = points.size();
86 boost::uint_fast64_t maxSamples=
static_cast<boost::uint_fast64_t
>( 12. * std::log( 1. /
delta() ) / std::log( 2. ) * noPoints/
sqr(
epsilon()) );
90 for( std::size_t p = 0; p != noPoints; ++p) {
93 min(refPoint - points[p] ) >= 0,
94 "HyperVolumeApproximator: points must be better than reference point"
97 vol[p] = std::exp(sum(log(refPoint[ 0 ] - points[p] )));
100 double totalVolume = sum(vol);
103 boost::uint_fast64_t samples_sofar=0;
104 boost::uint_fast64_t round=0;
115 for( std::size_t i = 0; i < rndpoint.size(); i++ ){
121 if (samples_sofar>=maxSamples)
return maxSamples * totalVolume / noPoints / round;