(complex:log (complex:+ z 1)) ;XXX
((copy real:log1p) z)))
+(define (complex:log1m z)
+ (if (and (real:real? z) (real:< 1 z))
+ (make-recnum (real:log (real:- z 1)) (real:negate rec:pi))
+ (complex:log1p (complex:negate z))))
+
(define (complex:sin z)
(if (recnum? z)
(complex:/ (let ((iz (complex:+i* z)))
(define (rec:atan z)
(complex:/ (let ((iz (complex:+i* z)))
- (complex:- (complex:log (complex:1+ iz))
- (complex:log (complex:- 1 iz))))
+ (complex:- (complex:log1p iz)
+ (complex:log1m iz)))
+2i))
\f
(define (complex:angle z)
(vector +2i +1.5707963267948966+.5493061443340549i)
(vector +0.+2i +1.5707963267948966+.5493061443340549i)
(vector -0.+2i -1.5707963267948966+.5493061443340549i)
- (vector -2i +1.5707963267948966-.5493061443340549i 'xfail)
+ (vector -2i +1.5707963267948966-.5493061443340549i)
(vector +0.-2i +1.5707963267948966-.5493061443340549i)
(vector -0.-2i -1.5707963267948966-.5493061443340549i))
(lambda (v)