SchemeBitIndex FDREngineDescription::getSchemeBit(BucketIndex b,
                                                  PositionInBucket p) const {
    assert(p < getBucketWidth(b));
    SchemeBitIndex sbi = p * getNumBuckets() + b;
    assert(sbi < getSchemeWidth());
    return sbi;
}
    double getLowerBound( size_t idx ) const
    {
	return min_val + ( (idx) * getBucketWidth() );
    }
    double getCenter( size_t idx ) const
    {
	return min_val + ( (idx+0.5) * getBucketWidth() );
    }
    /** 
     * return relative count in bin so that the integral over all bins would
     * result in 1.0. Note, that this is the integral and not the sum, so it
     * takes the width of the bins into account.
     */
    double getRelative( size_t idx ) const
    {
	return operator[]( idx ) / getBucketWidth() / (double)total();
    }