77 LookUp2(
size_t size,
double scale=1.0) : std::vector<T>(size), max(getScale()), scale(scale*
static_cast<double>(max)), scaleInv(1.0/this->scale) {
79 throw std::runtime_error(
"LookUp: scale=0.0 not allowed.");
88 const double scaleInv;
90 double getScaled(
size_t i)
const {
91 return scaleInv * (*this)[i];
94 void putScaled(
size_t i,
double value){
95 (*this)[i] = scale * value;
104 return Type::call<drain::typeIsInteger>(
typeid(T)) ? Type::call<drain::typeMax,double>(
typeid(T)) : 1.0;