lean_sys/primitive/
float.rs

1use crate::*;
2
3pub fn lean_float_to_uint8(a: f64) -> u8 {
4    //NOTE: this performs a saturating cast, as desired
5    a as u8
6}
7pub fn lean_float_to_uint16(a: f64) -> u16 {
8    //NOTE: this performs a saturating cast, as desired
9    a as u16
10}
11pub fn lean_float_to_uint32(a: f64) -> u32 {
12    //NOTE: this performs a saturating cast, as desired
13    a as u32
14}
15pub fn lean_float_to_uint64(a: f64) -> u64 {
16    //NOTE: this performs a saturating cast, as desired
17    a as u64
18}
19pub fn lean_float_to_usize(a: f64) -> usize {
20    //NOTE: this performs a saturating cast, as desired
21    a as usize
22}
23pub fn lean_float_to_int8(a: f64) -> u8 {
24    //NOTE: this performs a saturating cast, as desired
25    a as i8 as u8
26}
27pub fn lean_float_to_int16(a: f64) -> u16 {
28    //NOTE: this performs a saturating cast, as desired
29    a as i16 as u16
30}
31pub fn lean_float_to_int32(a: f64) -> u32 {
32    //NOTE: this performs a saturating cast, as desired
33    a as i32 as u32
34}
35pub fn lean_float_to_int64(a: f64) -> u64 {
36    //NOTE: this performs a saturating cast, as desired
37    a as i64 as u64
38}
39pub fn lean_float_to_isize(a: f64) -> usize {
40    //NOTE: this performs a saturating cast, as desired
41    a as isize as usize
42}
43pub fn lean_float_add(a: f64, b: f64) -> f64 {
44    a + b
45}
46pub fn lean_float_sub(a: f64, b: f64) -> f64 {
47    a - b
48}
49pub fn lean_float_mul(a: f64, b: f64) -> f64 {
50    a * b
51}
52pub fn lean_float_div(a: f64, b: f64) -> f64 {
53    a / b
54}
55pub fn lean_float_negate(a: f64) -> f64 {
56    -a
57}
58pub fn lean_float_beq(a: f64, b: f64) -> u8 {
59    (a == b) as u8
60}
61pub fn lean_float_decLe(a: f64, b: f64) -> u8 {
62    (a <= b) as u8
63}
64pub fn lean_float_decLt(a: f64, b: f64) -> u8 {
65    (a < b) as u8
66}
67pub fn lean_uint8_to_float(a: u8) -> f64 {
68    a as f64
69}
70pub fn lean_uint16_to_float(a: u16) -> f64 {
71    a as f64
72}
73pub fn lean_uint32_to_float(a: u32) -> f64 {
74    a as f64
75}
76pub fn lean_uint64_to_float(a: u64) -> f64 {
77    a as f64
78}
79pub fn lean_usize_to_float(a: usize) -> f64 {
80    a as f64
81}
82pub fn lean_int8_to_float(a: u8) -> f64 {
83    a as i8 as f64
84}
85pub fn lean_int16_to_float(a: u16) -> f64 {
86    a as i16 as f64
87}
88pub fn lean_int32_to_float(a: u32) -> f64 {
89    a as i32 as f64
90}
91pub fn lean_int64_to_float(a: u64) -> f64 {
92    a as i64 as f64
93}
94pub fn lean_isize_to_float(a: usize) -> f64 {
95    a as isize as f64
96}
97
98extern "C" {
99    pub fn lean_float_to_string(a: f64) -> lean_obj_res;
100    pub fn lean_float_scaleb(a: f64, b: b_lean_obj_arg) -> f64;
101    pub fn lean_float_isnan(a: f64) -> u8;
102    pub fn lean_float_isfinite(a: f64) -> u8;
103    pub fn lean_float_isinf(a: f64) -> u8;
104    pub fn lean_float_frexp(a: f64) -> lean_obj_res;
105    pub fn lean_float_of_bits(a: u64) -> f64;
106    pub fn lean_float_to_bits(a: f64) -> u64;
107}