diff --git a/collects/tests/typed-racket/optimizer/tests/complex-exp.rkt b/collects/tests/typed-racket/optimizer/tests/complex-exp.rkt new file mode 100644 index 00000000..8b24fef9 --- /dev/null +++ b/collects/tests/typed-racket/optimizer/tests/complex-exp.rkt @@ -0,0 +1,12 @@ +#; +( +TR opt: complex-exp.rkt 12:8 0 -- float-arg-expr in complex ops +TR opt: complex-exp.rkt 12:3 (exp 0) -- unboxed unary float complex +TR opt: complex-exp.rkt 12:11 1.0+2.0i -- unboxed literal +TR opt: complex-exp.rkt 12:0 (- (exp 0) 1.0+2.0i) -- unboxed binary float complex +0.0-2.0i +) + +#lang typed/racket + +(- (exp 0) 1.0+2.0i) diff --git a/collects/typed-racket/optimizer/float-complex.rkt b/collects/typed-racket/optimizer/float-complex.rkt index 73621e74..0e32fefc 100644 --- a/collects/typed-racket/optimizer/float-complex.rkt +++ b/collects/typed-racket/optimizer/float-complex.rkt @@ -305,7 +305,7 @@ #'1.0)) ((real-binding) #,(if (syntax->datum #'c.imag-binding) #'(unsafe-fl* (unsafe-flcos c.imag-binding) scaling-factor) - #'0.0)) + #'1.0)) ((imag-binding) #,(if (syntax->datum #'c.imag-binding) #'(unsafe-fl* (unsafe-flsin c.imag-binding) scaling-factor) #'0.0)))))