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

From: Yukihiro Matsumoto <matz@...>
Date: 2008-04-30 14:18:02 UTC
List: ruby-dev #34546
まつもと ゆきひろです

In message "Re: [ruby-dev:34541] Re: ComplexFloat"
    on Wed, 30 Apr 2008 18:50:06 +0900, Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp> writes:

|Tanaka Akira さんは書きました:
|> Complex と ComplexFloat とクラスをふたつに分ける理由がどうに
|> もわかりません。
|
|その理由こそちゃんと述べないといけないのですが、なかなか伝わ
|らないですね。うまく表現ができてないみたいです。一応答えるこ
|とができるところだけ答えます。

何度か読み返したのですが、やっぱりよくわかりません。

* Complex.newの存在は純粋に互換性だけが理由だと考えています。
  ですから、Complex.newの存在はなんの根拠にならないと思います。
  いっそComplex.newを削ってもよいでしょう。

* Floatを成分として持つComplexとComplexFloatが挙動を含めて等
  しいものであるのにもかかわらずComplexFloatとComplexの両方
  があった方が良い理由として、

  (a) Complexの用法としてComplexFloatがほとんどであろうと推
      測される

  (b) 挙動がクラスで決まる、というのはよいことではないかと考
      える

  の2点があげられていますが、前提から考えて(どうせ同じ挙動な
  んだから)Complexの用法としてFloat成分がほとんどであろうがな
  かろうが、ComplexFloatを分離する根拠にはならないと思います。

  「現行の組み込みの数値クラスはすべてクラスで決まっている」
  とありますが、たとえばFixnumとBignumは本当は同じIntegerクラ
  スにしたかったのが、一方が即値であるためにできなかったとい
  う「私の思い」があり、「設計者がしたいのにできなかった」こ
  とをもって「よいこと」と断じられるのは不本意です。

  また、「数値クラスという単純であるべき」とありますが、
  Complexというクラスひとつを導入するのとComplexFloatを代表す
  る多数の「Complex族」を導入したり、あるいはComplexFloatとほ
  ぼ同じ動作を内包するようなComplexクラスを並立させたりするこ
  とは、成分ごとに挙動が多少変化するComplexよりも複雑に(私に
  は)感じます。

という点から、さほど確たる根拠は感じられなかったのですが。複
素数とはそういうものだ、とかそういう話にはならないのですね
(それなら少なくとも私には口出しできない)。

|Complex() に Float を与えると、ComplexFloat と同じ挙動をする
|オブジェクトが得られます。同じような振舞いをするオブジェクト
|が2通りあることになりますね。あまり良くないが仕方がない、とい
|う考えです。最大の欠点?
|
|誰かが ComplexInteger を作ったとすれば、やはり Complex() に
|Integer を与えたものと2重になってしまうでしょう。

「しかたがない」というからには、「しかたがない」だけの理由が
あるんだと思うんですが、上記のようにそんなに「しかたがない」
とは感じませんでした。「単純であるべき」の「単純」はかなり主
観的ですし、「クラスで決まっている」というのもそこまで重要視
すべき性質であるとは感じませんでした。

|exact? と inexact? の導入は検討されてもいいと思います。しかし
|数の挙動を表現する情報としては不十分なわけで(例えば Rational
|と Integer は exact だけど挙動はかなり違う)、そのものズバリ
|「クラスが体を表す」のはいいことではないかと思うのですが…
|数値なのにクラスで性質が判断できない、という気持ち悪さを感じ
|過ぎなのかなあ。

確かに数値クラス群はRubyの中では例外的にクラスが意味を持つ傾
向がありますが、絶対視する必要はないように思うのです。

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

In This Thread