lean_sys/primitive/
float32.rs

1use crate::*;
2
3pub fn lean_float32_to_uint8(a: f32) -> u8 {
4    //NOTE: this performs a saturating cast, as desired
5    a as u8
6}
7pub fn lean_float32_to_uint16(a: f32) -> u16 {
8    //NOTE: this performs a saturating cast, as desired
9    a as u16
10}
11pub fn lean_float32_to_uint32(a: f32) -> u32 {
12    //NOTE: this performs a saturating cast, as desired
13    a as u32
14}
15pub fn lean_float32_to_uint64(a: f32) -> u64 {
16    //NOTE: this performs a saturating cast, as desired
17    a as u64
18}
19pub fn lean_float32_to_usize(a: f32) -> usize {
20    //NOTE: this performs a saturating cast, as desired
21    a as usize
22}
23pub fn lean_float32_to_int8(a: f32) -> u8 {
24    //NOTE: this performs a saturating cast, as desired
25    a as i8 as u8
26}
27pub fn lean_float32_to_int16(a: f32) -> u16 {
28    //NOTE: this performs a saturating cast, as desired
29    a as i16 as u16
30}
31pub fn lean_float32_to_int32(a: f32) -> u32 {
32    //NOTE: this performs a saturating cast, as desired
33    a as i32 as u32
34}
35pub fn lean_float32_to_int64(a: f32) -> u64 {
36    //NOTE: this performs a saturating cast, as desired
37    a as i64 as u64
38}
39pub fn lean_float32_to_isize(a: f32) -> usize {
40    //NOTE: this performs a saturating cast, as desired
41    a as isize as usize
42}
43pub fn lean_float32_add(a: f32, b: f32) -> f32 {
44    a + b
45}
46pub fn lean_float32_sub(a: f32, b: f32) -> f32 {
47    a - b
48}
49pub fn lean_float32_mul(a: f32, b: f32) -> f32 {
50    a * b
51}
52pub fn lean_float32_div(a: f32, b: f32) -> f32 {
53    a / b
54}
55pub fn lean_float32_negate(a: f32) -> f32 {
56    -a
57}
58pub fn lean_float32_beq(a: f32, b: f32) -> u8 {
59    (a == b) as u8
60}
61pub fn lean_float32_decLe(a: f32, b: f32) -> u8 {
62    (a <= b) as u8
63}
64pub fn lean_float32_decLt(a: f32, b: f32) -> u8 {
65    (a < b) as u8
66}
67pub fn lean_uint8_to_float32(a: u8) -> f32 {
68    a as f32
69}
70pub fn lean_uint16_to_float32(a: u16) -> f32 {
71    a as f32
72}
73pub fn lean_uint32_to_float32(a: u32) -> f32 {
74    a as f32
75}
76pub fn lean_uint64_to_float32(a: u64) -> f32 {
77    a as f32
78}
79pub fn lean_usize_to_float32(a: usize) -> f32 {
80    a as f32
81}
82pub fn lean_int8_to_float32(a: u8) -> f32 {
83    a as i8 as f32
84}
85pub fn lean_int16_to_float32(a: u16) -> f32 {
86    a as i16 as f32
87}
88pub fn lean_int32_to_float32(a: u32) -> f32 {
89    a as i32 as f32
90}
91pub fn lean_int64_to_float32(a: u64) -> f32 {
92    a as i64 as f32
93}
94pub fn lean_isize_to_float32(a: usize) -> f32 {
95    a as isize as f32
96}
97
98pub fn lean_float_to_float32(a: f64) -> f32 {
99    a as f32
100}
101pub fn lean_float32_to_float(a: f32) -> f64 {
102    a as f64
103}
104
105extern "C" {
106    pub fn lean_float32_to_string(a: f32) -> lean_obj_res;
107    pub fn lean_float32_scaleb(a: f32, b: b_lean_obj_arg) -> f32;
108    pub fn lean_float32_isnan(a: f32) -> u8;
109    pub fn lean_float32_isfinite(a: f32) -> u8;
110    pub fn lean_float32_isinf(a: f32) -> u8;
111    pub fn lean_float32_frexp(a: f32) -> lean_obj_res;
112    pub fn lean_float32_of_bits(a: u32) -> f32;
113    pub fn lean_float32_to_bits(a: f32) -> u32;
114}