トップページ > プログラム > 2019年10月05日 > dFaPF8AB

書き込み順位&時間帯一覧

14 位/199 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001120000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part145

書き込みレス一覧

C++相談室 part145
366 :デフォルトの名無しさん[sage]:2019/10/05(土) 12:34:57.85 ID:dFaPF8AB
>>365
x-yの元になっているxやyがどのような計算過程を経てきたかわからないのに
 std::abs(x-y) <= std::numeric_limits<T>::epsilon() * std::abs(x+y) * ulp
でxとyがalmost equalsと言い切ってよい根拠とは、

ちゅか常識的に考えて、x、yがそれぞれ±e、±gの誤差を有するなら
 std::abs(x-y) <= std::numeric_limits<T>::epsilon() * (std::abs(e) + std::abs(g))
あたりの判定に落ち着かねばおかしい(これで正解とは言っていない

なんでstd::abs(x+y)みたいな場合によっては莫大な値になりえる係数を掛けねばならないの?
C++相談室 part145
369 :デフォルトの名無しさん[sage]:2019/10/05(土) 13:28:00.03 ID:dFaPF8AB
>>367
>イプシロンに誤差を掛けても意味ない。
>つか、許容誤差の絶対値が与えられているならイプシロン使う必要もない。
左様ですなスマンカッタorz

>>368
>なにこれ?「誤差」って何に対する何の誤差?
真の値に対する誤差じゃわパオーン
真の値に対する誤差に依存しないalmost equal判定とか、使いどころはきわめて限定されるはず、
C++相談室 part145
370 :デフォルトの名無しさん[sage]:2019/10/05(土) 14:05:34.77 ID:dFaPF8AB
>abs(x+y)はxとyの指数のうち大きい方を意味するものだったはず。
xが (xの符号)×1.bbbb...×2^m
yが (yの符号)×1.cccc...×2^n
だとしたときに、m>nだとすると
 x + y =
 { (xの符号)×1.bbbb... + ((yの符号)×1.cccc...×2^-(m-n)) } ×2^m
として計算されるのでだいたい2^m(x≒yなら2^(m+1))という意味か左様か、
C++相談室 part145
371 :デフォルトの名無しさん[sage]:2019/10/05(土) 14:08:05.45 ID:dFaPF8AB
んまーulpをxとyの来歴に応じて調整すべき量とするなら
cppreference.comのalmost_equal関数は理解してやらないでもない


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。