use true floating point math