[#44469] [Ruby 1.9 - Bug #5279][Open] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Shota Fukumori <sorah@...>

21 messages 2011/09/06
[#44471] [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Shota Fukumori <sorah@...> 2011/09/06

[#44472] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — "NARUSE, Yui" <naruse@...> 2011/09/06

2011年9月6日11:02 Shota Fukumori <[email protected]>:

[#44473] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — "Shota Fukumori (sora_h)" <sorah@...> 2011/09/06

じゃぁ,大丈夫かな.

[#44474] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Kazuhiko <kazuhiko@...> 2011/09/06

On 06/09/2011 06:10, Shota Fukumori (sora_h) wrote:

[#44541] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Kazuhiko <kazuhiko@...> 2011/09/24

かずひこです。

[#44549] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — KOSAKI Motohiro <kosaki.motohiro@...> 2011/09/26

> かずひこです。

[#44491] [Ruby 1.9 - Feature #5314][Open] パッケージマネージャをコアリリースに含めて欲しい — Taro MURAOKA <koron.kaoriya@...>

13 messages 2011/09/13

[#44506] [Ruby 1.9 - Feature #5317][Open] rubyのヘッダファイルを使った拡張を行う際にuid_tの宣言回避をする事が出来ない。 — Yasuhiro Matsumoto <mattn.jp@...>

9 messages 2011/09/13

[#44520] [Ruby 1.9 - Bug #5350][Open] WeakRef で謎の NoMethodError — Makoto Kishimoto <redmine@...>

20 messages 2011/09/21

[#44542] [Ruby 1.9 - Bug #5363][Open] OpenSSL::ASN1.decode_all の引数に PEM 形式の証明書を指定すると Segmentation fault が発生する — Hiroshi Yoshida <hexa.diary@...>

8 messages 2011/09/25

[#44546] [Ruby 1.9 - Bug #5368][Open] ensure節でsleepするようなThreadがあるとインタプリタが終了しない — Masaki Matsushita <glass.saga@...>

22 messages 2011/09/26

[ruby-dev:44450] [Ruby 1.9 - Bug #5266][Open] BigDecimal#sqrt で、大きな数の平方根の、要求する精度が低いある範囲のとき、結果がおかしい

From: Makoto Kishimoto <redmine@...>
Date: 2011-09-02 03:04:32 UTC
List: ruby-dev #44450
Issue #5266 has been reported by Makoto Kishimoto.

----------------------------------------
Bug #5266: BigDecimal#sqrt で、大きな数の平方根の、要求する精度が低いある範囲のとき、結果がおかしい
http://redmine.ruby-lang.org/issues/5266

Author: Makoto Kishimoto
Status: Open
Priority: Normal
Assignee: 
Category: ext
Target version: 1.9.x
ruby -v: ruby 1.9.4dev (2011-07-18 trunk 32577) [x86_64-freebsd8.2]


BigDecimal#sqrt で、大きい数(10**n でだいたい n > 100 あたり
から顕著)の平方根を求める時、sqrt の引数(桁数で要求する、精度の下限)
がだいたい 20 ~ 0.55 * n の時、期待するような結果が出ません。

以下具体例を示して説明します。

$ irb19
irb(main):001:0> RUBY_DESCRIPTION
=> "ruby 1.9.4dev (2011-07-18 trunk 32577) [x86_64-freebsd8.2]"
irb(main):002:0> require "bigdecimal"
=> true
irb(main):003:0> BigDecimal("2" + "0" * 100).sqrt(55)
=> #<BigDecimal:801370a88,'0.1414213562 3730925960 0758552551 27E51',36(81)>
irb(main):004:0> BigDecimal("2" + "0" * 100).sqrt(56)
=> #<BigDecimal:8013720b8,'0.1414213562 3730950488 0168872420 9698078569 6718753769 4807317668 1337583355E51',81(90)>

101 桁の数の平方根で、55 桁の精度を要求しても、36 桁の結果しか
帰って来ず、56 桁の結果の値と比較するとわかりますが、20桁程度の精度しか
ありません。

irb(main):005:0> BigDecimal("2" + "0" * 200).sqrt(109)
=> #<BigDecimal:80137ba00,'0.1414213562 3730950488 0168872420 9698078570 3148413402 613295E101',63(135)>
irb(main):006:0> BigDecimal("2" + "0" * 200).sqrt(110)
=> #<BigDecimal:80137d0a8,'0.1414213562 3730950488 0168872420 9698078569 6718753769 4807317667 9737990732 4784621071 8501120828 2516704398 7185098437 5959938108 258992945E101',144(144)>

201 桁の数だと、要求する精度が 109 桁と 110 桁の間に境界があり、
また異常のある結果の精度も倍程度になります。


-- 
http://redmine.ruby-lang.org

In This Thread

Prev Next