static long getScaledBase(final long base, final int factor)
  {
	if (factor == 0)
	{
	  return base;
	}
	else if (factor > 0)
	{
	  return base * SCALES[factor];
	}
	else
	{
	  if (-factor >= SCALES.length)
	  {
		return base / SCALES[SCALES.length - 1] / SCALES[-factor - SCALES.length];
	  }
	  else
	  {
		return base / SCALES[-factor];
	  }
	}
  }