public void init(
final SFCDimensionDefinition[] dimensionDefs ) {
binsPerDimension = new BigDecimal[dimensionDefs.length];
int totalPrecision = 0;
for (int d = 0; d < dimensionDefs.length; d++) {
final SFCDimensionDefinition dimension = dimensionDefs[d];
binsPerDimension[d] = TWO.pow(dimension.getBitsOfPrecision());
totalPrecision += dimension.getBitsOfPrecision();
}
minHilbertValue = BigInteger.ZERO;
maxHilbertValue = TWO.pow(
totalPrecision).subtract(
BigDecimal.ONE).toBigInteger();