signature REAL structure Real : REAL where type real = real structure LargeReal : REAL = Real
An extended version of the Standard ML Basis' REAL signature.
See also: IEEEReal, MATH, HASHABLE, ORDERED
Imported implicitly.
signature REAL = sig eqtype real type t = real structure Math : MATH where type real = real val posInf : real val negInf : real val ~ : real -> real val op + : real * real -> real val op - : real * real -> real val op * : real * real -> real val op / : real * real -> real val rem : real * real -> real val *+ : real * real * real -> real val *- : real * real * real -> real val abs : real -> real val min : real * real -> real val max : real * real -> real val sign : real -> int val signBit : real -> bool val sameSign : real * real -> bool val copySign : real * real -> real val op < : real * real -> bool val op > : real * real -> bool val op <= : real * real -> bool val op >= : real * real -> bool val equal : real * real -> bool val compare : real * real -> order val compareReal : real * real -> IEEEReal.real_order val == : real * real -> bool val != : real * real -> bool val ?= : real * real -> bool val isFinite : real -> bool val isNan : real -> bool val isNormal : real -> bool val class : real -> IEEEReal.float_class val checkFloat : real -> real val ceil : real -> int val floor : real -> int val trunc : real -> int val round : real -> int val realFloor : real -> real val realCeil : real -> real val realTrunc : real -> real val realRound : real -> real val toInt : IEEEReal.rounding_mode -> real -> int val toLargeInt : IEEEReal.rounding_mode -> real -> LargeInt.int val fromInt : int -> real val fromLargeInt : LargeInt.int -> real val toLarge : real -> LargeReal.real val fromLarge : IEEEReal.rounding_mode -> LargeReal.real -> real val toString : real -> string val fromString : string -> real option val scan : (char,'a) StringCvt.reader -> (real,'a) StringCvt.reader end
Items not described here are as in the Standard ML Basis' REAL signature.
Limitations: The following standard values and functions are currently missing:
Furthermore, the functions isNormal and class are not implemented accurately.
A type for representing floating point numbers. Note that, unlike in the Standard Basis, real is an equality type. However, two reals compare as equal only if they have exactly the same representation. In particular, 0.0 <> ~0.0. For IEEE equality, Real.== should be used.
An explicit equality function on reals. Equivalent to op=.
A hash function on reals.