[#34261] ComplexFloat — "Kenta Murata" <muraken@...>

村田です.

117 messages 2008/04/06
[#34280] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

村田です.

[#34286] Re: ComplexFloat — Nobuyoshi Nakada <nobu@...> 2008/04/10

なかだです。

[#34288] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34290] Re: ComplexFloat — "U.Nakamura" <usa@...> 2008/04/10

こんにちは、なかむら(う)です。

[#34293] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34296] Re: ComplexFloat — "U.Nakamura" <usa@...> 2008/04/10

こんにちは、なかむら(う)です。

[#34298] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34300] Re: ComplexFloat — Tanaka Akira <akr@...> 2008/04/10

In article <761216ce0804100221x67f10f12iab12b0e35b6f50e4@mail.gmail.com>,

[#34301] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34303] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/10

まつもと ゆきひろです

[#34314] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/10

利点としては、拡張ライブラリが書きやすい、ということ。正当化の理由とし

[#34316] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34317] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/10

> 私にはいびつな進化という感じはしません.むしろ,せっかく C で実装できるのに

[#34318] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34322] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/10

まつもと ゆきひろです

[#34328] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/11

むらたです.

[#34331] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/11

まつもと ゆきひろです

[#34340] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/11

むらたです.

[#34341] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/11

まつもと ゆきひろです

[#34362] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34363] Re: ComplexFloat — Tanaka Akira <akr@...> 2008/04/12

In article <761216ce0804120723n16bfbad7qdae90f142978d256@mail.gmail.com>,

[#34367] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34368] Re: ComplexFloat — Tanaka Akira <akr@...> 2008/04/12

In article <761216ce0804121011h6132d58fh4916ecbb29d58690@mail.gmail.com>,

[#34369] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34364] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/12

まつもと ゆきひろです

[#34366] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34386] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/13

まつもと ゆきひろです

[#34415] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/15

むらたです.

[#34439] Re: ComplexFloat — Shin-ichiro HARA <sinara@...> 2008/04/17

原です。

[#34442] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/17

まつもと ゆきひろです

[#34451] Re: ComplexFloat — Shin-ichiro HARA <sinara@...> 2008/04/18

原です。

[#34455] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/18

> 1. ComplexFloat を組込みにし、Complex を標準ライブラリとして提供する。

[#34457] Re: ComplexFloat — Shin-ichiro HARA <sinara@...> 2008/04/20

原です。

[#34458] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/20

> 分かりににくかったですが、これは、ComplexFloat を含めた組込みの数体系が

[#34502] Re: ComplexFloat — sheepman <sh@...> 2008/04/24

こんばんは sheepman です。

[#34601] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/05/07

まつもと ゆきひろです

[#34603] Re: ComplexFloat — keiju@... (石塚圭樹) 2008/05/07

けいじゅ@いしつかです.

[#34614] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/05/08

まつもと ゆきひろです

[#34621] Re: ComplexFloat — keiju@... (石塚圭樹) 2008/05/08

けいじゅ@いしつかです.

[ruby-dev:34329] Re: ComplexFloat

From: "Kenta Murata" <muraken@...>
Date: 2008-04-11 07:13:31 UTC
List: ruby-dev #34329
むらたです.

2008/4/11 Tadayoshi Funaba <tadf@dotrb.org>:
> > だとすると,ふなばさんは私の提案の何に対して「いびつ」であると
>  > お感じになっているのでしょうか?そこがまだ理解できていないので
>  > 教えてください.
>
>  Rational で、自前の Bignum を用意した人は、Rational の事だけ考えてたん
>  じゃないでしょうか。そのあたりがいびつの原因だと思います。

残念ながら,それがいびつであるとは感じられないんですよね.
Rational 以外との相互作用は coerce を適切に定義することで
どうとでもできますよね.Fixnum/Bignum 以外は持たない事を
想定しているのでしたら,Rational をコンテナとし実装する
必要性も無い,というのが私の考え方です.

>  > 少なくとも C99 の複素関数群をサポートするか否かは Ruby の数値系の
>  > 方向性に大きく影響するはずです.そして,複素関数群をサポートする場合の
>
>  なくはないかもしれません。一応、C99 はつかわないことにする、とか。

C99 ってそんなに嫌われてるんですかねぇ >_<

>  村田さんは、C の Complex 型をつかえば速くなる、というようなことは直接
>  的にいわないようにしているようですね。たぶん、そうしても Complex が劇
>  的に速くなくわけでも、ruby の数値演算能力が飛躍的に向上するわけでもな
>  いことを知っているからじゃないかな、と思っています。

今までは直接的な表現は避けましたが,先程まつもとさんのメールへの返信で
そのことも明記しました.C99 の _Complex で速くなるかどうかはコンパイラ
とライブラリに依存します.

ruby の数値演算能力の向上は,C99 の _Complex を使う事とは別問題です.
ひとつ前のメールにも書いたように,コンテナではない複素数があれば,
YARV で演算の最適化をすることができます.

>  手元で少しテストしたところでは、まったく速度改善のための配慮がない素朴
>  な Complex と RVALUE を拡大するなど有利な条件がある ComplexFloat を比
>  べても驚くほどの違いはないようです。また、実装と API は別、ということ
>  は村田さん自身が認められたと思います。

私の patch は実装案を示すために急いで作ったもので,ひとつも最適化されて
いません.しかし,あの実装からの最適化は可能ですよね.

# ちなみに,RVALUE の拡大は不利な条件です >_<

>  何が目的で、何が手段なのかよくわからなくなっている気がします。C の
>  Complex 型をつかいさえすれば満足、ということかもしれないけど、僕からす
>  ると、現時点でそれが必ずしも最善とも思えません。

複素数の表現を C で持つ事の利点は,複素数クラスの演算が他のクラスに
依存せずに決定できる事です.それで,前にも述べましたが,コンテナとして
の複素数も必要なので,本当はどっちも組込まれているべきだと思うんです.
私にとっての最善は,ふなばさんの Complex と僕の ComplexFloat が共存
することです.そして,それが Ruby にとっても最善であると信じています.

>  この件は、最初にいったように、実装の問題でしかないと思います。C の
>  Complex 型をつかう可能性は否定しませんが、現時点で、つかえ、つかわない
>  のはおかしい、とわれる筋はない、と個人的には判断しました。

組込みクラスになる可能性があったので,強く否定しました.
もし,「標準添付ライブラリのまま実装が C になりました」という
だけだったら何も言わなかったと思います.組込みになるということは,
ruby を起動しただけでそこに Complex が存在することになります.
require "complex" しなければ存在しない Complex と,何もしなくても
存在する Complex では意味が違いますよね?組込み化ってそのくらい
大きな影響があると思うんですよ.

>  この前、斎藤さんが紹介してくれたようなこともありますし、今すぐ何かしな
>  ければならないことでもありません。いずれ、速度改善などが必要だと判断し
>  た場合、その時良いと思えば、C の Complex 型をつかうこともあるのかもし
>  れません。今はまだ、Complex の組み込み自体が正式に決まるかどうかわから
>  ない時期です。

私は読み違えていたかもしれません.Complex の組込み化はほとんど決定
されているものだとばかり思っていました.もしかしたら組み込みクラス
ではなくなる可能性もあるんですか?

-- 
Kenta Murata
OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC

In This Thread