- 1 名前:デフォルトの名無しさん [2008/01/04(金) 14:25:44 ]
- 主にx86系で浮動小数点を扱う話題
- 231 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 20:17:46 ]
- >単位ベクトル:(-1, 1)
1/sqrt(2)の間違いな。
- 232 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:29:03 ]
- >>224
おまえと>>229は別人なのか、同一人物の自演なのか?www二匹も馬鹿が釣れたのか。 非正規化数の定義された意味を勉強するのはお前のほうだ。 Kahanのサイトに行って、70年代からの苦労話を読み直して来い! 非正規化数を正規化数と同じに考えているところからして、お前は根本から間違っているんだよ。 大体ようやくここ10年くらいでIEEE754の数値Formatは普及したが、丸めやら非正規化数の扱いなんかを 完全準拠している処理系はむしろ例外的だろ。 CELL(SPE)とかGPUの類も非正規化数とかまともにやってないだろ。 SunのSPARCも対応していなくてソフトウェアで対応してたろが。 (この辺は、記憶が曖昧だから検証はマニアさんに任せるよw) さて、数直線のイメージが理解できないようだから、幼稚園児にも分かるようにより程度を下げて 説明してやる。感謝しろ。 浮動小数点の正規数は、おおよそ対数メッシュになっている。これは指数部に拠るものである。 これは定規で長い線で引かれている目盛りのようなものだ。 さらにこの対数目盛りの間に細かい目盛りが等間隔で引かれている。これは仮数部によるものだ。 0近傍を見ると、最小の正規数までの間には正規数の細かい目盛りは無い。空白地帯がある。 IEEE754規格はここに非正規数を置いているが、この部分は処理系に依存するので、 浮動小数点を学び始めた人は正規数のみのイメージを作るほうが適切だ。 それに、そもそも話は正規数の範囲だったしな。 >>229 お前は桁落ちも知らないで浮動小数点に粘着しているのかwwwwww subnormalなnumberをいじるより、そのsubnormalなお前の知性を何とかしろ。 俗人のくせに神学に興味を示すのは狂気のプレリュードというが、 数値計算もしないのに浮動小数点にこだわるのも同じだな。abnormalだ。 まず味噌汁で顔を洗って、伊理正夫の数値計算の常識を百回読み返すまでROMってろ!
- 233 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:26:17 ]
- wwwまで読んだ
- 234 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:11:46 ]
- >>229
>お前は桁落ちも知らないで浮動小数点に粘着しているのかwwwwww ん?この桁落ち、間違ってるのか? 君>>228か?何か気分害したか?直すぞ。 16桁BCDで説明し直すか? >subnormalなnumberをいじるより、そのsubnormalなお前の知性を何とかしろ。 1e-13ってsubnormalなのか?あ、これ、倍精度な。
- 235 名前:228 mailto:sage [2008/02/23(土) 01:14:16 ]
- 違うわい。俺はこんな煽りはしない。
桁落ちは合ってるが、桁落ちを今知ったような、 あるいは桁落ち誤差が完全に頭から抜け落ちていたような 雰囲気に対して煽ってるんだろう。
- 236 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:57:14 ]
- >大体ようやくここ10年くらいでIEEE754の数値Formatは普及したが、丸めやら非正規化数の扱いなんかを
>完全準拠している処理系はむしろ例外的だろ。 何いきなり抱き合わせで完全準拠を求めてんですか。 そんなに価値がないのならIEEE754rで削除してもらうか。 >SunのSPARCも対応していなくてソフトウェアで対応してたろが。 プログラマならまずシステムとして対応しているか&使い物に なるかを気にするべきでハード実装かどうかはそのあとでしょ? >浮動小数点を学び始めた人は正規数のみのイメージを作るほうが適切だ。 同意 >それに、そもそも話は正規数の範囲だったしな。 そうだっけ? >subnormal まで読んだ
- 237 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:57:16 ]
- 非正規化数になんか恨みでもあるんだろうか。
- 238 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:45:05 ]
- subnormalってなんだろうと思ってたが、
サブプライムとかけてたのね。 ふーん
- 239 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:23:18 ]
- >>232
>幼稚園児にも分かるようにより程度を下げて >説明してやる。感謝しろ。 ご協力感謝します。>>194も喜んでおります。 >浮動小数点の正規数は、おおよそ対数メッシュになっている。 >これは指数部に拠るものである。 ふむふむ、すると「対数メッシュ」の間隔は最小値近辺で大体10^-38、1付近で大体10^0ですね。 >さらにこの対数目盛りの間に細かい目盛りが等間隔で引かれている。 >これは仮数部によるものだ。 ふむふむ、すると「細かい目盛り」の間隔は最小値近辺で大体10^-45、1付近で大体10^-7ですね。 さて、>>232さん、ここでご指導を仰ぎたいのですが、 >>194 >0近辺では目が細かくて10^-37程度だが、 >1の近辺では目が粗くなっていて10^-7程度でメッシュが切られている。 の申す「メッシュw」とやらはどちらに分類しましょう。 「対数メッシュ」?「細かい目盛り」? 「これ以上細かい数値を足し引きしても、近場のメッシュに寄せられてしまう」 とか申しておりますので「細かい目盛り」にしましょうか。 ということで>>194君、「10^-37」には修正が必要だよ。 はい、本日の「小学生のイメージ」矯正終了。
- 240 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:23:13 ]
- 循環小数に適当な基数変換を施すと有限小数になる場合があるけど、
これって常に可能なんだっけ? (任意の循環小数には有限小数に変換できるような基数が必ず存在する?) もしかして有理数 m/n として表されるなら n を基数にすればいいとかそんな感じかな? n が素数でない場合はもうちょい工夫できそうな?
- 241 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:09:21 ]
- 悲しいことに全ての有限小数は循環小数なんだな。
89.999… == 90.0 == 90.000…
- 242 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:56:03 ]
- 丸めると 90.0 になるから問題ない
- 243 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:59:20 ]
- >もしかして有理数 m/n として表されるなら n を基数にすればいいとかそんな感じかな?
・有理数 m/n は n**-1 のm倍 ・有限桁o進数は o**p の整数倍(pは有限の整数) ・mは整数かつ-1は有限の整数なので、m/n は有限桁n進数で表現可能 >n が素数でない場合はもうちょい工夫できそうな? ・(n*x == o**y)を満たす整数x,yが存在するならoは何でも良い
- 244 名前:デフォルトの名無しさん [2008/02/24(日) 10:59:08 ]
- >>240
そこまで言ってたらわかってると思うが、m/n = 0.m (n進数)だろーがw
- 245 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:02:55 ]
- [m/n].(m-n[m/n]) だな。
- 246 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:05:11 ]
- >>244
143/7 は 0.143(7進数)ですかそうですか
- 247 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:11:07 ]
- >>240
n 進数で 0.a...b a...b a...b ... という循環小数があった場合、 0.a...b a...b a...b ... = a...b * 0.0...1 0...1 0...1 ... となる。 0.0...1 0...1 0...1 ... を (n-1)...(n-1) 倍すると 1 になるので、 0.a...b a...b a...b ... = a...b / (n-1)...(n-1) だな。
- 248 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:28:09 ]
- 逆に、整数で割りきれないと必ず循環小数になるんだよな。
余りのパターンには限りがあるから、 少なくとも 0 以外の全ての余りが出現したら あとは循環するのみだから。 そう考えると、1/素数はかならず循環小数になる以上、 素数 p は必ず何らかの (n-1)...(n-1) の約数になるのか。 なんか面白いな。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:29:18 ]
- >>240
すべての循環小数は有理数 すべての有理数はp/qの整数比で表せる すべての循環小数は基数変換で(ry
- 250 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:34:10 ]
- 1/素数はかならず循環小数になる以上
1/2 1/5
- 251 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:34:30 ]
- ああ、>>248 は基数が p の倍数じゃない時限定な。
10 進数だと 10^x は素因数が 2 と 5 しかないから、 2 と 5 以外の素数は全てそうなる。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:40:41 ]
- つまり、2^32582657-1 は 9...(何か凄い桁数)...9 の約数になるはずということで。
循環の周期は p - 1 の約数のうち p の桁数以上のものになるから、 最大で 9 が 2^32582657-2 個、最小でも 9808358 個の 9 が並ぶことになるのか。 果てしないな。
- 253 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:41:38 ]
- ああ、2^32582657-2 が 9808358 で割り切れるかどうかは知らない。
- 254 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:50:38 ]
- その循環小数を乱数表にすると問題ありますか?
- 255 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:52:40 ]
- >>247
循環小数の有理化に関するレスだよね。 >0.0...1 0...1 0...1 ... を (n-1)...(n-1) 倍すると 1 になるので、 この時点で、0.(n-1)...が1になる説明をまた>>247の頭から繰り返さなければならないわけで
- 256 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:57:40 ]
- >>255
それは別な形で証明できるから問題ない。
- 257 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:14:51 ]
- さて、無理数はどうしようか。
- 258 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:33:14 ]
- 無理数を・・・どうするの?
- 259 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:38:29 ]
- 有理数は分数で表現できるから、無理数をあらわす方法がないか・・・ってことでは
- 260 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:41:44 ]
- 無理数を誤差なく表現したいなら非正格関数型言語のような事をするしかないだろうな
- 261 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:46:26 ]
- sqrt(2) なら sqrt(2) をそういうオブジェクトとして扱うことはできると思う。
でも、こういうのでは表しづらい無理数もあるかと思う。 解析解がない(数値解しか無い)ことが証明されている 方程式の解とかは、その方程式自体を中に保持したオブジェクトを使えるかもしれないけど、 その値をさらに別の式に組み込むと・・・とか考えていくと 無理がでてきそうな気がする。
- 262 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:58:15 ]
- >>261
無理数の難しいところはそういう問題じゃないんだ、まずはカントールの対角線論法を理解してほしい。 ここで、自然数を列挙する縦方向と、無限小数の桁を列挙する横方向に広がった二次元の表ができ、無限小数に自然数が対応できず 自然数よりも実数の集合の方が個数が多いとなる。 問題は、これが意味するところで、Haskellなどを弄ってみると分るのだが、 この無限につづく少数の列には、後出しジャンケンのような要素を含むことが可能なのだ。 適当な実数を意味する関数 char f(int i) を考える i が桁を示し、戻り値が 0-9 までとする。 引数 i を指定すると、関数 f は常に同じ値を返すとする、この条件だけなら、この関数 f は getc を含む関数が作れることがわかると思う。 一回よんだら以後その値を使い続ければ、関数 f は常に同じ値を返すから。 そして、それは際限なく続けられる、少数は無限にあるので。
- 263 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:35:14 ]
- f()で無理数をダンプして途中に自分のクレジットカードの番号が出てきても、誰も責めてはいけないという話ですか。
言い訳:「どこかで誰かのgetc()がクレジットカード番号を返す可能性がある限り、私共に責任はありませんっ」 ううむ、でこれ、自然数の集合では難しい話なの?
- 264 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:01:31 ]
- メモ
任意の有限個の記号からなる数値定義 (√(12345/678.9)、x^123456789+...+3=0の解、etc.) は全てひっくるめても加算無限個しかない。 つまりそういう方法では決してあらわせない無理数が 無限に存在する。 任意の無理数をあらわすには常に無限桁の入れ物が必要。 (任意の自然数をあらわすのはそれに応じた十分な 長さの有限桁の入れ物でいい)
- 265 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:22:02 ]
- なるほど。分かりやすいわ。
- 266 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:33:14 ]
- >>264
無限に存在とか考えないほうがいいかもしれない、特に「存在」 これ数学上の定義で自分たちの意識している「存在」の概念とはかけ離れた所があるから。 結局のところ「カントールの対角線論法」では、とりあえず実数の利用者に実数を全部ならべさせておいて その後から、しめしめとその利用者が列挙しなかった実数を挙げて、ほら並べられなかったダメじゃんという論理になっている。 実際に実数を実装しようと思うと同じ事が起こるというだけ、それ以上でもそれ以下でもない。 これは意識したすべての実数については、表現可能だが利用者が意識していない実数についてまでは実装できないという事。 たとえば、純粋抽象クラスを実装する場合、その中身がかかれてなくてもそれを利用するコードは書ける。 しかし実際には純粋抽象の中身を書いたクラスを使わないと利用できない、具体的なコードは「後からでも書けるよ」というのと似ている。
- 267 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:57:43 ]
- 書いていて思ったんだが意識ってなんじゃろね、不思議じゃ
- 268 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:39:04 ]
- 「考慮」 と言った方がいいんじゃないかな。
- 269 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:10:40 ]
- 任意の実数は不可算無限個あり、バイト列の個数は自然数なので高々可算無限個どまりだから、無限に伸びるバイト列が利用できても任意の実数を表現することは無理
- 270 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 06:40:10 ]
- >>269
任意の実数と言わずとも任意の有理数が表現できたらうれしいですけど。 「無限に伸びるバイト列」かあ。 多倍長計算のライブラリとかで、循環小数をきれいに扱えたららいいなあと 思うんだけど、どうなんでしたっけ。
- 271 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:18:51 ]
- >>270
数式演算すればいいんじゃね? Mathematicaと言わず、HP49Gくらいでいいじゃん。
- 272 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 18:57:53 ]
- ttp://rayn.ld.infoseek.co.jp/news/01_1/infinity.html
- 273 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:15:51 ]
- >269
言い換えてみる。 最初から無限長のバイト列(0で初期化済)があったとしても サイコロを振るなりしてその中を埋める作業が永遠に終わらない ので結局実数を表現することは無理。 とはいえ中を埋め続けるアルゴリズム(時間がたつほど精度が 上がる)があるような実数ならその実数はきちんと定義されたと いえる。でそのような実数は可算無限個しかない。 >270 循環小数だとわかってるならそこまで格納できればいい。 1/3 = 1/(2^2-1) = 0.010101...(2) 1/7 = 1/(2^3-1) = 0.001001...(2) 1/3*1/7 = 1/21 = 3/1/(2^6-1) = 0.000011000011...(2) 周期aの数と周期bの数を掛けたら結果の周期はa*bかその約数 結果の周期の分だけ循環部分を展開して掛ければ 正しい結果を取り出せるのかな? (結局は分数で扱うのが一番簡単そうに見えるのが) >272 うーんなんだこりゃ
- 274 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:20:31 ]
- よく考えたら間違ってる
1/3*1/3 = 1/9 = 7/(2^6-1) = 0.000111000111...(2)
- 275 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:43:36 ]
- 不可算無限を実現する必要は無いと思う。
実際の問題で扱う値ってある程度限定されてるから、 その実際に扱う値さえ表現できればそれで現実的には十分だと思う。 ただ、それでも無理な事もあるかもしれないけどね。
- 276 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:22:17 ]
- >>273
>周期aの数と周期bの数を掛けたら結果の周期はa*bかその約数 なるほどそんな性質が。 >(結局は分数で扱うのが一番簡単そうに見えるのが) 例えば小数を分数に変換する、みたいなプログラムがたまにありますけど 有限な小数しか入力できないというのは片手落ちかなと思って。 周期が短い循環小数ぐらいはなんとかしたいかなーと。 例えば 1/7 の循環小数を入力したら、ちゃんと 1/7 を答えてくる、みたいな。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:43:37 ]
- >例えば 1/7 の循環小数を入力したら、ちゃんと 1/7 を答えてくる、みたいな。
循環小数を入力する書式さえ決めれば、どうにでもなるかと 循環部分を括弧で囲む 0.[142857] とか、循環する桁数を付ける 0.142857, 6 とか 142857/999999 で約分して 1/7
- 278 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:40:17 ]
- >273
どこの分野でも測定機の精度が八桁もあったら高性能といわれる 実数をきちんと表現しても元データの誤差以上にはならないから 現実的には計算が遅くなるだけでなんの意味もなさないでしょ 役に立たたないことそんなに力説しないでもいいんじゃない >276 循環小数なら整数演算だからスレ違いでしょ
- 279 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:45:04 ]
- KY
- 280 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:58:12 ]
- 不可算無限個について、なにやら認識が膨らみすぎてどうにかなっている人がいるので、ちょっと書いとくよ。
可算な集合の特性は適当な集合について、これをコンピュータで言う所の class でいうと それは隣の要素を知るためのインターフェイスがあるという事だよ。 適当なコンテナオブジェクトがあるとき、その内容を列挙する気がないのなら別に列挙インターフェイスをつけなくてもいいんだよ。 それが不可算無限個を扱うという事、作れないって事はない、それは機能が制限されたライブラリとなっているだけだから。
- 281 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:55:10 ]
- >>277
なるほど。 ちなみに 142857/999999 というのは等比級数の無限和ですかね?
- 282 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 05:33:20 ]
- >>281
x = 0.[142857] 1000000x = [142857] = 142857.[142857] 1000000x - x = 142857 x = 142857/999999
- 283 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 09:22:43 ]
- >>282
なるほど。等比級数を持ち出すまでもないですね。ってゆうか確か高校で等比級数の和を 教えるときは同じような変形をするんだったかな。 浮動小数点の数値を整数分数に直してその後は分数として計算したら、精度的には うれしい場合もあるかな?
- 284 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:28:18 ]
- >循環小数を入力する書式さえ決めれば、どうにでもなるかと
>循環部分を括弧で囲む 0.[142857] とか、循環する桁数を付ける 0.142857, 6 とか 914314.3143...とかどうしよう。9[143]XX.0とかでいいか。 無理数か循環小数かよく解らない数はどう表そう。 オイラーの定数γとか。
- 285 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:51:53 ]
- ttp://q.hatena.ne.jp/1130932358
- 286 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 13:06:33 ]
- >>278
ビット表現に×2^nと正規化が出てきたら文字通り 浮動小数点だと言ってみるテスト (まあ現在普通に浮動小数点といえば 誤差含む数を扱うためのものだが) >>280 実際のところ実数が不可算無限個あるって性質は 無視していいよね。 数学上は可算無限個の中に含まれない実数を 作り出すこと自体無理だし、 実用上は誤差を考えれば有限桁ですむし。 >>284 表そうも何もどういう循環小数か分からない時点で
- 287 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:46:50 ]
- >>286
有限のメモリーの中に無限を置けないのは、可算・非可算問わず事情は同じで 有限のメモリーの中"無限"という文字列が取り扱えるという事情も可算・非可算問わず事情は同じかと。
- 288 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 16:28:26 ]
- まあ、この話が出てきたのはBCDなら万全とかいう変な人のレスからだし、
真剣に無限どうこう考えてるわけじゃないでしょ。
- 289 名前:デフォルトの名無しさん [2008/02/27(水) 20:29:04 ]
- BCDなら万全とかいう変な人のスレ
pc11.2ch.net/test/read.cgi/db/1175091880/
- 290 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 01:20:43 ]
- 非加算な世界を考えれば、もうなんでもありですからね。
アルフ0 の一つ上は実数でしたっけ(連続体仮説?)
- 291 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 11:10:14 ]
- >現在の数学で用いられる標準的な枠組みのもとでは
>「連続体仮説は証明も反証もできない命題である」ということが明確に証明されている。
- 292 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 00:01:38 ]
- >>240
>(任意の循環小数には有限小数に変換できるような基数が必ず存在する?) >もしかして有理数 m/n として表されるなら n を基数にすればいいとかそんな感じかな? >n が素数でない場合はもうちょい工夫できそうな? >>243 >・(n*x == o**y)を満たす整数x,yが存在するならoは何でも良い nからよりコンパクトなoを求めるアルゴリズムが思い浮かばないよぅ。 素直にnを素因数分解するほうが近道か・・・
- 293 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:33:47 ]
- 素因数分解はコストが大きいですよ
- 294 名前:デフォルトの名無しさん [2008/04/25(金) 22:58:05 ]
- 高精度計算サイト
ttp://keisan.casio.jp/has10/Menu.cgi 公開数日で、はてブ500ブックマーク突破。 有効桁数50桁。これ、BCDかなあ…。オリジナル精度の浮動小数点数かも。 プロの電卓屋が考えた「独自の桁数可変型演算システム」とやらの詳細が知りたいぜ! 君たちの大好きな 1 / 3 * 3 もちゃんと 1 になるぞ!
- 295 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 00:10:49 ]
- 1.4142135623730950488016887242096980785696718753769
確かカイジでは イヨイヨ ミゴロシ って読んでた気がする。 1414 3564 >>294 CPUは、繰り上がりフラグがあるから、足し算なら無限にできる。 掛け算を因数分解して有効桁の範囲で計算したあと足し合わせればいいわけで。 または文字で計算。まあ速度的にないと思う。
- 296 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 12:32:29 ]
- 宇海零が開平法知らなくてフイタw
- 297 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:47:06 ]
- ひとよひとよにひとみごろ
1. 4 1 4 2 1 3 5 6 が一般的だろうな。
- 298 名前:デフォルトの名無しさん [2008/09/25(木) 14:29:48 ]
- float 使うヤツはドシロートかおぢさん
pc11.2ch.net/test/read.cgi/tech/1222048909/
- 299 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 07:38:27 ]
- 299
- 300 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:44:13 ]
- 300
- 301 名前:デフォルトの名無しさん [2009/02/15(日) 22:19:06 ]
- FPU命令に三角関数があるらしいけどマジで?
ところで、Boostの分数はいずれ多倍長整数をサポートするとか。 精度ってどうなのよ?
- 302 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:27:45 ]
- >>301
8087の頃からある。
- 303 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:50:46 ]
- >>302
ほへぇ〜。だったらsinテーブル作って引くよりそっち使った方が早いのかな?
- 304 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:55:46 ]
- >>303
んなわけないだろ 8087系統は愚直にマクローリン展開の公式を実行している だけだからクロック数はすごいぞ
- 305 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:06:12 ]
- そっか。でもまぁ、SSEなんざ使うよりまし?
- 306 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:18:07 ]
- >>303
そういうことを自分で調べずに、このスレで何をするつもりなの?
- 307 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 07:46:44 ]
- >>304
乗算器が速くなかった時代では級数展開やってない。 CORDICでぐぐれ。
- 308 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:05:38 ]
- >>306
実装って複数あるだろうから平均的な動作を知りたくてね。 やろうと思えば、アセンブリ命令レベルで組み込まれてる訳だから 並列化した回路を実装してある物もあるかもしれないじゃん。 でも、そういう情報は古すぎてかあんまりWebにゃ載ってなくてねぇ。
- 309 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 00:43:56 ]
- >>307
ほう昔はこんな方法使ってたのか 今じゃRadix16だからなー
- 310 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:44:54 ]
- 逆数テーブル持ってるんじゃなかったのか。
- 311 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 23:04:32 ]
- doubleの逆平方根が存在しないのは何故?
floatからニュートン法でやるしかない?
- 312 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 23:44:15 ]
- >>311
あるところにはあるよ。 ttp://docs.hp.com/en/B3921-90010/rsqrt.3M.html
- 313 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 00:17:31 ]
- そうか、SSEスレじゃないのかスマン
HPのWS?の関数じゃあなあ
- 314 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 00:22:08 ]
- そりゃぁ、このスレはx86での浮動小数点数のスレなんだから、HP-UXだってありだろ。
- 315 名前:デフォルトの名無しさん [2009/02/19(木) 19:55:09 ]
- 素朴な疑問。SSE用レジスタっていっぱいあるけど、
なんちゃらオーダー見たいな機能で並列実行とかされないの? 暇そうに遊んでるレジスタが気になって仕方ない。
- 316 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:18:35 ]
- OOOのことか?
>>SSE用レジスタっていっぱい だからOOOが効くとでも思ってるのか?
- 317 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:00:28 ]
- やっぱりねぇ。
結局多項式でぐらいしか意味は無いのか。 もったいねぇ。
- 318 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:04:49 ]
- >>317
おまえ、全然分かってないな 多項式だって a(b+x(c+x(d+x)))をSSEに置き換えただけでは 全然効果ない
- 319 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:01:15 ]
- >>318
そうなんけ?2〜3倍早くなったことはあったけど。 じゃああのレジスタ群は何に使うのよ?
- 320 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:04:50 ]
- そこがテクニックw
- 321 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:53:03 ]
- >>318
単に置き換えただけでも効果あるぞ。 FPUはfxchとか駆使してもOoOし切れないことが多い。
- 322 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 23:01:06 ]
- SSEの一番の問題は、超越関数を使うにはFPUに切り替えるかiccの内部関数に頼るか自作する必要があることだな。
- 323 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 02:56:34 ]
- iccではsseで改めてcos/sinとかを(ソフト上で)実装してるってこと?
icc持ってないから分からないんだけど。
- 324 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 04:00:23 ]
- あるっぽいよ。iccが出力した実行モジュールのプロファイルを見た限りでは。
- 325 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 04:13:50 ]
- sse精度になっちゃうんじゃないの?
それとも-msse, -O3とは別の意味で、オプションとか組み込みキーワードで精度を選択できるのか?
- 326 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:15:09 ]
- 10バイト精度でがんばっていた人たちって、どうするのかね。
- 327 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 15:17:11 ]
- fp80のことか?もう見捨てられてるっしょ。
ただでさえサポートしてるプロセッサはx86以外ほぼ皆無だし。 実際問題精度よりスループットのほうが重視されてるからな。 スループットがあればFFTによる多倍長演算も容易になる。
- 328 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 17:19:20 ]
- むぅ、128bitはドリフトか。
- 329 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/20(金) 22:08:20 ]
- 80bit精度って今となっては帯に短し襷に長しだからな。
MSコンパイラがlong double = doubleにやっちゃってるし。
- 330 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:56:00 ]
- 80ビットはインテルの(変態)独自仕様だと思ってたけどちがうの?
出来るだけ64ビットに演算誤差を伝播しないようにするインテルの親心というか・・・
- 331 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 23:02:41 ]
- ところで、FFTの多倍長というのは桁数いくつ以上からを考えてるの?
128ビットじゃないけど、金融・財務とか科学の計算でも普通は多く50桁*2程度あれば十分だと思うけど。 暗号とかエンコード用途なら、スループット以前の問題でFFTをハードとしちゃうだろうし。 というか、IEEEは早いところ16ビット小数を定義して実装して欲しい・・
|

|