source: project/release/5/fx-utils/trunk/fx-inlines.scm @ 36574

Last change on this file since 36574 was 36574, checked in by Kon Lovett, 15 months ago

add inlines

File size: 1.4 KB
Line 
1;;;; fx-inlines.scm  -*- Scheme -*-
2;;;; Kon Lovett, Jul '18
3;;;; Kon Lovett, May '17
4
5(import scheme
6  (chicken fixnum)
7  (chicken type))
8
9;;;
10
11;;
12
13(: fxzero? (fixnum --> boolean))
14;
15(define-inline (fxzero? n) (fx= 0 n))
16
17(: fxpositive? (fixnum --> boolean))
18;
19(define-inline (fxpositive? n) (fx< 0 n))
20
21(: fxnatural? (fixnum --> boolean))
22;
23(define-inline (fxnatural? n) (fx<= 0 n))
24
25(: fxnegative? (fixnum --> boolean))
26;
27(define-inline (fxnegative? n) (fx> 0 n))
28
29(: fxnon-positive? (fixnum --> boolean))
30;
31(define-inline (fxnon-positive? n) (fx>= 0 n))
32
33;;
34
35(: fxclosed-right? (fixnum fixnum fixnum --> boolean))
36;
37(define-inline (fxclosed-right? l x h) (and (fx< l x) (fx<= x h)))
38
39(: fxclosed? (fixnum fixnum fixnum --> boolean))
40;
41(define-inline (fxclosed? l x h) (and (fx<= l x) (fx<= x h)))
42
43(: fxclosed-left? (fixnum fixnum fixnum --> boolean))
44;
45(define-inline (fxclosed-left? l x h) (and (fx<= l x) (fx< x h)))
46
47;
48(define-inline (fxclosedr? l x h) (fxclosed-right? l x h))
49(define-inline (fxclosedl? l x h) (fxclosed-left? l x h))
50
51;;;
52
53;;
54
55(: fxabs (fixnum --> fixnum))
56;
57(define-inline (fxabs n) (if (fxnegative? n) (fxneg n) n))
58
59;;
60
61(: fxadd1 (fixnum --> fixnum))
62;
63(define-inline (fxadd1 n) (fx+ n 1))
64
65(: fxsub1 (fixnum --> fixnum))
66;
67(define-inline (fxsub1 n) (fx- n 1))
68
69(: fxsqr (fixnum --> fixnum))
70;
71(define-inline (fxsqr n) (fx* n n))
72
73(: fxcub (fixnum --> fixnum))
74;
75(define-inline (fxcub n) (fx* n (fx* n n)))
Note: See TracBrowser for help on using the repository browser.