## float.api
# Compiled by:
#
src/lib/std/src/standard-core.sublib# This api is implemented in:
#
#
src/lib/std/float.pkg#
api Float {
#
Float;
package math: Math; # Math is from
src/lib/std/src/math.api sharing Float == math::Float;
radix: int::Int;
precision: int::Int;
# the number of digits (each 0..radix-1) in mantissa
max_finite: Float; # maximum finite number
# ** these cause problems on the alpha? **
min_pos: Float; # minimum non-zero positive number
min_normal_pos: Float; # minimum non-zero normalized number
pos_inf: Float;
neg_inf: Float;
+ : (Float, Float) -> Float;
- : (Float, Float) -> Float;
* : (Float, Float) -> Float;
/ : (Float, Float) -> Float;
*+ : (Float, Float, Float) -> Float;
*- : (Float, Float, Float) -> Float;
(-_) : Float -> Float;
abs: Float -> Float;
min: (Float, Float) -> Float;
max: (Float, Float) -> Float;
sign: Float -> Int;
sign_bit: Float -> Bool;
same_sign: (Float, Float) -> Bool;
copy_sign: (Float, Float) -> Float;
compare: (Float, Float) -> Order;
compare_real: (Float, Float) -> ieee_float::Real_Order;
< : (Float, Float) -> Bool;
<= : (Float, Float) -> Bool;
> : (Float, Float) -> Bool;
>= : (Float, Float) -> Bool;
==== : (Float, Float) -> Bool;
!= : (Float, Float) -> Bool;
?=== : (Float, Float) -> Bool;
unordered: (Float, Float) -> Bool;
is_finite: Float -> Bool;
is_nan: Float -> Bool;
is_normal: Float -> Bool;
ilk: Float -> ieee_float::Float_Ilk;
format: number_string::Float_Format -> Float -> String;
scan: number_string::Reader (Char, X) -> number_string::Reader (Float, X);
to_string: Float -> String;
from_string: String -> Null_Or(Float);
to_mantissa_exponent: Float -> { mantissa: Float, exponent: Int };
from_mantissa_exponent: { mantissa: Float, exponent: Int } -> Float;
split: Float -> { whole: Float, frac: Float };
float_mod: Float -> Float;
rem: (Float, Float) -> Float;
next_after: (Float, Float) -> Float;
check_float: Float -> Float;
floor: Float -> int::Int;
ceil: Float -> int::Int;
truncate: Float -> int::Int;
round: Float -> int::Int;
float_floor: Float -> Float;
float_ceil: Float -> Float;
float_truncate: Float -> Float;
float_round: Float -> Float;
to_int: ieee_float::Rounding_Mode -> Float -> Int;
to_multiword_int: ieee_float::Rounding_Mode -> Float -> multiword_int::Int;
from_int: int::Int -> Float;
from_multiword_int: multiword_int::Int -> Float;
to_eight_byte_float: Float -> float64::Float;
from_eight_byte_float: ieee_float::Rounding_Mode -> float64::Float -> Float;
to_decimal: Float -> ieee_float::Decimal_Approx;
from_decimal: ieee_float::Decimal_Approx -> Float;
sum: List( Float ) -> Float;
product: List( Float ) -> Float;
mean: List( Float ) -> Float;
median: List( Float ) -> Float;
list_min: List( Float ) -> Float; # Raises an exception if list is empty.
list_max: List( Float ) -> Float; # Raises an exception if list is empty.
sort: List( Float ) -> List( Float );
sort_and_drop_duplicates: List( Float ) -> List( Float );
};
## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.