Marc:
There was a problem with complex division:
> (define a (make-rectangular (expt 2 1022) (expt 2 1022))) > (exact->inexact a) 4.49423283715579e307+4.49423283715579e307i > (/ a a) 1 > (/ a (exact->inexact a)) 1.+0.i > (/ (exact->inexact a) a) +nan.0+nan.0i
With the attached patch, things are better:
> (define a (make-rectangular (expt 2 1022) (expt 2 1022))) > (exact->inexact a) 4.49423283715579e307+4.49423283715579e307i > (/ a a) 1 > (/ a (exact->inexact a)) 1.+0.i > (/ (exact->inexact a) a) 1.+0.i
The rest of the logic of ##cpxnum./ looks very complicated, but I convinced myself once upon a time that it is correct ;-).
Brad
Afficher les réponses par date