Issue #4878 has been reported by Kenta Murata. ---------------------------------------- Feature #4878: CMath に frexp, ldexp, hypot の3関数は不要ではないか http://redmine.ruby-lang.org/issues/4878 Author: Kenta Murata Status: Open Priority: Normal Assignee: Yukihiro Matsumoto Category: Target version: 1.9.x 現在 CMath は、Math を include して各関数を再定義することで実装されています。 このやり方では、複素数向けの関数としては定義できない frexp, ldexp, hypot の3関数も同時に include されてしまいます。 これらは Math の関数として定義されていれば良いだけですので、CMath からの削除を提案します。
on 2011-06-13 16:17
on 2011-06-13 16:51
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:43787] [Ruby 1.9 - Feature #4878][Open] CMath
$B$K(B frexp, ldexp, hypot $B$N(B3$B4X?t$OITMW$G$O$J$$$+(B"
on Mon, 13 Jun 2011 23:16:37 +0900, Kenta Murata <muraken@gmail.com>
writes:
|Issue #4878 has been reported by Kenta Murata.
|
|----------------------------------------
|Feature #4878: CMath $B$K(B frexp, ldexp, hypot $B$N(B3$B4X?t$OITMW$G$O$J$$$+(B
|http://redmine.ruby-lang.org/issues/4878
|$B8=:_(B CMath $B$O!"(BMath $B$r(B include
$B$7$F3F4X?t$r:FDj5A$9$k$3$H$G<BAu$5$l$F$$$^$9!#(B
|$B$3$N$d$jJ}$G$O!"J#AG?t8~$1$N4X?t$H$7$F$ODj5A$G$-$J$$(B frexp, ldexp, hypot
$B$N(B3$B4X?t$bF1;~$K(B include $B$5$l$F$7$^$$$^$9!#(B
|$B$3$l$i$O(B Math $B$N4X?t$H$7$FDj5A$5$l$F$$$l$PNI$$$@$1$G$9$N$G!"(BCMath
$B$+$i$N:o=|$rDs0F$7$^$9!#(B
$B$J$k$[$I!#F10U$7$^$9!#:o=|$N%?%$%_%s%0$O%a%s%F%J$K$*G$$;$7$^$9!#(B
on 2011-06-13 17:18
$B$b$&7kO@$,=P$F$7$^$C$?$h$&$G$9$,!"$3$l$O!"85!9(B lib/complex.rb $B$K$"$C$?(B $B$b$N$rFHN)$5$;$?$b$N$G$9$,!"$=$N0UL#$O!"J#AG?tMQ$N4X?t$rDs6!$9$k;v$G$O(B $B$J$/!"J#AG?t%I%a%$%s$KBP1~$7$?(B Math $B$rDs6!$9$k!"$H$$$&;v$@$HM}2r$7$F$$(B $B$^$7$?!#$D$^$j!"<B?tMQ$H$7$F$D$+$o$l$k8B$j!"(BMath $B$H$^$C$?$/F1$8$G$"$k$3(B $B$H$,K>$^$l$F$$$?$H9M$($^$9!#(B
on 2011-06-14 01:03
むらたです。 On Tuesday, June 14, 2011 at 12:16 AM, Tadayoshi Funaba wrote: > もう結論が出てしまったようですが、これは、元々 lib/complex.rb にあった > ものを独立させたものですが、その意味は、複素数用の関数を提供する事では > なく、複素数ドメインに対応した Math を提供する、という事だと理解してい > ました。つまり、実数用としてつかわれる限り、Math とまったく同じであるこ > とが望まれていたと考えます。 complex.rb をロードすると Math が CMath 相当に置き換わりますから、 Math を置き換える際に frexp, ldexp, hypot を定義することで対応可能かと思います。 そういう事ですよね?
on 2011-06-14 01:45
> complex.rb $B$r%m!<%I$9$k$H(B Math $B$,(B CMath $BAjEv$KCV$-49$o$j$^$9$+$i!"(B > Math $B$rCV$-49$($k:]$K(B frexp, ldexp, hypot $B$rDj5A$9$k$3$H$GBP1~2DG=$+$H;W$$$^$9!#(B > > $B$=$&$$$&;v$G$9$h$M!)(B $B$=$&$G$O$"$j$^$;$s!#(BCMath $BC1BN$G!"$G$9!#<B:]!"J#AG?tMQ$N4X?t$rDj5A$7$F(B $B$$$k$N$G$O$J$/!"J#AG?t$K$b$D$+$($k$h$&$K3HD%$7$?$b$N$rDs6!$7$h$&$H$7$F(B $B$$$^$9$h$M!#(B
on 2011-06-14 04:57
むらたです。 On Tuesday, June 14, 2011 at 8:45 AM, Tadayoshi Funaba wrote: > > complex.rb をロードすると Math が CMath 相当に置き換わりますから、 > > Math を置き換える際に frexp, ldexp, hypot を定義することで対応可能かと思います。 > > > > そういう事ですよね? > > そうではありません。CMath 単体で、です。実際、複素数用の関数を定義して > いるのではなく、複素数にもつかえるように拡張したものを提供しようとして > いますよね。 私は、これらの関数について以下のように解釈し、CMath からの削除を提案しました。 (1) frexp と ldexp は2を底とする浮動小数点数表現に対する関数なので、表現から中立である複素数に対して無意味である。 (2) hypot(x, y) は sqrt(x**2 + y**2) という定義があるので、再定義することで複素数に拡張可能だけど無意味ではないか? Math と CMath が同時に存在している場合、つまり cmath.rb のみを require した場合、 上記3関数は Math のものを使用できるため、CMath で定義される必要は無いはずです。 現在、CMath に定義されている上記3関数は複素数に対して使用できません。 ふなばさんは、frexp, ldexp, hypot の3関数について、 CMath 単体でどのように定義されるべきだとお考えですか?
on 2011-06-14 05:54
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:43797] Re: [Ruby 1.9 - Feature #4878][Open]
CMath $B$K(B frexp, ldexp, hypot $B$N(B3$B4X?t$OITMW$G$O$J$$$+(B"
on Tue, 14 Jun 2011 11:57:26 +0900, Kenta Murata <muraken@gmail.com>
writes:
|Math $B$H(B CMath $B$,F1;~$KB8:_$7$F$$$k>l9g!"$D$^$j(B cmath.rb $B$N$_$r(B
require $B$7$?>l9g!"(B
|$B>e5-(B3$B4X?t$O(B Math $B$N$b$N$r;HMQ$G$-$k$?$a!"(BCMath
$B$GDj5A$5$l$kI,MW$OL5$$$O$:$G$9!#(B
Python$B$G$O(Bmath$B$r(Bcmath$B$KCV$-49$($k$h$&$J%9%?%$%k$,;~!98+$i$l(B
$B$k$h$&$G$9!#(BRuby$B$@$H(B
require "cmath"
Math = CMath
$B$_$?$$$J!#$3$&$$$&%3!<%I$r2>Dj$9$k$H!"4X?t$r<h$j=|$+$J$$(B
(Math$B$H8_49$N$^$^;D$9(B)$B$H$$$&$N$b0UL#$,$"$k$N$+$b$7$l$^$;$s!#(B
on 2011-06-14 06:32
むらたです。 On Tuesday, June 14, 2011 at 12:53 PM, Yukihiro Matsumoto wrote: > Math = CMath > > みたいな。こういうコードを仮定すると、関数を取り除かない > (Mathと互換のまま残す)というのも意味があるのかもしれません。 これに相当する事をやっているのが complex.rb なので、 Ruby では上記に相当する処理をやりたければ require "complex" することにして、 complex.rb の中で適切に関数を定義すれば良いと考えていました。 たとえば、以下のパッチのような方法です。 https://gist.github.com/1024322
on 2011-06-14 13:37
> $B$3$l$KAjEv$9$k;v$r$d$C$F$$$k$N$,(B complex.rb $B$J$N$G!"(B > Ruby $B$G$O>e5-$KAjEv$9$k=hM}$r$d$j$?$1$l$P(B require "complex" $B$9$k$3$H$K$7$F!"(B > complex.rb $B$NCf$GE,@Z$K4X?t$rDj5A$9$l$PNI$$$H9M$($F$$$^$7$?!#(B lib/complex.rb $B$O8_49$N$?$a$K;D$C$F$$$k$@$1$G?d>)$5$l$^$;$s!#(B $B$3$A$i$NN)>l$+$i8@$($P!"(BCMath $B$O@)8B$r<h$j=|$$$?!"$"$k$$$O<h$j=|$3$&$H(B $B$7$F$$$k(B Math $B$NBeBXHG$H$$$&$H$3$m$G$9$+$M!#(B $B<B:]!"$3$l$i$O(B include $B$7$F$D$+$&$3$H$bA[Dj$5$l!"0lB7$($NJ*$H$7$F07$o$l(B $B$k$o$1$G!"$3$l$OJ#AG?t$KBP1~$G$-$?!"$G$-$J$$$GJ,$1$k$H$+!"J;MQ$9$k$H$$(B $B$&$N$O!"$J$/$O$J$$$1$I!":G=i$+$i$=$l$rMxMQ<T$KMW5a$9$k$N$O$I$&$J$N$+$J!#(B lib/cmath.rb $B$r$D$+$C$F$$$F$b!"$=$N8F$S=P$7$NA4$F$GJ#AG?t$,3hLv$7$F$$$k(B $B$H$O8B$i$J$$$o$1$G$9$h$M!#(BCMath $B$K(B hypot $B$,$J$$$N$O!"J#AG?t$N$?$a$K3HD%(B $B$7$h$&$,$J$+$C$?$+$i$@$H$7$F$b!"<B:]$KMxMQ<T$O!"<B?t$rM?$(!"<B?t$rF@$k(B $B$+$?$A$G$7$+!"(Bsin $B$J$s$+$r;H$C$F$$$J$$$+$b$7$l$J$$$8$c$J$$$G$9$+!#MxMQ(B $B<T$K$=$N6hJL$r$5$;$kI,MW$,$"$k$s$G$7$g$&$+!#(B
on 2011-06-14 14:55
$B1sF#$G$9!#(B 2011$BG/(B6$B7n(B14$BF|(B20:37 Tadayoshi Funaba <tadf@dotrb.org>: >> $B$3$l$KAjEv$9$k;v$r$d$C$F$$$k$N$,(B complex.rb $B$J$N$G!"(B >> Ruby $B$G$O>e5-$KAjEv$9$k=hM}$r$d$j$?$1$l$P(B require "complex" $B$9$k$3$H$K$7$F!"(B >> complex.rb $B$NCf$GE,@Z$K4X?t$rDj5A$9$l$PNI$$$H9M$($F$$$^$7$?!#(B > > lib/complex.rb $B$O8_49$N$?$a$K;D$C$F$$$k$@$1$G?d>)$5$l$^$;$s!#(B > > $B$3$A$i$NN)>l$+$i8@$($P!"(BCMath $B$O@)8B$r<h$j=|$$$?!"$"$k$$$O<h$j=|$3$&$H(B > $B$7$F$$$k(B Math $B$NBeBXHG$H$$$&$H$3$m$G$9$+$M!#(B $BDj5A0h$rA}$d$9$@$1$K$7$h$&!"$H$$$&$3$H$G$9$h$M!#;?@.$G$9!#(B $B$=$&$$$&0UL#$G!"(Bcbrt(-8) $B$O(B Math $B$rB:=E$7$F(B -2 $B$rJV$9$Y$-$@$H;W$&$N$G$9$,!"(B $B$$$+$,$G$7$g$&$+!#(B
on 2011-06-14 15:17
> $BDj5A0h$rA}$d$9$@$1$K$7$h$&!"$H$$$&$3$H$G$9$h$M!#;?@.$G$9!#(B > $B$=$&$$$&0UL#$G!"(Bcbrt(-8) $B$O(B Math $B$rB:=E$7$F(B -2 $B$rJV$9$Y$-$@$H;W$&$N$G$9$,!"(B > $B$$$+$,$G$7$g$&$+!#(B $BCM0h$b3HBg$5$l$^$9$M!#$@$+$i!"(B-2 $B$K$O$J$i$J$$$G$7$g$&!#<B?t$rM?$(!"<B?t(B $B$,JV$kHOCf$G$O(B Math $B$HF1$8$H$$$&$3$H$@$H;W$$$^$9!#(B
on 2011-06-14 15:25
むらたです。 On Tuesday, June 14, 2011 at 8:37 PM, Tadayoshi Funaba wrote: > > これに相当する事をやっているのが complex.rb なので、 > > Ruby では上記に相当する処理をやりたければ require "complex" することにして、 > > complex.rb の中で適切に関数を定義すれば良いと考えていました。 > > lib/complex.rb は互換のために残っているだけで推奨されません。 あー、本当ですね。最初に警告を出している行を完全に見逃していました。 であれば、確かに CMath が Math の役割を果せる必要はありますね。 納得できたので、この提案は撤回させて頂きます。
on 2011-06-14 15:32
2011$BG/(B6$B7n(B14$BF|(B22:17 Tadayoshi Funaba <tadf@dotrb.org>: >> $BDj5A0h$rA}$d$9$@$1$K$7$h$&!"$H$$$&$3$H$G$9$h$M!#;?@.$G$9!#(B >> $B$=$&$$$&0UL#$G!"(Bcbrt(-8) $B$O(B Math $B$rB:=E$7$F(B -2 $B$rJV$9$Y$-$@$H;W$&$N$G$9$,!"(B >> $B$$$+$,$G$7$g$&$+!#(B > > $BCM0h$b3HBg$5$l$^$9$M!#$@$+$i!"(B-2 $B$K$O$J$i$J$$$G$7$g$&!#<B?t$rM?$(!"<B?t(B > $B$,JV$kHOCf$G$O(B Math $B$HF1$8$H$$$&$3$H$@$H;W$$$^$9!#(B $B8_49@-$,$J$$$H$$$&E@$G$OF1$8OC$@$H;W$&$N$G$9$,!D!D!#(B
on 2011-06-14 16:03
> $B8_49@-$,$J$$$H$$$&E@$G$OF1$8OC$@$H;W$&$N$G$9$,!D!D!#(B
$B<gCM$K$J$i$J$$(B Math.cbrt
$B$rB:=E$9$k$H$$$&$N$OFq$7$$$s$8$c$J$$$G$7$g$&$+!#(B
$B$I$&$7$F$b$=$l$,=EMW$@$H;W$o$l$k$J$i!"$3$N7o$H$O4X78$,$J$$$N$G!"2~$a$F(B
$BDs0F$r=P$5$l$k$H$+!#(B
on 2011-06-14 16:18
2011$BG/(B6$B7n(B14$BF|(B23:02 Tadayoshi Funaba <tadf@dotrb.org>: >> $B8_49@-$,$J$$$H$$$&E@$G$OF1$8OC$@$H;W$&$N$G$9$,!D!D!#(B > > $B<gCM$K$J$i$J$$(B Math.cbrt $B$rB:=E$9$k$H$$$&$N$OFq$7$$$s$8$c$J$$$G$7$g$&$+!#(B > $B$I$&$7$F$b$=$l$,=EMW$@$H;W$o$l$k$J$i!"$3$N7o$H$O4X78$,$J$$$N$G!"2~$a$F(B > $BDs0F$r=P$5$l$k$H$+!#(B $B$$$d$"!"(B5 $B7nKv$N(B feature freeze $B;~E@$G$O(B -2 $B$rJV$7$F$$$?$O$:$J$s$G$9$,!"(B 6 $B7n$K$J$C$F$+$i(B ($B5DO@;v9`$,;D$C$?$^$^(B) $BJQ$o$C$?$s$G$9$h$M!#(B http://redmine.ruby-lang.org/issues/3676
on 2011-06-14 16:28
> $B$$$d$"!"(B5 $B7nKv$N(B feature freeze $B;~E@$G$O(B -2 $B$rJV$7$F$$$?$O$:$J$s$G$9$,!"(B > 6 $B7n$K$J$C$F$+$i(B ($B5DO@;v9`$,;D$C$?$^$^(B) $BJQ$o$C$?$s$G$9$h$M!#(B $B$=$l$O!"85!9<gCM$rJV$9$h$&$K$J$C$F$$$?$N$K!"(B-2 $B$rJV$9$h$&$K4V0c$C$FJQ99(B $B$5$l$?$H$$$&7kO@$K$J$C$?$+$i$G$7$g$&!#:G=i$K(B CMath.cbrt $B$r2C$($?$N$O26(B $B$G!"$=$N8e$J$<$+!"(B-2 $B$,JV$k$h$&$KJQ99$5$l$?$N$G$9!#$G$9$+$i!"$3$l$O%P%0(B $B$,=$@5$5$l$?$H$$$&M}2r$G$9$,!#(B
on 2011-06-16 18:11
$B1sF#$G$9!#(B 2011$BG/(B6$B7n(B14$BF|(B23:27 Tadayoshi Funaba <tadf@dotrb.org>: >> $B$$$d$"!"(B5 $B7nKv$N(B feature freeze $B;~E@$G$O(B -2 $B$rJV$7$F$$$?$O$:$J$s$G$9$,!"(B >> 6 $B7n$K$J$C$F$+$i(B ($B5DO@;v9`$,;D$C$?$^$^(B) $BJQ$o$C$?$s$G$9$h$M!#(B > > $B$=$l$O!"85!9<gCM$rJV$9$h$&$K$J$C$F$$$?$N$K!"(B-2 $B$rJV$9$h$&$K4V0c$C$FJQ99(B > $B$5$l$?$H$$$&7kO@$K$J$C$?$+$i$G$7$g$&!#:G=i$K(B CMath.cbrt $B$r2C$($?$N$O26(B > $B$G!"$=$N8e$J$<$+!"(B-2 $B$,JV$k$h$&$KJQ99$5$l$?$N$G$9!#$G$9$+$i!"$3$l$O%P%0(B > $B$,=$@5$5$l$?$H$$$&M}2r$G$9$,!#(B -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
on 2011-06-16 18:59
> -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
on 2011-06-17 10:51
$B1sF#$G$9!#(B 2011$BG/(B6$B7n(B17$BF|(B1:58 Tadayoshi Funaba <tadf@dotrb.org>: > $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$J$k$[$I!#!V(BCMath $B$,(B Math $B$H8_49$G$J$$!W$H$$$&$3$H$J$i!"$"$^$j4n$P$7$$(B $BOC$@$H$O;W$$$^$;$s$,G<F@$O$G$-$^$9!#(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 $B%P%0Js9p<T$,@bF@=PMh$l$P$b$I$k$+$J$H;W$C$?$N$G!#(B $B$^$"(B mrkn $B$5$s$KD>@\8@$&$Y$-$G$7$?$M!#$9$_$^$;$s!#(B
on 2011-06-18 00:22
$B$1$$$8$e!w$$$7$D$+$G$9(B. In [ruby-dev:43832] the message: "[ruby-dev:43832] 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 01:10(JST) Yusuke ENDOH writes: >$B1sF#$G$9!#(B >-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 $B1sF#$5$s$N8@$C$F$$$k$N$O0J2<$N<BAu$G$9$h$M(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$A$J$_$K(B, $BB>$N(BCMath$B4X?t$O<B?t;~$K$D$$$FJL$K<BAu$7$F$$$k$3$H$,B?$$$G$9(B $B$,(B, $B>e5-$N$h$&$KCM$,0[$J$k;v$O$J$$$h$&$K$J$C$F$$$^$9(B. __ ---------------------------------------------------->> $B@PDM(B $B7=<y(B <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---
on 2011-06-18 01:40
$B1sF#$G$9!#(B 2011$BG/(B6$B7n(B17$BF|(B14:19 $B@PDM7=<y(B <keiju@ishitsuka.com>: > $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
on 2011-06-18 02:38
$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: keiju@ishitsuka.com <<---
on 2011-06-18 03:56
$B1sF#$G$9!#(B 2011$BG/(B6$B7n(B17$BF|(B16:33 $B@PDM7=<y(B <keiju@ishitsuka.com>: > 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
on 2012-02-07 19:25
Issue #4878 has been updated by Motohiro KOSAKI. Status changed from Open to Rejected 提案者が提案を取り下げているようなのでrejectします ---------------------------------------- Feature #4878: CMath に frexp, ldexp, hypot の3関数は不要ではないか https://bugs.ruby-lang.org/issues/4878 Author: Kenta Murata Status: Rejected Priority: Normal Assignee: Yukihiro Matsumoto Category: Target version: 2.0.0 現在 CMath は、Math を include して各関数を再定義することで実装されています。 このやり方では、複素数向けの関数としては定義できない frexp, ldexp, hypot の3関数も同時に include されてしまいます。 これらは Math の関数として定義されていれば良いだけですので、CMath からの削除を提案します。
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.