1: | | (declare (flonum)) |
2: | | |
3: | | (define (make-Complex x y) |
4: | 1.96% | (f64vector x y)) |
5: | | |
6: | | (define (Complex-real z) |
7: | 1.92% | (f64vector-ref z 0)) |
8: | | |
9: | | (define (Complex-real-set! z value) |
10: | .58% | (f64vector-set! z 0 value)) |
11: | | |
12: | | (define (Complex-imag z) |
13: | 1.63% | (f64vector-ref z 1)) |
14: | | |
15: | | (define (Complex-imag-set! z value) |
16: | .55% | (f64vector-set! z 1 value)) |
17: | | |
18: | | (define (Complex-negate z) |
19: | | (make-Complex (- (Complex-real z)) |
20: | | (- (Complex-imag z)))) |
21: | | |
22: | | (define (Complex-magnitude z) |
23: | 1.12% | (let ((r (Complex-real z)) |
24: | 1.07% | (i (Complex-imag z))) |
25: | 2.8% | (sqrt (+ (* r r) (* i i))))) |
26: | | |
27: | | (define (Complex-magnitude-squared z) |
28: | | (let ((r (Complex-real z)) |
29: | | (i (Complex-imag z))) |
30: | | (+ (* r r) (* i i)))) |
31: | | |
32: | | (declare (generic)) |