[Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか

-2 $B$rJV$9$h$&$KJQ99$9$k$N$O5DO@$7$F$+$i$K$9$Y$-$@$C$?$H$O;W$C$F$$$^$9$,!"(B
$B!V4V0c$C$F$$$?!W$H$O$"$^$j;W$C$F$$$^$;$s!#(B
$B$U$J$P$5$s$b$$C$7$c$k$h$&$K(B CMath $B$,(B Math
$B$H$N8_49@-$r9M$($F$$$k$J$i!"(B
-2 $B$rJV$90J30$NA
Br;h$,$"$k$h$&$K$O;W$($J$$$N$G$9!#(B
$B$"$H!"(B[ruby-dev:42007] $B$N$^$D$b$H$5$s$N5DBjDs=P$KBP$7$F5DO@$5$l$?$h$&(B
$B$K$b8+$($^$;$s!#(B

$B$+$J$j8m2r$7$F$$$k$h$&$J$s$G8@$C$F$*$-$^$9$,!"26$O8_49@-$,Bg;v$@$J$s$F(B
$B;W$C$F$J$$$s$G$9$h!#(B

$B$=$b$=$b!"(BMath
$B$rJ#AG?tBP1~$K$7$F0lK\2=$7$?$i$HDs0F$7$F$$$?$N$G$9$+$i!"(B
$B8_49@-=E;k$8$c$J$$$s$G$9!#(BCMath
$B$,=PMh$?7P0^$O4JC1$K8@$&$H!"0lBN2=$KF’(B
$B$_@Z$l$J$+$C$?$+$iCHN|$o$1$7$?$H$$$&;v$@$H;W$$$^$9!#(B

$B$=$&$$$&7P0^$+$i$9$l$P!"?6$kIq$$$,0c$&;v$O>5CN$N>e$G!“26$N8@$$J}$G$$$((B
$B$P!“K\Mh$”$C$F$[$7$$$h$&$K(B CMath
$B$G$O@)8B$r$J$/$9J}8~$G3HD%$5$l$k;v$,K>(B
$B$^$l$F$$$k$o$1$G!”(BMath
$B$r4p=`$Kbd>.2=$9$k;v$O9M$($i$l$F$$$J$+$C$?$H;W$$(B
$B$^$9!#(B

$B40A4$J8_49@-$,$J$$$+$i$3$=<h$j4:$($:CHN|J,$1$7$?$o$1$G!"1sF#$5$s$NM}6~(B
$B$ODL$i$J$$$G$9$h!#(B

$B$"$H!“0l1~0U8+$O8@$$$^$7$?$,!“26$O!”(Blib/cmath.rb
$B$N%a%s%F%J$G$b$J$$$7!”(B
$B$3$N%P%0$N=$@5$r7h$a$?$o$1$G$b$"$j$^$;$s!#$J$N$G!"26$KJ86g$r8@$$$?$$$i(B
$B$7$$$h$&$G$9$,!"26$K8@$C$F$b$I$&$K$b$J$j$^$;$s!#(B

Math.cbrt
$B$N?6Iq$$$,$I$&$7$F$b=EMW$H;W$($P!"$=$l$rF@$kJ}K!$O$$$/$i$G$b(B
$B$"$k$7(B
($BB<ED$5$s$bDs0F$7$F$$$^$9$7!“JL$NJ}K!$b$”$k$G$7$g$&(B)$B!"(BCMath
$B$,$=(B
$B$l$r$=$N0Y$@$1$KB:=E$9$kM}M3$K$O$J$i$J$$$H;W$$$^$9!#(B

$B$1$$$8$e!w$$$7$D$+$G$9(B.

In [ruby-dev:43840] the message: “[ruby-dev:43840] Re: [Ruby 1.9 -
Feature #4878][Open] CMath $B$K(B frexp, ldexp, hypot
$B$N(B3$B4X?t$OITMW$G$O$J(B
$B$$$+(B”, on Jun/17 15:37(JST) Yusuke ENDOH writes:

$B1sF#$G$9!#(B

def cbrt(z)
if z.real?
cbrt!(z)
else
Complex(z) ** (1.0/3)
end
end

$B$3$l$@$H(B, CMath.cbrt(-8) $B$H(B CMath.cbrt(Complex(-8,0))
$B$GCM$,0[$J$C$F$-(B

$B$F$$$^$9(B. $B$3$NE@$K$D$$$F$I$&9M$($F$$$^$9(B?

$B$J$s$H!#(B
$B$=$l$O(B cbrt(-8) $B$G(B -2 $B$rJV$9$h$&$K$7$?:]$N;d$N=$@5$N!V%P%0!W$G$9!#(B
Complex(-8, 0).real? $B$,(B false $B$H$OA[Dj30$G$7$?!#(B

$B%a%=%C%IL>$,0-$+$C$?$+$J$!(B. $B$=$l$O$H$b$+$/(B,

CMath.cbrt(-8) == CMath.cbrt(Complex(-8,0))

$B$H$J$k(B, $B<+A3$J<BAu(B($B@5B’(B($BO"B3(B)$B$K$J$kJ#AG4X?t(B)$B$O(B
$B<gCM$r<h$k%a%=%C%I(B:

def cbrt(z)
Complex(z) ** (1.0/3)
end

$B0J30$J$$$N$G(B, $B$3$l$GG<F@$7$F$b$i$($^$9(B?

__
---------------------------------------------------->> $B@PDM(B $B7=<y(B
<<—
---------------------------------->> e-mail: [email protected] <<—

Issue #4878 has been updated by Motohiro KOSAKI.

Status changed from Open to Rejected

提案者が提案を取り下げているようなのでrejectします

Feature #4878: CMath に frexp, ldexp, hypot の3関数は不要ではないか

Author: Kenta M.
Status: Rejected
Priority: Normal
Assignee: Yukihiro M.
Category:
Target version: 2.0.0

現在 CMath は、Math を include して各関数を再定義することで実装されています。
このやり方では、複素数向けの関数としては定義できない frexp, ldexp, hypot の3関数も同時に include
されてしまいます。
これらは Math の関数として定義されていれば良いだけですので、CMath からの削除を提案します。

$B1sF#$G$9!#(B

2011$BG/(B6$B7n(B17$BF|(B16:33 $B@PDM7=<y(B [email protected]:

CMath.cbrt(-8) == CMath.cbrt(Complex(-8,0))

$B$H$J$k(B, $B<+A3$J<BAu(B($B@5B’(B($BO"B3(B)$B$K$J$kJ#AG4X?t(B)$B$O(B
$B<gCM$r<h$k%a%=%C%I(B:

def cbrt(z)
Complex(z) ** (1.0/3)
end

$B0J30$J$$$N$G(B, $B$3$l$GG<F@$7$F$b$i$($^$9(B?

[ruby-dev:43842]
$B$rAw$C$?$D$b$j$@$C$?$N$G$9$,!“%_%9$GAw$l$F$$$^$;$s$G$7$?!#(B
CMath $B$O(B Math
$B$H>e0L8_49$G$O$J$$!”$H$$$&$3$H$G0l1~$OG<F@$7$F$$$^$9!#(B