Source file luamathlib.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
module M (I : Lua.Lib.CORE) = struct
module V = I.V
let ( **-> ) = V.( **-> )
let ( **->> ) x y = x **-> V.result y
let float = V.float
let math_builtins =
[ "abs", V.efunc (float **->> float) abs_float
; "acos", V.efunc (float **->> float) acos
; "asin", V.efunc (float **->> float) asin
; "atan", V.efunc (float **->> float) atan
; "atan2", V.efunc (float **-> float **->> float) atan2
; "ceil", V.efunc (float **->> float) ceil
; "cos", V.efunc (float **->> float) cos
; "floor", V.efunc (float **->> float) floor
; "log", V.efunc (float **->> float) log
; "log10", V.efunc (float **->> float) log10
; "max", V.efunc (float **-> float **->> float) max
; "min", V.efunc (float **-> float **->> float) min
; "mod", V.efunc (float **-> float **->> float) mod_float
; "sin", V.efunc (float **->> float) sin
; "sqrt", V.efunc (float **->> float) sqrt
; "tan", V.efunc (float **->> float) tan
; "random", V.efunc (V.value **->> float) (fun _ -> Random.float 1.0)
; "randomseed", V.efunc (V.int **->> V.unit) Random.init
]
let init = I.register_globals math_builtins
end