[#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

なかだです。

[#33652] Re: Solaris で timeout.rb が Segmentation fault する。 — SATOH Fumiyasu <fumiyas@...> 2008/02/08

さとうふみやす @ OSS テクノロジです。

[#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 <shiba@...2.accsnet.ne.jp> 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:33852] Re: rational, complex and mathn

From: Shin-ichiro HARA <sinara@...>
Date: 2008-02-19 03:39:04 UTC
List: ruby-dev #33852
原です。

Tadayoshi Funaba さんは書きました:
>> $ ruby -I../nurat-0.0.4/lib:../nurat-0.0.3/ext bench.rb nurat-0.0.4 >>
>> benchmark.log
> 
> これだと 0.0.3 をつかってしまいそうですが。ま、あまり変りないかもしれ
> ませんが。

あ、失敗。

> 原さんのはかけ算が圧倒的に速いですね。ただ、加減算などになるとあまり違
> いがなくなってきて、特に数が大きくなると、nurat のほうが速くなったりす
> るようです。いいところをうまく取りこめるといいですが。

> --- hara-bench.rb	Tue Feb 19 06:49:34 2008
> +++ hara-bench-n.rb	Tue Feb 19 06:59:31 2008

> --- hara-bench.rb	Tue Feb 19 06:49:34 2008
> +++ hara-bench-n2.rb	Tue Feb 19 07:00:08 2008

確かに加算の rational-1.19 はいまいちだなあ。

> --- hara-bench.rb	Tue Feb 19 06:49:34 2008
> +++ hara-bench-n3.rb	Tue Feb 19 07:01:04 2008
> @@ -22,13 +22,13 @@
>  end
>  
>  def prod1
> -  n = 10**4
> +  n = 10**5
>    a = sa('a', 1, 100, n).zip(sa('b', 1, 100, n)).map{|x, y| Rational(x, y)}
>  
>    bm("product-small", $libname) do
> -    s = Rational(1)
> +    s = Rational(2)
>      a.each do |x|
> -      s *= x
> +      s **= x
>      end
>    end
>  end

これは、掛け算ではなく **(aRational) の問題みたい。nurat では、

  N = Float::MAX.to_i * 2
  p Rational(N + 2, N + 1).to_f

とすると NaN ですが、rational-1.19 では複雑なことをしていて、1.0 にな
ります。しかし、工夫の余地があるということだなあ。

-----^ bm.rb
#!/usr/bin/ruby
require "rational.rb"

$libname = ARGV.shift || "(unknown)"

def sa(name, from, to, size)
  fname = sprintf("INT%s_%d_%d_%d", name, from, to, size)
  unless File.exist?(fname)
    a = (1..size).map{Rational(rand(to - from + 1) + from)}
    open(fname, "w") {|f| f << a.join("\n")}
  end
  File.read(fname).split.map{|x| x.to_i}
end

def bm(name, routine = nil, n = 1)
  start = Time.now
  n.times do
    yield
  end
  stop = Time.now
  printf("= %-20s %-20s %f sec.\n",  name, "(#{$libname})", stop - start)#-
end

def rats(a, b, n)
  sa(*(a+[n])).zip(sa(*(b+[n]))).map{|x, y| Rational(x, y)}
end

def plus0(title, x, y, n)
  a = rats(['a', *x], ['b', *y], n)
  bm(title, $libname) do
    s = Rational(0)
    a.each do |x|
      s += x
    end
  end
end

def mul0(title, x, y, n)
  a = rats(['a', *x], ['b', *y], n)
  bm(title, $libname) do
    s = Rational(1)
    a.each do |x|
      s *= x
    end
  end
end

def rat_pow0(title, x, y, n)
  a = rats(['a', *x], ['b', *y], n)
  bm(title, $libname) do
    s = Rational(2)
    a.each do |x|
      s **= x
    end
  end
end


if $0 == __FILE__
  plus0("addtion-small",  [-100, 100], [1, 100], 10**3)
  mul0("product-small", [1, 100], [1, 100], 10**3)
  plus0("addition-big", [10**30, 10**40], [10**30, 10**40], 50)
  mul0("product-big", [10**30, 10**40], [10**30, 10**40], 50)
  rat_pow0("exponential-rat-big", [1, 100], [1, 100], 10**5)
end
-----$ bm.rb

In This Thread