[#33567] rational, complex and nuby — Tadayoshi Funaba <tadf@...>

ruby に rational と complex を組みこもうと試していて nuby という派生物

21 messages 2008/02/02

[#33580] Re: cgi.rb再構築案 — "Makoto Kuwata" <kwa@...>

桑田といいます。

17 messages 2008/02/03

[#33611] Solaris で timeout.rb が Segmentation fault する。 — shiiya@...

はじめまして。椎屋と申します。

15 messages 2008/02/06
[#33612] Re: Solaris で timeout.rb が Segmentation fault する。 — Nobuyoshi Nakada <nobu@...> 2008/02/06

なかだです。

[#33613] Re: Solaris で timeout.rb が Segmentation fault する。 — shiiya yoshitaka <shiiya@...> 2008/02/06

椎屋です。反応ありがとうございます。

[#33650] Re: Solaris で timeout.rb が Segmentation fault する。 — Nobuyoshi Nakada <nobu@...> 2008/02/08

なかだです。

[#33621] EUC-KR <-> UTF-8 transition table — "Park Ji-In" <tisphie@...>

朴 芝印です。

15 messages 2008/02/06

[#33628] encdet.rb — Tanaka Akira <akr@...>

前から考えていたのですが、ファイル先頭の magic comment や

18 messages 2008/02/07

[#33662] rational, complex and mathn — Tadayoshi Funaba <tadf@...>

rational は floor、truncate、ceil、round を定義していません。Numeric

66 messages 2008/02/08
[#33663] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/08

他にも問題、課題はあると思います。すぐに解決できるものと、そうでないも

[#33664] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/08

ひとつ書き忘れました。

[#33707] Re: rational, complex and mathn — Yukihiro Matsumoto <matz@...> 2008/02/12

まつもと ゆきひろです

[#33714] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/12

> 原さんのrationalは導入予定がありますので、この機会にもう一度

[#33727] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/13

原です。

[#33761] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/13

> 前にふなばさんと個人的なメールのやりとりで、結局また私がrationalをまと

[#33788] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/15

原です。

[#33795] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/15

> > それなりに速くはなるし、単純なところでそれなりに満足していますが、一度、

[#33806] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/16

nurat 0.0.2 を出しました (ついでに nucomp も)。

[#33812] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/16

仕様を確認していきたいと思います。

[#33815] Re: rational, complex and mathn — Yukihiro Matsumoto <matz@...> 2008/02/16

まつもと ゆきひろです

[#33818] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/16

原です。

[#33819] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/17

> > new!はRubyで実装しているためにだけ必要なので、Cで実装するな

[#33821] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/17

> Rational() は、1つか2つの引数をとる。

[#33827] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/17

> 実際的に重要な機能が Rational() という名前で固定されるのはクラスの定義

[#33845] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/18

もうあまり手を入れないでおこうと思ったのです、つい手を入れてしまいまし

[#33886] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/21

ちょっと実験してみました。原さんの rational は、かけ算割り算が速いので、

[#33888] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/21

で、考えていたんですが、目的は、最速の rational を作ることではなくて、

[#33903] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/22

原です。

[#33905] Re: rational, complex and mathn — "NARUSE, Yui" <naruse@...> 2008/02/22

成瀬です。

[#33908] Re: rational, complex and mathn — Yukihiro Matsumoto <matz@...> 2008/02/22

まつもと ゆきひろです

[#33914] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/23

> はい。Complexについても1.9の間に組み込んでよいと思います。

[#33679] bigdecimal — Tadayoshi Funaba <tadf@...>

bigdecimal/math.rb の BigMath は、利用者が include してつかうことを前

23 messages 2008/02/09
[#33680] Re: bigdecimal — Tadayoshi Funaba <tadf@...> 2008/02/09

Integer や Float に比べると、BigDicimal() は、1 や 1.1 を受けつけない、

[#33686] Re: bigdecimal — Tadashi Saito <[email protected]> 2008/02/10

斎藤と申します。

[#33698] Re: bigdecimal — Tadayoshi Funaba <tadf@...> 2008/02/11

> 仮にBigDecimal(1.1)を、(二進小数として)受け付けると、「BigDecimalでは、

[#33705] Re: bigdecimal — Yukihiro Matsumoto <matz@...> 2008/02/12

まつもと ゆきひろです

[#33726] Re: [ruby-cvs:22680] Ruby:r15443 (trunk): * bootstraptest/runner.rb, bootstraptest/test_method.rb, enc/depend, — "U.Nakamura" <usa@...>

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

14 messages 2008/02/13
[#33730] Re: [ruby-cvs:22680] Ruby:r15443 (trunk): * bootstraptest/runner.rb, bootstraptest/test_method.rb, enc/depend, — "NARUSE, Yui" <naruse@...> 2008/02/13

成瀬です。

[#33889] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Urabe Shyouhei <shyouhei@...>

卜部です。ちょっとお知恵を拝借したく。

22 messages 2008/02/21
[#33892] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Nobuyoshi Nakada <nobu@...> 2008/02/21

なかだです。

[#33909] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Urabe Shyouhei <shyouhei@...> 2008/02/22

Nobuyoshi Nakada さんは書きました:

[#36081] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — TOYOFUKU Chikanobu <nobu_toyofuku@...> 2008/09/01

豊福です。

[#36085] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Yukihiro Matsumoto <matz@...> 2008/09/01

まつもと ゆきひろです

[ruby-dev:33787] Re: Array の product の戻り値

From: "NARUSE, Yui" <naruse@...>
Date: 2008-02-15 01:19:19 UTC
List: ruby-dev #33787
成瀬です。

Yukihiro Matsumoto wrote:
	> まつもと ゆきひろです
> 
> In message "Re: [ruby-dev:33752] Re: Array の product  	の戻り値"
>     on Wed, 13 Feb 2008 15:21:51 +0900, "NARUSE, Yui" <[email protected]> writes:
> 
> |あれから他の方に教えて頂いたのですが、「Enumerator」と「配列的メソッドを
> |備えたもの」は「C++ における Iterator」に一般化でき、その分類によると、
> |* Enumerator -> Input Iterator
> |* 配列的メソッド -> Random Access Iterator
> |にあたるそうです。
> 
> 自分で勉強するべきなのかもしれませんが、最近のC++事情には疎
> いので(私がC++プログラマだったのは10年以上前)、「C++ におけ
> る Iterator」というのはInput IteratorとRandom Access
> Iteratorの他にもいろいろあるんですかね。

あ、参照を張ろうと思って忘れていました。
http://www.kuzbass.ru/docs/isocpp/lib-iterators.html

図にすると以下の通り、

Random access -> Bidirectional -> Forward -> Input
                                          -> Output
それぞれ以下のようになります。
Input: 入力のみ一方向シーケンシャル
Output: 出力のみ一方向シーケンシャル
Forward: 入出力一方向シーケンシャル
Bidirectional: 入出力双方向シーケンシャル
Random access: 入出力ランダムアクセス

ちなみに、boost だとちょっと変わって、
Incrementable -> Single Pass -> Forward Traversal
-> Bidirectional Traversal -> Random Access Traversal
http://www.boost.org/libs/iterator/doc/new-iter-concepts.html
となっていますが、区別の本質は同じですね。

> |* だから、「配列的メソッド」を備えた Enumerator、
> | つまり Indexer が欲しい。
> |* なお、「配列的メソッド」のキモは [], []=, length であり、
> | これらが実装されていれば、あとはそれを用いて実装できる
> |ということが言いたかったのです。
> 
> うーん、lengthが必須であるならば配列にしてしまっていけない理
> 由があまり思いつかないのですが。メモリ効率?

まず、メモリ効率と実行効率両方です。これは String.bytes が返す Indexer
の場合がいい例かと。

次に、実体を一つにしたいというケースです。これも String.bytes の例です
が、これが整数列を返す場合、これにたいして書き込みを行っても元の String
が変更されません。

加えて、独自のメソッドを追加したい場合です。Array のインスタンスに特異メ
ソッドを使う方法は面倒ですし、Array を継承した場合は [] を再定義しても
first が依存していないのでこれも使えません。独自クラスに Indexable を
include する方法ならば、これもすっきりします。

> lengthがないならばLazyなList が作れるという理由が思いつくのですが。

Requirements については議論の余地がある点だと思っています。今回 length
を加えたのは String.bytes が返すものに対しての採用を期待しているからで、
そのために length が必要になりました。
length や []= のない Indexer というのも存在しうると思っていますが、まず
は目下欲しい String.bytes に必要なメソッドとして、[], []=, length を挙げ
ました。

> もうちょっといろいろ議論しないと、なぜRandom Access Iterator
> が必要なのか見えてきません。

目下の主張としては、[ruby-dev:33447] の
> うーん、どうしようかなあ。専用クラス化した方が性能が上がると
> かいいこともあるんですがねえ。でも、byteアクセスとbyte列挙子
> を同一視することになんとなく抵抗感があります。
についてで、「byteアクセスはbyte列挙子の延長にある」というものです。
String.bytes.each{|x| p x}
String.bytes[idx]
String.bytes[idx]=
はそれぞれ自然なものであるというのが第一の主張です。

よって String.bytes は Random Access Iterator を返すべきというのが第二。
それを Enumerator につっこむのはさすがに違いすぎるだろうから Indexer と
いう別のものにしよう。
他のオブジェクトにも使えるだろうから Indexable もあるといいね。
ところで、String.bytes 前提だと length が必要だね。
となって、今に至るという感じでしょうか。

-- 
NARUSE, Yui  <[email protected]>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA

In This Thread