Skip to content

Commit 1a2dd84

Browse files
committed
Mild clean ups to c.rkt
1 parent 0ae8f38 commit 1a2dd84

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/platforms/c.rkt

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@
4343
[INFINITY.f32 #:spec (INFINITY) #:impl (const +inf.0) #:fpcore INFINITY #:cost 32bit-move-cost]
4444
[NAN.f32 #:spec (NAN) #:impl (const +nan.0) #:fpcore NAN #:cost 32bit-move-cost])
4545

46-
(define-operations ([x <binary32>]) <binary32> #:fpcore (:precision binary32)
47-
[neg.f32 #:spec (neg x) #:impl (compose flsingle -) #:fpcore (- x) #:cost 0.125])
46+
(define-operation (neg.f32 [x <binary32>]) <binary32>
47+
#:spec (neg x) #:impl (compose flsingle -)
48+
#:fpcore (! :precision binary32 (- x)) #:cost 0.125)
4849

4950
(define-operations ([x <binary32>] [y <binary32>]) <binary32> #:fpcore (:precision binary32)
5051
[+.f32 #:spec (+ x y) #:impl (compose flsingle +) #:cost 0.200]
@@ -98,11 +99,13 @@
9899
[expm1.f32 #:spec (- (exp x) 1) #:impl (from-libm 'expm1f) #:fpcore (expm1 x) #:cost 0.900]
99100
[log1p.f32 #:spec (log (+ 1 x)) #:impl (from-libm 'log1pf) #:fpcore (log1p x) #:cost 1.300])
100101

101-
(define-operations ([x <binary32>] [y <binary32>]) <binary32> #:fpcore (:precision binary32)
102-
[hypot.f32 #:spec (sqrt (+ (* x x) (* y y))) #:impl (from-libm 'hypotf) #:fpcore (hypot x y) #:cost 1.700])
102+
(define-operation (hypot.f32 [x <binary32>] [y <binary32>]) <binary32>
103+
#:spec (sqrt (+ (* x x) (* y y))) #:impl (from-libm 'hypotf)
104+
#:fpcore (! :precision binary32 (hypot x y)) #:cost 1.700)
103105

104-
(define-operations ([x <binary32>] [y <binary32>] [z <binary32>]) <binary32> #:fpcore (:precision binary32)
105-
[fma.f32 #:spec (+ (* x y) z) #:impl (from-libm 'fmaf) #:fpcore (fma x y z) #:cost 0.375])
106+
(define-operation (fma.f32 [x <binary32>] [y <binary32>] [z <binary32>]) <binary32>
107+
#:spec (+ (* x y) z) #:impl (from-libm 'fmaf)
108+
#:fpcore (! :precision binary32 (fma x y z)) #:cost 0.375)
106109

107110
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BINARY 64 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
108111

@@ -122,8 +125,8 @@
122125
[INFINITY #:spec (INFINITY) #:impl (const +inf.0) #:fpcore INFINITY #:cost 64bit-move-cost]
123126
[NAN.f64 #:spec (NAN) #:impl (const +nan.0) #:fpcore NAN #:cost 64bit-move-cost])
124127

125-
(define-operations ([x <binary64>]) <binary64> #:fpcore (:precision binary64)
126-
[neg.f64 #:spec (neg x) #:impl - #:fpcore (- x) #:cost 0.125])
128+
(define-operation (neg.f64 [x <binary64>]) <binary64>
129+
#:spec (neg x) #:impl - #:fpcore (! :precision binary64 (- x)) #:cost 0.125)
127130

128131
(define-operations ([x <binary64>] [y <binary64>]) <binary64> #:fpcore (:precision binary64)
129132
[+.f64 #:spec (+ x y) #:impl + #:cost 0.200]
@@ -177,9 +180,11 @@
177180
[expm1.f64 #:spec (- (exp x) 1) #:impl (from-libm 'expm1) #:fpcore (expm1 x) #:cost 0.900]
178181
[log1p.f64 #:spec (log (+ 1 x)) #:impl (from-libm 'log1p) #:fpcore (log1p x) #:cost 1.300])
179182

180-
(define-operations ([x <binary64>] [y <binary64>]) <binary64> #:fpcore (:precision binary64)
181-
[hypot.f64 #:spec (sqrt (+ (* x x) (* y y))) #:impl (from-libm 'hypot) #:fpcore (hypot x y) #:cost 1.700])
183+
(define-operation (hypot.f64 [x <binary64>] [y <binary64>]) <binary64>
184+
#:spec (sqrt (+ (* x x) (* y y))) #:impl (from-libm 'hypot)
185+
#:fpcore (! :precision binary64 (hypot x y)) #:cost 1.700)
182186

183-
(define-operations ([x <binary64>] [y <binary64>] [z <binary64>]) <binary64> #:fpcore (:precision binary64)
184-
[fma.f64 #:spec (+ (* x y) z) #:impl (from-libm 'fma) #:fpcore (fma x y z) #:cost 0.375])
187+
(define-operation (fma.f64 [x <binary64>] [y <binary64>] [z <binary64>]) <binary64>
188+
#:spec (+ (* x y) z) #:impl (from-libm 'fma)
189+
#:fpcore (! :precision binary64 (fma x y z)) #:cost 0.375)
185190

0 commit comments

Comments
 (0)