Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / real.sig
CommitLineData
7f918cf1
CE
1(* Copyright (C) 2009,2011 Matthew Fluet.
2 * Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9signature REAL =
10 sig
11 structure Format:
12 sig
13 type t
14
15 val exact: t
16 val fix: int option -> t
17 val gen: int option -> t
18 val sci: int option -> t
19 end
20
21 type t
22 exception Input
23 val + : t * t -> t
24 val - : t * t -> t
25 val * : t * t -> t
26 val / : t * t -> t
27 val < : t * t -> bool
28 val <= : t * t -> bool
29 val > : t * t -> bool
30 val >= : t * t -> bool
31 val abs: t -> t
32 val acos: t -> t
33 val add1: t -> t
34 val asin: t -> t
35 val atan2: t * t -> t
36 val atan: t -> t
37 val ceiling: t -> int
38 val choose: t * t -> t
39 structure Class:
40 sig
41 datatype t =
42 INF
43 | NAN
44 | NORMAL
45 | SUBNORMAL
46 | ZERO
47 end
48 val class: t -> Class.t
49 val compare: t * t -> Relation.t
50 val cos: t -> t
51 val dec: t ref -> unit
52 val equals: t * t -> bool
53 val exp: t -> t
54 val floor: t -> int
55 val format: t * Format.t -> string
56 val fromInt: Pervasive.Int.int -> t (* fromInt n = 1 + ... + 1, n times. *)
57 val fromIntInf: Pervasive.IntInf.int -> t
58 val fromString: string -> t option
59 val inc: t ref -> unit
60 val input: In0.t -> t
61 val inverse: t -> t
62 val isFinite: t -> bool
63 val isNan: t -> bool
64 val layout: t -> Layout.t
65 val ln: t -> t
66 val log2: t -> t
67 val log: t * t -> t
68 val max: t * t -> t
69 val maxFinite: t
70 val min: t * t -> t
71 val negOne: t
72 val one: t
73 val pi: t
74 val pow: t * t -> t
75 val prod: t list -> t
76 val realCeil: t -> t
77 val realFloor: t -> t
78 val realMod: t -> t
79 val realPower: t * t -> t
80 val realRound: t -> t
81 val realTrunc: t -> t
82 val rem: t * t -> t
83 val round: t -> int
84 val signBit: t -> bool
85 val sin: t -> t
86 val split: t -> {frac: t, whole: t}
87 val sqrt: t -> t
88 val sub1: t -> t
89 val tan: t -> t
90 val three: t
91 val toIntInf: t -> Pervasive.IntInf.int
92 val toString: t -> string
93 val trunc: t -> int
94 val two: t
95 val zero: t
96 val ~ : t -> t
97 end