[#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:34322] Re: ComplexFloat

From: Yukihiro Matsumoto <matz@...>
Date: 2008-04-10 22:54:23 UTC
List: ruby-dev #34322
まつもと ゆきひろです

In message "Re: [ruby-dev:34318] Re: ComplexFloat"
    on Fri, 11 Apr 2008 02:30:58 +0900, "Kenta Murata" <muraken@gmail.com> writes:

|だとすると,ふなばさんは私の提案の何に対して「いびつ」であると
|お感じになっているのでしょうか?そこがまだ理解できていないので
|教えてください.

「早すぎる最適化」を懸念しておられる気がします。私としては村
田さんの主眼が読み切れてないので保留します。

  * 機能セット(C99 complex関数相当を提供する)
  * 内部実装(C99 complexをオブジェクトに埋め込む)
  * 効率(メモリ効率、計算効率)
  * 拡張ライブラリの書きやすさ

の話が同時に出てくるので判断しがたいです。

たとえば、

|少なくとも C99 の複素関数群をサポートするか否かは Ruby の数値系の
|方向性に大きく影響するはずです.そして,複素関数群をサポートする場合の
|実装方法として _Complex を持つかどうかという話になるわけですが,
|それは今迄の議論で十分話し合われていると思います.すなわち,
|Float を VALUE で持つ必要性は無いということです.

で見ると、「影響するはずです」までは機能セットの話、
「Complexを持つかどうかという話」は内部実装の話です。また、
ComplexFloatを導入するのであれば、そこで「FloatをVALUEで持つ
必要性は無い」のはその通りですが、Complexクラスしか導入しな
いという前提では逆に「Floatを特別扱いしてVALUEで持たない必要
性」はまだ結論が出ていない(個人的には消極的)です。

さて、個別の論点について整理しましょう。

まず、機能セットについては反対しません。また、その実装として
(あれば)C99 complexを経由するのもよいと思います。ただし、C99
を必須にするのは当面避けたいので、利用するにしても結局互換層
を用意する必要があると思います。

内部実装についてですが、以前いただいたパッチのように直接オブ
ジェクトに埋め込むのは全体のメモリ効率を低下させるので採用し
がたいです。独立したComplexFloat(あるいはFloatComplex?)クラ
スを採用すると決めるまではこれは保留するのがよいのではないか
と思います。個人的にはあまり独立したクラスを導入したくないで
すが。

効率についてですが、メモリはできるだけ消費しない、速度は速い
に越したことはないですが、即値でない以上、限界があると思いま
す。また、Rubyから呼び出す以上、メソッド呼び出しのコストが大
きいので、事前の予測は困難ですからあまり急いで最適化について
考える必要はなさそうに思います。

最後に拡張ライブラリの書きやすさですが、C99を必須にできない
点などからある程度困難をともないますが、結局はCのcomplexを表
現するデータとRubyのオブジェクトを相互変換するAPIがあるかど
うかに帰結するように思います。これは内部実装をどのようにする
かとは独立の話です。

                                まつもと ゆきひろ /:|)

In This Thread