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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
use crate::*;
pub fn lean_float_to_uint8(a: f64) -> u8 {
a as u8
}
pub fn lean_float_to_uint16(a: f64) -> u16 {
a as u16
}
pub fn lean_float_to_uint32(a: f64) -> u32 {
a as u32
}
pub fn lean_float_to_uint64(a: f64) -> u64 {
a as u64
}
pub fn lean_float_to_usize(a: f64) -> usize {
a as usize
}
pub fn lean_float_add(a: f64, b: f64) -> f64 {
a + b
}
pub fn lean_float_sub(a: f64, b: f64) -> f64 {
a - b
}
pub fn lean_float_mul(a: f64, b: f64) -> f64 {
a * b
}
pub fn lean_float_div(a: f64, b: f64) -> f64 {
a / b
}
pub fn lean_float_negate(a: f64) -> f64 {
-a
}
pub fn lean_float_beq(a: f64, b: f64) -> u8 {
(a == b) as u8
}
pub fn lean_float_decLe(a: f64, b: f64) -> u8 {
(a <= b) as u8
}
pub fn lean_float_decLt(a: f64, b: f64) -> u8 {
(a < b) as u8
}
pub fn lean_uint64_to_float(a: u64) -> f64 {
a as f64
}
#[link(name = "leanshared")]
extern "C" {
pub fn lean_float_to_string(a: f64) -> lean_obj_res;
pub fn lean_float_scaleb(a: f64, b: b_lean_obj_arg) -> f64;
pub fn lean_float_isnan(a: f64) -> u8;
pub fn lean_float_isfinite(a: f64) -> u8;
pub fn lean_float_isinf(a: f64) -> u8;
pub fn lean_float_frexp(a: u8) -> lean_obj_res;
}