[#34647] fork 不可能な環境での test_argv0_noarg — wanabe <s.wanabe@...>

ワナベと申します。

13 messages 2008/05/11
[#34667] Re: fork 不可能な環境での test_argv0_noarg — Yukihiro Matsumoto <matz@...> 2008/05/13

まつもと ゆきひろです

[#34742] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.7-preview3 をリリースしました。

14 messages 2008/05/18
[#34744] Re: [ruby-list:44957] Ruby 1.8.7-preview3 has been released — Takahiro Kambe <taca@...> 2008/05/19

お疲れ様です。

[#34800] Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...>

木村です。

18 messages 2008/05/22
[#34801] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/22

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

[#34824] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/23

木村です。

[#34850] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/26

木村です。

[#34854] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/26

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

[#34889] Ruby 1.8.7-preview4 test-all failed in OpenSSL::TestSSL — Nobuhiro IMAI <nov@...>

いまいです。

10 messages 2008/05/29

[ruby-dev:34704] Re: int/int -> rational (Re: Re: ComplexFloat)

From: "Masahiro TANAKA" <masa16.tanaka@...>
Date: 2008-05-14 13:36:16 UTC
List: ruby-dev #34704
田中昌です。

|From: keiju@ishitsuka.com (石塚圭樹)
> 実数がないのに複素数があるのはおかしいうんぬんの話がありましたが, 両者
> は独立に発展した概念ですのでいいんじゃないでしょうか?

独立というのがどういう意味合いかわかりませんが、
虚数単位が √-1 ですから、√x が実数であるということと
同じくらいに、複素数の実部・虚部も実数であると言えます。

もちろん実部・虚部が整数・有理数の複素数もあり得ますが、
それはたまたまそうなった特殊な場合であり、絶対値・べき乗
などの演算をすれば、実部・虚部は一般には実数になります。
ガウス整数を表したいのであれば、GaussianInteger などという
クラスとして実装し直す必要があるのではないでしょうか。

> あと, 実数クラスは正木さんが作成されていますね. コーシー列を用いて実数
> を表現していると思いました. ただ, 実際には任意の数列を用いることができ
> てしまうので実数と言うより超実数でしょうか(^^;

これは非常に面白い取り組みだったと思いますが、
このことは、実数を正確に表すことの難しさを表しているとも言えます。
そこで、実数を表すには普通は不正確数が必要となるのですが、
その不正確数にはいろいろな実装が考えられます。
その実装により、複素数クラスの内部でも対処が必要となることもあります。

すでに、[ruby-dev:34357] の対処のため、Complex#/ メソッドの内部では
Float が特別扱いにされています。

また、BigDecimal には演算精度をコントロールする機能があります。
もし BigDecimal を 複素数で使う場合は、
複素数クラスに精度をコントロールするメソッドが
欲しくなる場合も出てくるでしょう。
そういう場合は ComplexBigDecimal が必要になってくるでしょう。

こうしたことから、内部の実数クラスに特化した複素数クラスが
いろいろ存在したとしてもおかしくはない、と言えます。

一方、実部虚部が任意の数値クラスである Complex クラスは、
大体正しく振る舞う複素数が手軽にできるという点で、有用だと思います。
大体動けばよいのであれば、中の型のせいで少々変な振る舞いをするとしても、
それはある程度しょうがないという気もします。
この辺の見解は、MLの話でも 人によって違っているようです。

以上のようなことを考えると、
組み込みクラスで唯一(概念的に)実数を表す Float に特化した
ComplexFloat は、人によって仕様の見解が違うということもなく、
パフォーマンスがよいことから、
選択肢の1つとしてやはりそれほどおかしくはない、と思います。

もっとも、こうした話は微妙であることは確かなので、
ComplexFloat をことさら強く推すというわけではなく、
Complex の中で Float のパフォーマンスがよくなってくれさえすれば
Complex でもいいかな、という気もしています。

田中昌宏

In This Thread