]> gitweb.factorcode.org Git - factor.git/blob - native/ratio.h
first cut at floats
[factor.git] / native / ratio.h
1 typedef struct {
2         CELL numerator;
3         CELL denominator;
4 } RATIO;
5
6 INLINE RATIO* untag_ratio(CELL tagged)
7 {
8         type_check(RATIO_TYPE,tagged);
9         return (RATIO*)UNTAG(tagged);
10 }
11
12 INLINE CELL tag_ratio(RATIO* ratio)
13 {
14         return RETAG(ratio,RATIO_TYPE);
15 }
16
17 RATIO* ratio(CELL numerator, CELL denominator);
18
19 void primitive_ratiop(void);
20 void primitive_numerator(void);
21 void primitive_denominator(void);
22 CELL number_eq_ratio(CELL x, CELL y);
23 CELL add_ratio(CELL x, CELL y);
24 CELL subtract_ratio(CELL x, CELL y);
25 CELL multiply_ratio(CELL x, CELL y);
26 CELL divide_ratio(CELL x, CELL y);
27 CELL divfloat_ratio(CELL x, CELL y);
28 CELL less_ratio(CELL x, CELL y);
29 CELL lesseq_ratio(CELL x, CELL y);
30 CELL greater_ratio(CELL x, CELL y);
31 CELL greatereq_ratio(CELL x, CELL y);