BFMSS
An implementation of "A Separation Bound for Real Algebraic Expressions", by Burnikel, Funke, Mehlhorn, Schirra, and Schmitt. This provides a good ZeroBoundFunction for use in sign tests.
Unlike the paper, we use log-arithmetic instead of working with exact, big integer values. This means our bound
isn't technically as good as it could be, but we save the cost of working with arithmetic. We also perform all log
arithmetic using Long
s and check for overflow (throwing ArithmeticException
s when detected). In practice we
shouldn't hit this limit, but in case we do, we prefer to throw over failing silently.
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class ZeroBoundFunction
class Object
trait Matchable
class Any