(* Math.sml, 1995-02-21, 1995-11-06 *)type real = realval pi = 3.14159265358979323846;val e = 2.7182818284590452354;prim_val sqrt : real -> real = 1 "sml_sqrt";prim_val sin : real -> real = 1 "sml_sin";prim_val cos : real -> real = 1 "sml_cos";prim_val atan : real -> real = 1 "atan_float";prim_val asin : real -> real = 1 "sml_asin";prim_val acos : real -> real = 1 "sml_acos";fun tan r = (sin r / cos r) handle Div => raise Domain;local prim_val atan2_ : real -> real -> real = 2 "sml_atan2"; prim_val pow_ : real -> real -> real = 2 "sml_pow";in fun atan2(x, y) = atan2_ x y; fun pow (x, y) = pow_ x y;endprim_val exp : real -> real = 1 "sml_exp";prim_val ln : real -> real = 1 "sml_ln";local val ln10 = ln 10.0 in fun log10 r = ln r / ln10end;prim_val sinh : real -> real = 1 "sml_sinh";prim_val cosh : real -> real = 1 "sml_cosh";prim_val tanh : real -> real = 1 "sml_tanh";
(* Math.sml, 1995-02-21, 1995-11-06 *)
type real = real
val pi = 3.14159265358979323846;
val e = 2.7182818284590452354;
prim_val sqrt : real -> real = 1 "sml_sqrt";
prim_val sin : real -> real = 1 "sml_sin";
prim_val cos : real -> real = 1 "sml_cos";
prim_val atan : real -> real = 1 "atan_float";
prim_val asin : real -> real = 1 "sml_asin";
prim_val acos : real -> real = 1 "sml_acos";
fun tan r = (sin r / cos r) handle Div => raise Domain;
local
prim_val atan2_ : real -> real -> real = 2 "sml_atan2";
prim_val pow_ : real -> real -> real = 2 "sml_pow";
in
fun atan2(x, y) = atan2_ x y;
fun pow (x, y) = pow_ x y;
end
prim_val exp : real -> real = 1 "sml_exp";
prim_val ln : real -> real = 1 "sml_ln";
local
val ln10 = ln 10.0
in
fun log10 r = ln r / ln10
end;
prim_val sinh : real -> real = 1 "sml_sinh";
prim_val cosh : real -> real = 1 "sml_cosh";
prim_val tanh : real -> real = 1 "sml_tanh";