Numworks Epsilon  1.4.1
Graphing Calculator Operating System
double.c
Go to the documentation of this file.
1 /* See the "Run-time ABI for the ARM Architecture", Section 4.1.2 */
2 
3 #include "float.h"
4 
5 // Conversions
6 
8  return f64_to_i32_r_minMag(f64(x), 0);
9 }
10 
12  return d(i32_to_f64(i));
13 }
14 
15 aeabi_double_t __aeabi_ui2d(unsigned int i) {
16  return d(ui32_to_f64(i));
17 }
18 
20  return f(f64_to_f32(f64(d)));
21 }
22 
24  return d(f32_to_f64(f32(f)));
25 }
26 
27 // Comparisons
28 
30  return f64_eq(f64(a), f64(b));
31 }
32 
34  return f64_le(f64(b), f64(a));
35 }
36 
38  return f64_lt(f64(b), f64(a));
39 }
40 
42  return f64_le(f64(a), f64(b));
43 }
44 
46  return f64_lt(f64(a), f64(b));
47 }
48 
50  return !f64_eq(f64(a), f64(a)) || !f64_eq(f64(b), f64(b));
51 }
52 
53 // Arithmetics
54 
56  return d(f64_add(f64(a), f64(b)));
57 }
58 
60  return d(f64_sub(f64(a), f64(b)));
61 }
62 
64  return d(f64_mul(f64(a), f64(b)));
65 }
66 
68  return d(f64_div(f64(a), f64(b)));
69 }
float64_t f64_add(float64_t, float64_t)
Definition: f64_add.c:43
int __aeabi_d2iz(aeabi_double_t x)
Definition: double.c:7
aeabi_double_t __aeabi_ddiv(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:67
bool f64_eq(float64_t, float64_t)
Definition: f64_eq.c:44
int __aeabi_dcmpge(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:33
unsigned aeabi_float_t
Definition: float.h:11
float64_t ui32_to_f64(uint32_t)
Definition: ui32_to_f64.c:42
float32_t f64_to_f32(float64_t)
Definition: f64_to_f32.c:44
aeabi_float_t __aeabi_d2f(aeabi_double_t d)
Definition: double.c:19
int __aeabi_dcmpun(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:49
float64_t f64_mul(float64_t, float64_t)
Definition: f64_mul.c:44
float64_t f32_to_f64(float32_t)
Definition: f32_to_f64.c:44
int __aeabi_dcmpeq(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:29
int __aeabi_dcmplt(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:45
aeabi_double_t __aeabi_i2d(int i)
Definition: double.c:11
int_fast32_t f64_to_i32_r_minMag(float64_t, bool)
aeabi_double_t __aeabi_f2d(aeabi_float_t f)
Definition: double.c:23
int __aeabi_dcmpgt(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:37
aeabi_double_t __aeabi_dsub(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:59
unsigned long long aeabi_double_t
Definition: float.h:12
aeabi_double_t __aeabi_ui2d(unsigned int i)
Definition: double.c:15
aeabi_double_t __aeabi_dadd(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:55
bool f64_le(float64_t, float64_t)
Definition: f64_le.c:43
float64_t f64_sub(float64_t, float64_t)
Definition: f64_sub.c:43
int __aeabi_dcmple(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:41
bool f64_lt(float64_t, float64_t)
Definition: f64_lt.c:43
aeabi_double_t __aeabi_dmul(aeabi_double_t a, aeabi_double_t b)
Definition: double.c:63
float64_t f64_div(float64_t, float64_t)
Definition: f64_div.c:44
float64_t i32_to_f64(int32_t)
Definition: i32_to_f64.c:43