[#30455] a[] += 1 で SEGV — "Hiroki Motoyoshi" <himotoyoshi.ml@...>
本吉と申します。
6 messages
2007/03/01
[#30477] ThreadError on shell.rb — "Akira ODA" <oda.org@...>
はじめまして、尾田といいます。
8 messages
2007/03/04
[#30478] Re: ThreadError on shell.rb
— keiju@... (石塚圭樹)
2007/03/04
けいじゅ@いしつかです.
[#30482] Ruby 1.8.6 preview3 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 preview3 をリリースしました。
10 messages
2007/03/04
[#30489] Re: Ruby 1.8.6 preview3 has been released
— nekomaho <nekomaho@...>
2007/03/05
ねこまほです.
[#30486] str.lines[1..-1] — Minero Aoki <aamine@...>
青木です。
7 messages
2007/03/05
[#30487] Time#to_s format — OHARA Shigeki <os@...>
大原です。
6 messages
2007/03/05
[#30504] num_tとthread_initという名前について — "Yutaka Kanemoto" <kinpoco@...>
金本ともうします。
1 message
2007/03/07
[#30505] [BUG?] SIGTERM の取り扱い — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
10 messages
2007/03/08
[#30509] Re: [BUG?] SIGTERM の取り扱い
— Nobuyoshi Nakada <nobu@...>
2007/03/08
なかだです。
[#30510] Re: [BUG?] SIGTERM の取り扱い
— Yukihiro Matsumoto <matz@...>
2007/03/08
まつもと ゆきひろです
[#30531] DL::PtrData#to_a dumps core — sheepman <sheepman@...>
こんばんは、sheepman です。
4 messages
2007/03/11
[#30532] DL::PtrData#inspect — sheepman <sheepman@...>
こんばんは、sheepman です。
6 messages
2007/03/11
[#30537] Microsoft-IIS 上で cgi.rb がレスポンス行を2重に出力する — MIYASAKA Masaru <alkaid@...>
初めての投稿です。みやさか と申します。よろしくお願いいたします。
5 messages
2007/03/12
[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 をリリースしました。
14 messages
2007/03/12
[#30555] Re: [ANN] Ruby 1.8.6 has been released
— "U.Nakamura" <usa@...>
2007/03/13
こんにちは、なかむら(う)です。
[#30558] Re: [ANN] Ruby 1.8.6 has been released
— moonwolf@...
2007/03/13
おひさしぶり、MoonWolfです。
[#30559] Re: [ANN] Ruby 1.8.6 has been released
— nekomaho <nekomaho@...>
2007/03/13
ねこまほです.
[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
13 messages
2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9
— Yukihiro Matsumoto <matz@...>
2007/03/15
まつもと ゆきひろです
[#30587] Re: help: lib/shell for ruby 1.9
— keiju@... (石塚圭樹)
2007/03/15
けいじゅ@いしつかです.
[#30588] Re: help: lib/shell for ruby 1.9
— Yukihiro Matsumoto <matz@...>
2007/03/15
まつもと ゆきひろです
[#30590] [BUG?] Mutex or ConditionVariable for ruby 1.8[Re: Re: help: lib/shell for ruby 1.9]
— keiju@... (石塚圭樹)
2007/03/15
けいじゅ@いしつかです.
[#30592] Re: [BUG?] Mutex or ConditionVariable for ruby 1.8[Re: Re: help: lib/shell for ruby 1.9]
— "Akinori MUSHA" <knu@...>
2007/03/15
At Thu, 15 Mar 2007 18:53:46 +0900,
[#30600] Re: [BUG?] Mutex or ConditionVariable for ruby 1.8[Re: Re: help: lib/shell for ruby 1.9]
— "Akinori MUSHA" <knu@...>
2007/03/16
At Thu, 15 Mar 2007 19:18:42 +0900,
[#30601] Re: [BUG?] Mutex or ConditionVariable for ruby 1.8[Re: Re: help: lib/shell for ruby 1.9]
— keiju@... (keiju ISHITSUKA)
2007/03/16
けいじゅ@いしつかです.
[#30564] release code and revision number — Nobuyoshi Nakada <nobu@...>
なかだです。
11 messages
2007/03/13
[#30566] Re: release code and revision number
— Urabe Shyouhei <shyouhei@...>
2007/03/14
卜部です
[#30581] [ruby-core:10580] Thread後のexecでENOTSUPPエラー対応 — "H.Holon" <holon@...>
相馬 - H.Holonです。
8 messages
2007/03/14
[#30646] Re: [ruby-core:10580] Thread後のexecでENOTSUPPエラー対応
— Nobuyoshi Nakada <nobu@...>
2007/03/19
なかだです。
[#30586] Etc.getgrgid が getgid の値に固定されています — 植田裕之 <ueda@...>
植田と申します。
5 messages
2007/03/15
[#30593] [BUG] waitpid for ruby-trunk — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
5 messages
2007/03/15
[#30612] stdout flush in fork — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
9 messages
2007/03/17
[#30614] Re: stdout flush in fork
— Yukihiro Matsumoto <matz@...>
2007/03/17
まつもと ゆきひろです
[#30616] Re: stdout flush in fork
— keiju@... (石塚圭樹)
2007/03/17
けいじゅ@いしつかです.
[#30620] DL.callback as free function causes errors — sheepman <sheepman@...>
こんにちは、sheepman です。
4 messages
2007/03/18
[#30627] [ ruby-Bugs-9360 ] Matrix inverse problem — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
4 messages
2007/03/19
[#30648] YARVでのalias名の取得方法 — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
5 messages
2007/03/20
[#30653] [BUG] queue 0x424010 freed with live thread(s) waiting — Masatoshi SEKI <m_seki@...>
咳といいます。
4 messages
2007/03/20
[#30655] win32/registry wtime — moonwolf@...
MoonWolfです。
11 messages
2007/03/20
[#30658] Unicode対応と文字化け(Re: win32/registry wtime)
— Yukihiro Matsumoto <matz@...>
2007/03/21
まつもと ゆきひろです
[#30659] Re: Unicode対応と文字化け(Re: win32/registry wtime)
— Tietew <tietew+ruby-dev@...>
2007/03/21
win32/registry.rb を書いた Tietew です。
[ruby-dev:30627] [ ruby-Bugs-9360 ] Matrix inverse problem
From:
Yukihiro Matsumoto <matz@...>
Date:
2007-03-19 04:08:14 UTC
List:
ruby-dev #30627
まつもと ゆきひろです
rubyforgeバグレポートに以下のようなレポートが来てますが、私
には判断できません。どうでしょう。石塚さん?
# コメントは編集してあります。パッチは(3つある)最終版のもの
# です。
---
There is a problem with the Matrix.inverse method.
Given the following matrix
m = Matrix[[0.417787968829298, 0.542037605627772, 0.729142268138943],
[0.0, 6.12303176911189e-17, 1.0],
[-0.542037605627772, 0.417787968829298, -2.55812900589452e-17]]
the result of
m.inverse * m
is
[[1.0, 0.0, 0.650423523448542],
[5.55111512312578e-17, 1.0, 0.84385869292008],
[0.0, 9.24446373305873e-33, 1.0]]
but it should be
[[1.0, 0.0, 0.0],
[0.0, 1.0, 0.0],
[0.0, 0.0, 1.0]]
or close to this!
----
The patch below should "fix" the inverse method. It adds partial pivoting to the Gauss-Jordan algorithm, making it stable. (I used Ruby 1.8.5 (2006-08-22).)
I don't think there is an error in the algorithm, and the matrix is not ill-conditioned (a condition number of about 2.5 isn't so bad).
Looks to me like BigDecimal uses Gaussian elimination with partial pivoting too, or at least that's what the comments say. It includes some additional scaling, but this may be specific to BigDecimal (precision works differently for BigDecimals and floats).
Peter
--- lib/matrix.rb.old 2007-03-19 01:46:44.000000000 +0100
+++ lib/matrix.rb 2007-03-19 03:26:38.000000000 +0100
@@ -590,15 +590,21 @@
a = src.to_a
for k in 0..size
- if (akk = a[k][k]) == 0
- i = k
- begin
- Matrix.Raise ErrNotRegular if (i += 1) > size
- end while a[i][k] == 0
+ i = k
+ akk = a[k][k].abs
+ for j in (k+1)..size
+ v = a[j][k].abs
+ if v > akk
+ i = j
+ akk = v
+ end
+ end
+ Matrix.Raise ErrNotRegular if akk == 0
+ if i != k
a[i], a[k] = a[k], a[i]
@rows[i], @rows[k] = @rows[k], @rows[i]
- akk = a[k][k]
end
+ akk = a[k][k]
for i in 0 .. size
next if i == k