実装上の問題とは? わかりやすく解説

実装上の問題

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/25 08:41 UTC 版)

任意精度演算」の記事における「実装上の問題」の解説

任意精度演算は、プロセッサレジスタ大きさ合わせた数値型演算より大幅に性能が劣る。固定精度演算ハードウェアでの実装比較的容易であるのに対して任意精度演算メモリ管理などソフトウェア実装なければならない部分がある(多倍長ないし任意精度演算ハードウェアサポート過去広くみられる)。整数の除算浮動小数点演算サポートしていないプロセッサもあるが、ソフトウェアでそれらをサポートするとしても通常は1ワードまたは2ワード数値型使い任意長の処理は行わない一般に除算では循環小数発生することがある任意精度演算ではどこかで打ち切るか、循環なんらかの形で表現するか、有理数演算併用する多倍長整数であれば任意長の整数演算を、任意精度浮動小数点であれば任意精度浮動小数点の処理をおこなう。任意精度数の大きさ使用可能な記憶装置容量制限されるだけでなく、数値を表す配列インデックスサイズでも制限される一般にインデックス固定長である。 任意精度数値演算効率的に行うためのアルゴリズムいくつも考案されてきた。特に、桁数を N {\displaystyle N} としたとき、 N {\displaystyle N} が大き場合計算量最小にするようなアルゴリズムが必要とされる加算減算の最も単純なアルゴリズムは、単純にごとに順次加算減算していき、繰り上げ繰り下げ必要に応じて行うものである。この計算量は O ( N ) {\displaystyle O(N)} である(ランダウの記号参照)。 乗算場合、最も単純なアルゴリズム筆算計算方法そのまま採用する手法で O ( N 2 ) {\displaystyle O(N^{2})} の計算量である。計算量が O ( N log ⁡ ( N ) log ⁡ ( log ⁡ ( N ) ) ) {\displaystyle O(N\log(N)\log(\log(N)))} の乗算アルゴリズムとして、高速フーリエ変換に基づくショーンハーゲ・ストラッセン法Schönhage-Strassen-Algorithmus)がある。また、カラツバ法では O ( n log 2 ⁡ 3 ) {\displaystyle O(n^{\log _{2}3})} の計算量である。 N {\displaystyle N} があまり大きくない場合カラツバ法の方が性能がよい(前者性能が勝つのは少なくとも1万上の場合)。

※この「実装上の問題」の解説は、「任意精度演算」の解説の一部です。
「実装上の問題」を含む「任意精度演算」の記事については、「任意精度演算」の概要を参照ください。

ウィキペディア小見出し辞書の「実装上の問題」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「実装上の問題」の関連用語

実装上の問題のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



実装上の問題のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの任意精度演算 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS