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

From: Tanaka Akira <akr@...>
Date: 2008-04-23 10:23:26 UTC
List: ruby-dev #34496
Complex と ComplexFloat とクラスをふたつに分ける理由がどうに
もわかりません。

In article <480AE086.9070107@blade.nagaokaut.ac.jp>,
  Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp> writes:

> それは、ComplexFloat の方が扱いやすく、利用する人も多いだろうと思われる
> からです。

たとえば、Complex(r,i) が中身が Float の Complex を生成し、
中身が Float でない Complex を生成するには Complex.new を使
うというのはどうでしょうか。

仮にそうしたとすれば、Complex() を使って生成する限り、一貫し
て Float な Complex を使うことが出来ます。ComplexFloat とい
う長い名前を使う必要もありませんし、そっちのほうが使いやすい
んじゃないでしょうか。

ここで、ComplexFloat と、中身が Float の Complex の挙動が等
しいと想定しています。もし挙動が異なるんでしたらそう指摘して
ください。

> むらたさんの提案と私の提案にはずれがあり、私自身の提案も変遷しているの
> で、分かりにくいかもしれません。私の提案は、実装の事も気にしていますが、
> 基本的には仕様を問題にしています。ふなばさんは、Complex がコンテナであ
> るということに起因する問題([ruby-dev:34439])に対してどう考えていますか?
>
> もう一度少し違う例を挙げると、Complex を導入すると
>
>   x.class == y.class かつ x == y だが、x - z != y - z
>
> となる例があります。x = Complex(0, 1.6), y = Complex(0, Rational(16, 10)), 
> z = Complex(0, 1) です。
>
> 数値 x の振舞いは x の属するクラスで決まって欲しい、そのようなものが組
> み込みではより望ましい、のではないでしょうか?

なんでクラスで決まってほしいんでしょう?

上の例は、不正確数のいやらしさが Complex に表れたものであり、
[ruby-dev:34439] は / の挙動のいやらしさが Complex に表れた
ものです。たしかに、Complex は中身の性質が表に出てきます。

その性質が簡単に判断できないというのはたしかに問題かもしれま
せん。でも、その性質って、クラスで判断することが適切なんでしょ
うか?

たしかに、ComplexFloat を導入すれば、ComplexFloat が不正確数
であることをクラスで判断できます。

でも、[ruby-dev:34439] の / の問題は解決できません。これをク
ラスで判断できるようにするには、ComplexInteger を導入する必
要があるでしょう。

また、不正確数は Float だけではありません。BigDecimal や
Decimal を (その表現できる桁を越えた値の近似として) 使えば、
不正確数になります。これをクラスで判断できるようにするには
ComplexBigDecimal や ComplexDecimal を導入するんでしょうか。
これは際限がない気がします。

あと、Complex() に Float や Integer が与えられたらどうするの
か、という問題もあります。原さんの案だと、ComplexFloat は組
み込みですから、Float が与えられた時に ComplexFloat を生成す
るのは可能かもしれません。でも、今はまだない ComplexInteger
を誰かが定義した時、Complex() に Integer を与えて Complex オ
ブジェクトが生成されるとすれば、中身が Integer では「ない」
ことはクラスでは判断できません。

中身の性質を判断したいという要求は充分にあり得ると思うんです
が、それにクラスを用いるという点が納得できません。

正確数か不正確数か判断したいというなら、
Scheme の exact?, inexact? あたりを取り入れて、
Numeric#exact?, Numeric#inexact? を提案するほうがいいと思う
んですが、なんでクラスを使いたいんでしょう?
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread