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

Last change on this file since 38103 was 38103, checked in by Kon Lovett, 6 weeks ago

canon import style

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