# Fw: Bug in ruby complex module

**URL:** <https://www.ruby-forum.com/t/fw-bug-in-ruby-complex-module/134591>\
**Category:** Development\
**Created:** [April 12, 2008, 2:30pm UTC](https://www.ruby-forum.com/t/fw-bug-in-ruby-complex-module/134591 "2008-04-12T14:30:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yukihiro\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c57346/32.png) [@Yukihiro\_M](https://www.ruby-forum.com/u/Yukihiro_M)\
**Post date:** [April 12, 2008, 2:30pm UTC](https://www.ruby-forum.com/t/fw-bug-in-ruby-complex-module/134591/1 "2008-04-12T14:30:03Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

e$B8+Mn$H$7$F$^$7$?$,!":rG/Kv$K!Ve(BComplexe$B$N=|;;$K%P%0$,$"$k!W$He(B  
e$B$$$&%a!\<%k$,e(Bruby-coree$B$KMh$F$^$7$?!#e(B[ruby-talk:285292]

e$B8=\>u$Ne(BCe$BAH$_9~$_$Ne(Bcomplexe$B$G$bF1MM$N!VLdBj!W$,$"$j$^$9!#$?$@!"e(B  
e$B;d$K$O$3$l$,K\Ev$KLdBj$J$N$+$I$&$+H=CG$G$-$^$;$s$N$G!"0U8+$re(B  
e$BD0$+$;$F$/$@$5$$!#e(B

Date: Sun, 30 Dec 2007 02:18:36 +0900  
Posted: Sat, 29 Dec 2007 18:18:38 +0100  
From: Tommy N.

Transcript :  
emac$ irb

> > require ‘complex’  
> > =\> true
> 
> > cc = Complex(Float::MAX/2, Float::MAX / 2)  
> > =\> Complex(8.98846567431158e+307, 8.98846567431158e+307)
> 
> > cc / cc  
> > =\> Complex(NaN, NaN)
> 
> > require ‘cpfixup’  
> > =\> true
> 
> > cc / cc  
> > =\> Complex(1.0, 0.0)
> 
> > exit  
> > Work Directory: ~ :  
> > emac$  
> > Th source of the fix (in a file called ‘cpfixup.rb’ in my home  
> > directory is

require ‘complex’

class Complex \< Numeric

def / (other)  
if other.kind\_of?(Complex)  
magn = other.abs  
tmp = Complex.new(other.real/magn , other.image/magn)  
self \* tmp.conjugate / magn  
elsif Complex.generic?(other)  
Complex(@real/other, @image/other)  
else  
x, y = other.coerce(self)  
x / y  
end  
end  
end

---

<div class="post-metadata">

**Author:** ![Yukihiro\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c57346/32.png) [@Yukihiro\_M](https://www.ruby-forum.com/u/Yukihiro_M)\
**Post date:** [April 12, 2008, 3:54pm UTC](https://www.ruby-forum.com/t/fw-bug-in-ruby-complex-module/134591/2 "2008-04-12T15:54:01Z")

</div>

|From: Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> e$B8+Mn$H$7$F$^$7$?$,!“:rG/Kv$K!Ve(BComplexe$B$N=|;;$K%P%0$,$”$k!W$He(B  
> e$B$$$&%a!\<%k$,e(Bruby-coree$B$KMh$F$^$7$?!#e(B[ruby-talk:285292]
> 
> e$B8=\>u$Ne(BCe$BAH$_9~$_$Ne(Bcomplexe$B$G$bF1MM$N!VLdBj!W$,$"$j$^$9!#$?$@!"e(B  
> e$B;d$K$O$3$l$,K\Ev$KLdBj$J$N$+$I$&$+H=CG$G$-$^$;$s$N$G!"0U8+$re(B  
> e$BD0$+$;$F$/$@$5$$!#e(B

e$B$3$N%“%k%4%j%:%`$Oe(BGSLe$B$H$[$\F1$8$G$"$j!"e(B e$BIbF0>.?tE@?t$G$"$l$P$3$N$h$&$JBP=h$OI,MW$G$9!#e(B #e$B@hF|$NB<ED$5$s$N%3!<%I$G$O!"$b$C$HJ#;($J$3$H$r$7$F$$$k$h$&$G$9$,!#e(B e$B$?$@$7!"$3$N%Q%C%A$Oe(Babse$B%a%=%C%I$NCf$Ge(Bsqrte$B1i;;$r$7$F$*$j!"$=$3$Ge(BFloate$B$KJQ49$5$l$k$N$G!"e(B Floate$B$G$J$$?tCM%/%i%9$K$H$C$F$O5U$KLBOG$G$7$g$&!#e(B e$B$3$N$3$H$b!"e(Bdoublee$B$KFC2=$7$?e(BComplexe$B%/%i%9$,I,MW$H$$$&M}M3$Ne(B1e$B$D$G$9!#e(B e$B$=$l$O$5$F$*$$$F!"e(B http://na-inet.jp/nasoft/chap05.pdf e$B$K=q$$$F$"$k%"%k%4%j%:%`$G$”$l$P!";MB’1i;;$N$\_$r;H$C$F$\*$j!"e(B  
e$B$+$D$3$NLdBj$O7Z8:$G$-$^$9!#e(B

e$BEDCf\>;9(e(B

---

<div class="post-metadata">

**Author:** ![Yukihiro\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c57346/32.png) [@Yukihiro\_M](https://www.ruby-forum.com/u/Yukihiro_M)\
**Post date:** [April 12, 2008, 4:01pm UTC](https://www.ruby-forum.com/t/fw-bug-in-ruby-complex-module/134591/3 "2008-04-12T16:01:02Z")

</div>

e$B$`$i$?$G$9!%e(B

2008/4/12 Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
> 
> e$B8+Mn$H$7$F$^$7$?$,!“:rG/Kv$K!Ve(BComplexe$B$N=|;;$K%P%0$,$”$k!W$He(B  
> e$B$$$&%a!\<%k$,e(Bruby-coree$B$KMh$F$^$7$?!#e(B[ruby-talk:285292]
> 
> e$B8=\>u$Ne(BCe$BAH$_9~$_$Ne(Bcomplexe$B$G$bF1MM$N!VLdBj!W$,$"$j$^$9!#$?$@!"e(B  
> e$B;d$K$O$3$l$,K\Ev$KLdBj$J$N$+$I$&$+H=CG$G$-$^$;$s$N$G!"0U8+$re(B  
> e$BD0$+$;$F$/$@$5$$!#e(B

e$B@dBPCM$,Bg$-$JIbF0\>.?tE@?t$N\>h;;$GJ,Jl$,e(B INF  
e$B$K$J$j!$$=$N1F6A$Ge(B  
e$B7k2L$,e(B NaN e$B$K$J$C$F$$$k$b$N$H;W$o$l$^$9!%;d$Ne(B ComplexFloat  
e$B$G$Oe(B  
C99 Draft e$B$K:$C$F$$$?3d$j;;$N\<BAue(B (log  
e$B$G%9%1!\<%j%s%0$9$kJ}K!e(B) e$B$re(B  
e$B;H$C$F$$$k$N$G!$$3$N$h$&$JLdBj$O5/$3$j$^$;$s!%e(Bcomplex.c e$B$G$be(B  
e$B@.J,$,e(B Float e$B$N;~$OF1MM$NBP1~$r$9$kI,MW$,$"$k$H;W$$$^$9!%e(B

muraken:~/src/ruby$ ./miniruby -e ‘cc = ComplexFloat(Float::MAX/2,  
Float::MAX/2); p cc/cc’  
ComplexFloat(1.0, 0.0)
