[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Testing the reference implementation



There are more serious problems. In Gambit-C I get (after the first four lines)

(+ +0+0i +0+1i)        =>         +0+1i
(- +0+0i +0+1i)        =>         +0-1i
(* +0+0i +0+1i)        =>         +0+0i
(/ +0+0i +0+1i)        =>         +0+0i
(+ +0+0i +0-1i)        =>         +0-1i

while in Scheme-48+will I get (with the same arguments)

(+ +0+0i +0+0i)        =>         +0+0i
(- +0+0i +0+0i)        =>         +0+0i
(* +0+0i +0+0i)        =>         +0+0i
(/ +0+0i +0+0i)        =>         +0+0i
(+ +0+0i +0+0i)        =>         +0+0i

Perhaps it's just a problem with number->string; the arguments look OK:

r6rs/will> arguments
'(#{Fx 0} #{Fx 1} #{Fx -1} #{Flonum 0.0} #{Flonum -0.0} #{Flonum 1.0} #{Flonum -1.0} #{Flonum #{Inf}} #{Flonum #{-Inf}} #{Flonum #{NaN}})

I guess not; when I get change (display (number->string x)) to (display x) I get (with the same arguments)

(+ +#{Fx 0}+#{Fx 0}i +#{Fx 0}+#{Fx 0}i) => +#{Fx 0}+# {Fx 0}i <<<<< (- +#{Fx 0}+#{Fx 0}i +#{Fx 0}+#{Fx 0}i) => +#{Fx 0}+# {Fx 0}i (* +#{Fx 0}+#{Fx 0}i +#{Fx 0}+#{Fx 0}i) => +#{Fx 0}+# {Fx 0}i (/ +#{Fx 0}+#{Fx 0}i +#{Fx 0}+#{Fx 0}i) => +#{Fx 0}+# {Fx 0}i (+ +#{Fx 0}+#{Fx 0}i +#{Fx 0}+#{Fx 0}i) => +#{Fx 0}+# {Fx 0}i

So maybe there are more bugs, or maybe I just don't understand this arithmetic at all

Brad