RealT ImageHeightMap::height (const Vec2 &at) { //std::size_t byteOffset = sizeof(pixel_t) - _image->bytesPerPixel(); PixelT max = _image->max_pixel_size(); PixelT pixel = _image->read_pixel(Vec3u(at[X], at[Y], 0)); ByteT * pixel_data = (ByteT *)&pixel; pixel_data[3] = 0; ByteT * max_data = (ByteT *)&max; max_data[3] = 0; return RealT(pixel) / RealT(max); }
inline RealT scale_resource_utilization(RealT source_capacity, RealT target_capacity, RealT source_utilization, RealT target_threshold = ::std::numeric_limits<RealT>::infinity()) { return scale_resource_utilization(source_capacity, RealT(1), target_capacity, RealT(1), source_utilization, target_threshold); }
UIntT num_replications_initial(RealT eps, RealT s0, RealT level=0.95) { ::dcs::math::stats::normal_distribution<RealT> dist; RealT z = dist.quantile((1+level)/RealT(2)); RealT r0 = z*s0/eps; return static_cast<UIntT>(::std::ceil(r0*r0)); }
UIntT num_replications(RealT eps, UIntT r0, ::dcs::iterator::iterator_range< ::dcs::iterator::any_forward_iterator<RealT> > const& s0_range, RealT level=0.95, UIntT max_trials=::std::numeric_limits<UIntT>::max()) { if (r0 < 2) { return r0; } UIntT r_max(0); for ( ::dcs::iterator::any_forward_iterator<RealT> it = s0_range.begin(); it != s0_range.end(); ++it ) { RealT r(0); UIntT trial(0); do { ++r0; ::dcs::math::stats::students_t_distribution<RealT> dist(r0-1); RealT t = dist.quantile((1+level)/RealT(2)); r = t*(*it)/eps; r *= r; ++trial; } while (r0 < r && trial < max_trials); r_max = ::std::max(r0, r_max); } return r_max; }
UIntT num_replications(RealT eps, UIntT r0, RealT s0, RealT level=0.95, UIntT max_trials=::std::numeric_limits<UIntT>::max()) { if (r0 < 2) { return r0; } RealT r(0); UIntT trial(0); while (r0 < r && trial < max_trials) { ::dcs::math::stats::students_t_distribution<RealT> dist(r0-1); RealT t = dist.quantile((1+level)/RealT(2)); r = t*s0/eps; r *= r; ++trial; ++r0; } return r0; }
RealT ImageHeightMap::height (const Vec2 &at) { const ByteT * pixel = reader(*_image)[at]; return RealT(*pixel) / RealT(255); }
VectorT simulate(darx_siso_model<VectorT,RealT,UIntT> const& model, VectorT const& u, VectorT const& e, RealT na_value = RealT(0)) { return model.simulate(u, e, na_value); }