]> gitweb.factorcode.org Git - factor.git/blob - native/float.h
first cut at floats
[factor.git] / native / float.h
1 typedef struct {
2         CELL header;
3         double n;
4 } FLOAT;
5
6 INLINE FLOAT* make_float(double n)
7 {
8         FLOAT* flo = allot_object(FLOAT_TYPE,sizeof(FLOAT));
9         flo->n = n;
10         return flo;
11 }
12
13 INLINE FLOAT* untag_float(CELL tagged)
14 {
15         type_check(FLOAT_TYPE,tagged);
16         return (FLOAT*)UNTAG(tagged);
17 }
18
19 void primitive_floatp(void);
20 FLOAT* to_float(CELL tagged);
21 void primitive_to_float(void);
22 CELL number_eq_float(CELL x, CELL y);
23 CELL add_float(CELL x, CELL y);
24 CELL subtract_float(CELL x, CELL y);
25 CELL multiply_float(CELL x, CELL y);
26 CELL divide_float(CELL x, CELL y);
27 CELL divfloat_float(CELL x, CELL y);
28 CELL less_float(CELL x, CELL y);
29 CELL lesseq_float(CELL x, CELL y);
30 CELL greater_float(CELL x, CELL y);
31 CELL greatereq_float(CELL x, CELL y);