Project

General

Profile

« Previous | Next » 

Revision 54cad312

Added by stevegeek (Stephen Ierodiaconou) over 2 years ago

[Bug #19004] Complex.polar handles complex singular abs argument

Complex.polar accepts Complex values as arguments for the polar form as long
as the value of the complex has no imaginary part (ie it is 'real'). In
f_complex_polar this is handled by extracting the real part of the arguments.
However in the case polar is called with only a single argument, the absolute
value (abs), then the Complex is created without applying a check on the type
of abs, meaning it is possible to create a Complex where the real part is itself
an instance of a Complex. This change removes the short circuit for the single
argument case meaning the real part extraction is performed correctly
(by f_complex_polar).

Also adds an example to spec/ruby/core/complex/polar_spec.rb to check that
the real part of a complex argument is correctly extracted and used in the
resulting Complex real and imaginary parts.