Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / primitive / check-real.sml
1 (* Copyright (C) 2012,2013 Matthew Fluet.
2 * Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 * Copyright (C) 1997-2000 NEC Research Institute.
5 *
6 * MLton is released under a BSD-style license.
7 * See the file MLton-LICENSE for details.
8 *)
9
10 local
11 fun 'a check (_: 'a, _: 'a) : unit = ()
12
13 local
14 structure R1 = Primitive.Real32
15 structure R2 = PrimitiveFFI.Real32
16 in
17 val () = check (R1.Math.acos, R2.Math.acos)
18 val () = check (R1.Math.asin, R2.Math.asin)
19 val () = check (R1.Math.atan, R2.Math.atan)
20 val () = check (R1.Math.atan2, R2.Math.atan2)
21 val () = check (R1.Math.cos, R2.Math.cos)
22 val () = check (R1.Math.cosh, R2.Math.cosh)
23 val () = check (fn () => R1.Math.e, R2.Math.eGet)
24 val () = check (R1.Math.exp, R2.Math.exp)
25 val () = check (R1.Math.ln, R2.Math.ln)
26 val () = check (R1.Math.log10, R2.Math.log10)
27 val () = check (fn () => R1.Math.pi, R2.Math.piGet)
28 val () = check (R1.Math.pow, R2.Math.pow)
29 val () = check (R1.Math.sin, R2.Math.sin)
30 val () = check (R1.Math.sinh, R2.Math.sinh)
31 val () = check (R1.Math.sqrt, R2.Math.sqrt)
32 val () = check (R1.Math.tan, R2.Math.tan)
33 val () = check (R1.Math.tanh, R2.Math.tanh)
34
35 val () = check (R1.abs, R2.abs)
36 val () = check (R1.+, R2.add)
37 val () = check (R1./, R2.div)
38 val () = check (R1.==, R2.equal)
39 val () = check (R1.frexp, R2.frexp)
40 val () = check (R1.gdtoa, R2.gdtoa)
41 val () = check (R1.ldexp, R2.ldexp)
42 val () = check (R1.<=, R2.le)
43 val () = check (R1.<, R2.lt)
44 val () = check (R1.modf, R2.modf)
45 val () = check (R1.*, R2.mul)
46 val () = check (R1.*+, R2.muladd)
47 val () = check (R1.*-, R2.mulsub)
48 val () = check (R1.~, R2.neg)
49 val () = check (R1.round, R2.round)
50 val () = check (R1.strtor, R2.strtor)
51 val () = check (R1.-, R2.sub)
52 end
53
54 local
55 structure R1 = Primitive.Real64
56 structure R2 = PrimitiveFFI.Real64
57 in
58 val () = check (R1.Math.acos, R2.Math.acos)
59 val () = check (R1.Math.asin, R2.Math.asin)
60 val () = check (R1.Math.atan, R2.Math.atan)
61 val () = check (R1.Math.atan2, R2.Math.atan2)
62 val () = check (R1.Math.cos, R2.Math.cos)
63 val () = check (R1.Math.cosh, R2.Math.cosh)
64 val () = check (fn () => R1.Math.e, R2.Math.eGet)
65 val () = check (R1.Math.exp, R2.Math.exp)
66 val () = check (R1.Math.ln, R2.Math.ln)
67 val () = check (R1.Math.log10, R2.Math.log10)
68 val () = check (fn () => R1.Math.pi, R2.Math.piGet)
69 val () = check (R1.Math.pow, R2.Math.pow)
70 val () = check (R1.Math.sin, R2.Math.sin)
71 val () = check (R1.Math.sinh, R2.Math.sinh)
72 val () = check (R1.Math.sqrt, R2.Math.sqrt)
73 val () = check (R1.Math.tan, R2.Math.tan)
74 val () = check (R1.Math.tanh, R2.Math.tanh)
75
76 val () = check (R1.abs, R2.abs)
77 val () = check (R1.+, R2.add)
78 val () = check (R1./, R2.div)
79 val () = check (R1.==, R2.equal)
80 val () = check (R1.frexp, R2.frexp)
81 val () = check (R1.gdtoa, R2.gdtoa)
82 val () = check (R1.ldexp, R2.ldexp)
83 val () = check (R1.<=, R2.le)
84 val () = check (R1.<, R2.lt)
85 val () = check (R1.modf, R2.modf)
86 val () = check (R1.*, R2.mul)
87 val () = check (R1.*+, R2.muladd)
88 val () = check (R1.*-, R2.mulsub)
89 val () = check (R1.~, R2.neg)
90 val () = check (R1.round, R2.round)
91 val () = check (R1.strtor, R2.strtor)
92 val () = check (R1.-, R2.sub)
93 end
94
95 in
96
97 end