ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

カハンの加算アルゴリズム

索引 カハンの加算アルゴリズム

ハンの加算アルゴリズム(Kahan summation algorithm)とは、有限精度の浮動小数点数列の総和を計算する際の誤差を改善する計算手法・アルゴリズム。基本的にコンピュータ上で使用される。Compensated Summation(補正加算)とも呼ぶ。 単純に n 個の数値の総和を計算すると、n に比例して誤差が増えていくという最悪のケースがありうる。また、無作為な入力では二乗平均平方根の誤差すなわち \sqrt に比例する誤差が生じる(丸め誤差はランダムウォークを形成する)。補正加算では最悪の場合の誤り限界 (error bound) は n とは独立なので、多数の数値を合計しても、誤差は使用する浮動小数点数の精度に依存するだけとなる。 このアルゴリズムは考案したウィリアム・カハンの名を取り、こう呼ばれる。似たようなそれ以前の技法として、例えばブレゼンハムのアルゴリズムがあり、整数演算での誤差の蓄積を保持する(文書化されたのはカハンとほぼ同時期である)。また、ΔΣ変調では誤差(雑音)を加算するのみでなく積分する。.

32 関係: 二乗平均平方根任意精度演算ランダムウォークブレゼンハムのアルゴリズムプログラム (コンピュータ)列 (数学)アルゴリズムアキュムレータ (コンピュータ)ウィリアム・カハンコンパイラコンパイラ最適化コンピュータ再帰四倍精度浮動小数点数倍精度浮動小数点数Basic Linear Algebra SubprogramsC言語精度 (算術)線型代数学結合法則計算機イプシロン誤差高速フーリエ変換FORTRANGNUコンパイラコレクションIntel C++ CompilerΔΣ変調Python条件数浮動小数点数擬似コード数値的安定性

二乗平均平方根

二乗平均平方根(にじょうへいきんへいほうこん、root mean square, RMS)はある統計値や確率変数を二乗した値の平均値の平方根である。結果として単位が元の統計値・確率変数と同じという点が特徴である。また、計算が積和演算であるため高速化が容易である。絶対値の平均より、用いられることがある。 ある量 に対して 個のデータが得られたとして、各データの の値を と名付けると、 の二乗平均平方根 は次のように定義される。 つまり、 の算術平均の平方根が の二乗平均平方根 となる。 例として、 個のデータがあり、それぞれ だったとすると、その二乗平均平方根は次のように計算できる。 \operatorname &.

新しい!!: カハンの加算アルゴリズムと二乗平均平方根 · 続きを見る »

任意精度演算

任意精度演算とは、数値の精度を必要ならいくらでも伸ばしたりできるような演算システム(実際上は利用可能なメモリ容量に制限されるが)による演算である。.

新しい!!: カハンの加算アルゴリズムと任意精度演算 · 続きを見る »

ランダムウォーク

ランダムウォーク(random walk)は、次に現れる位置が確率的に無作為(ランダム)に決定される運動である。日本語の別名は乱歩(らんぽ)、酔歩(すいほ)である。グラフなどで視覚的に測定することで観測可能な現象で、このとき運動の様子は一見して不規則なものになる。 ブラウン運動と共に、統計力学、量子力学、数理ファイナンス等の具体的モデル化に盛んに応用される。.

新しい!!: カハンの加算アルゴリズムとランダムウォーク · 続きを見る »

ブレゼンハムのアルゴリズム

ブレゼンハムのアルゴリズム(Bresenham's line algorithm)は、与えられた始点と終点の間に連続した点を置き、近似的な直線を引くためのアルゴリズム。ブレゼンハムの線分描画アルゴリズム、ブレゼンハムアルゴリズムとも。コンピュータのディスプレイに直線を描画するのによく使われ、整数の加減算とビットシフトのみで実装できるので多くのコンピュータで使用可能である。コンピュータグラフィックスの分野の最初期のアルゴリズムの1つである。これを若干拡張すると、円を描くことができる。 アンチエイリアスをサポートした直線描画アルゴリズム(例えば、Xiaolin Wu's line algorithm)もあるが、ブレゼンハムのアルゴリズムの高速性と単純さは今も重要である。プロッターやビデオカードのGPUといったハードウェアで使用されている。ソフトウェアでは多くので使用している。非常に単純なので、ビデオカードのファームウェアなどに実装されていることが多い。.

新しい!!: カハンの加算アルゴリズムとブレゼンハムのアルゴリズム · 続きを見る »

プログラム (コンピュータ)

ンピュータプログラム(英:computer programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。 コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。また設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。.

新しい!!: カハンの加算アルゴリズムとプログラム (コンピュータ) · 続きを見る »

列 (数学)

数学において列(れつ、sequence)とは、粗く言えば、対象あるいは事象からなる集まりを「順序だてて並べる」ことで、例えば「A,B,C」は3つのものからなる列である。狭義にはこの例のように一列に並べるものを列と呼ぶが、広義にはそうでない場合(すなわち半順序に並べる場合)も列という場合がある(例:有向点列)。集合との違いは順番が決まっている事で、順番を変更したものは別の列であるとみなされる。たとえば列「A,B,C」と列「B,C,A」は異なる列である。 数を並べた列を数列、(何らかの空間上の)点を並べた列を点列、文字を並べた列を文字列(あるいは語)という。このように同種の性質○○を満たすもののみを並べた場合にはその列を「○○列」という言い方をするが、異なる種類のものを並べた列も許容されている。 列の構成要素は、列の要素あるいは項(こう、term)と呼ばれ、例えば「A,B,C」には3つの項がある。項の個数をその列の項数あるいは長さ (length, size) という。項数が有限である列を有限列(ゆうげんれつ、finite sequence)と、そうでないものを無限列(むげんれつ、infinite sequence)と呼ぶ。(例えば正の偶数全体の成す列 (2, 4, 6,...) )。.

新しい!!: カハンの加算アルゴリズムと列 (数学) · 続きを見る »

アルゴリズム

フローチャートはアルゴリズムの視覚的表現としてよく使われる。これはランプがつかない時のフローチャート。 アルゴリズム(algorithm )とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。 「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。 コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。人間より速く大量に計算ができるのがコンピュータの強みであるが、その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならない。.

新しい!!: カハンの加算アルゴリズムとアルゴリズム · 続きを見る »

アキュムレータ (コンピュータ)

アキュムレータ(Accumulator)は、コンピュータにおいて、演算装置による演算結果を累積する、すなわち総和を得るといったような計算に使うレジスタや変数のことである。特にプロセッサにあるそのようにして使える唯一のレジスタを指すことがあるがその意味では、ジャーゴンファイルのaccumulatorの項の冒頭に "Archaic term for a register." とあるように、基本的には古語である。 しかし、現代のプロセッサでもx86プロセッサにはアキュムレータマシン(後述)風のところがある。AXレジスタ(8ビットプロセッサ時代のAレジスタに由来する。32ビットではEAX)がアキュムレータ的に扱われており、初期の命令セットでは一部の命令(代表的なものはMULとDIV)のソースの一方およびデスティネーションが暗黙でAXとDXに固定されている、AXを対象とする命令には短縮形がある、などのように、AXレジスタにアキュムレータとしての特別扱いがあった。後に拡張されるに従い、アセンブリ言語レベルでは任意の命令に任意のオペランドが指定できるようになりこの特徴は見えなくなった。しかし、機械語レベルでは後方互換性を保っているのでこの特徴は残っている。また、AXレジスタは関数の返り値を格納するレジスタとして使われるなど「よく使われるレジスタ」であり、そういった意味でこの語が使われることもある。.

新しい!!: カハンの加算アルゴリズムとアキュムレータ (コンピュータ) · 続きを見る »

ウィリアム・カハン

ウィリアム・モートン・カハン(William Morton Kahan、1933年6月5日 - )は、数学者で計算機科学者。「数値解析への根本的(fundamental)貢献に対して」1989年にチューリング賞を受賞。1994年にはACMフェローに選ばれた。.

新しい!!: カハンの加算アルゴリズムとウィリアム・カハン · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: カハンの加算アルゴリズムとコンパイラ · 続きを見る »

コンパイラ最適化

ンパイラ最適化(こんぱいらさいてきか、Compiler optimization)の記事では、コンピュータ・プログラムの最適化に関する話題のうち、もっぱらコンパイラに関係するものに関して説明する。最も一般的な要求はプログラムの実行時間を最小化することであり、その次に使用するメモリ量を最小化することである。また、携帯可能なコンピュータが増えるにつれて、消費電力を最小化するという最適化も生まれてきた。 一部のコード最適化問題はNP完全問題であることが示されている。実際には、プログラマがコンパイラによる最適化の完了を待てる時間の上限なども考慮してコンパイラ最適化を実装する(最適化はCPU時間とメモリを多大に使用する)。かつては、コンピュータのメモリ実装量も実行できる最適化を制限する要因だった。 コンパイラメーカによっては、「コンパイラの最適化の能力が売り上げや評判に大きく影響する」と信じている場合があり、そういう信念に従って「最適化コンパイラ」と銘打つことがある。少なくとも、同程度にバグが無いコンパイラ同士であれば、という前提の範囲内なら、最適化の能力が高いほうが魅力的と言えるであろう。.

新しい!!: カハンの加算アルゴリズムとコンパイラ最適化 · 続きを見る »

コンピュータ

ンピュータ(Computer)とは、自動計算機、とくに計算開始後は人手を介さずに計算終了まで動作する電子式汎用計算機。実際の対象は文字の置き換えなど数値計算に限らず、情報処理やコンピューティングと呼ばれる幅広い分野で応用される。現代ではプログラム内蔵方式のディジタルコンピュータを指す場合が多く、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多いが、ディジタルコンピュータは特定の機能を実現するために機械や装置等に組み込まれる組み込みシステムとしても広く用いられる。電卓・機械式計算機・アナログ計算機については各項を参照。.

新しい!!: カハンの加算アルゴリズムとコンピュータ · 続きを見る »

再帰

再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。.

新しい!!: カハンの加算アルゴリズムと再帰 · 続きを見る »

四倍精度浮動小数点数

四倍精度浮動小数点数(よんばいせいどふどうしょうすうてんすう、、あるいはと略称)は、浮動小数点数の形式の1つである。四倍精度数()とも呼ぶ。 この128ビット四倍精度浮動小数点数は結果に倍精度以上の精度を必要とするアプリケーションのためだけに設計されたのではなく、途中計算における一時変数のオーバーフローと累積誤差の抑制により、結果が倍精度として出力される数値計算処理に対して安定性と精度を与えるために設計された。 オリジナルのIEEE-754浮動小数点数の初期のアーキテクトであるウィリアム・カハンは「現在拡張倍精度は、さらなる精度の計算とそれを速く動作させる実装の価値の妥当な妥協点である。すぐにでももう2バイトの精度が妥当になるだろう。そして究極的には16バイトフォーマットもが…。この種の、より広い精度への段階的な進化は既にIEEE 754の構成された時に見られる」と記している。 IEEE 754-2008では、128ビットの二進フォーマットが公式にbinary128として言及されている。OpenCL では quad 型として浮動小数点数が予約データ型に入っている。.

新しい!!: カハンの加算アルゴリズムと四倍精度浮動小数点数 · 続きを見る »

倍精度浮動小数点数

倍精度浮動小数点数(ばいせいどふどうしょうすうてんすう、Double precision floating point number)は、64ビットの浮動小数点数表現である。 「倍」精度と言うのは、単精度に対してそのように言うわけだが、これは32ビットを1ワードとする32ビットアーキテクチャを基にしている。 昔のFORTRANでは、単精度(REAL型)よりも精度が高ければ倍精度(DOUBLE PRECISION型)を名乗ることができた(そもそもワードの長さも浮動小数点のフォーマットも機種ごとにまちまちだった)。IBMのSystem/360で採用され大型機の事実上の標準となった、指数の基数が16の浮動小数点形式は、32ビット単精度では最悪の場合の精度が十進で6桁程度となり、技術計算では倍精度以上を使わねばならないという問題があった。(注:FORTRANは、REAL型が1ワード、DOUBLE PRECISION型が2ワードという前提だった) 標準であるIEEE 754では、単精度は32ビット(4オクテット)、倍精度は64ビット(8オクテット)である。いずれにしろ、「倍」というのは、精度に関係する仮数部(後述)の長さが正確に2倍である、といったような意味ではなく、全体の長さが2倍である所から来ているので、実際の所「倍精度」というのはかなり大雑把な言い方に過ぎない。.

新しい!!: カハンの加算アルゴリズムと倍精度浮動小数点数 · 続きを見る »

Basic Linear Algebra Subprograms

Basic Linear Algebra Subprograms(BLAS)は、ベクトルと行列に関する基本線型代数操作を実行するライブラリAPIのデファクトスタンダードである。1979年に初公開され、これを使ったLAPACKなどの上位パッケージが構築されている。科学技術計算・高性能計算で多用される。 高度に最適化(高速な実装)された BLAS API の実装がインテル(Intel Math Kernel Library)などの各ハードウェアベンダーなどから提供されている。オープンソースの最適化 BLAS 実装として OpenBLAS や ATLAS がある。LINPACK ベンチマークの性能は、BLAS のサブルーチンである DGEMM(倍精度汎用行列乗算)の性能に大きく影響される。.

新しい!!: カハンの加算アルゴリズムとBasic Linear Algebra Subprograms · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: カハンの加算アルゴリズムとC言語 · 続きを見る »

精度 (算術)

精度(せいど、precision)とは、数値を表現する細かさである。.

新しい!!: カハンの加算アルゴリズムと精度 (算術) · 続きを見る »

線型代数学

線型代数学(せんけいだいすうがく、linear algebra)とは、線型空間と線型変換を中心とした理論を研究する代数学の一分野である。現代数学において基礎的な役割を果たし、幅広い分野に応用されている。また、これは特に行列・行列式・連立一次方程式に関する理論を含む。線形などの用字・表記の揺れについては線型性を参照。 日本の大学においては、多くの理系学部学科で解析学(微分積分学)とともに初学年から履修する。なお、高校教育においては平成27年度からの新課程では行列の分野が除外されている。.

新しい!!: カハンの加算アルゴリズムと線型代数学 · 続きを見る »

結合法則

数学、殊に代数学における結合法則(けつごうほうそく、associative law) 、結合則、結合律あるいは演算の結合性(けつごうせい、associativity)は二項演算に対して考えられる性質の一つ。ひとつの数式にその演算の演算子が2個以上並んでいる時、その演算子について、左右どちらの側が優先されるかに関わらず結果が同じになるような演算は結合的 (associative) である。.

新しい!!: カハンの加算アルゴリズムと結合法則 · 続きを見る »

計算機イプシロン

計算機イプシロン(けいさんきいぷしろん、machine epsilon)は、浮動小数点数において、「1より大きい最小の数」と1との差のことである。機械イプシロン(きかいいぷしろん)とも言う。また、それぞれの「イプシロン」はエプシロンとも表記される。.

新しい!!: カハンの加算アルゴリズムと計算機イプシロン · 続きを見る »

誤差

誤差(ごさ、error)は、測定や計算などで得られた値 M と、指定値あるいは理論的に正しい値あるいは真値 T の差 ε であり、 で表される。.

新しい!!: カハンの加算アルゴリズムと誤差 · 続きを見る »

高速フーリエ変換

速フーリエ変換(こうそくフーリエへんかん、fast Fourier transform, FFT)は、離散フーリエ変換(discrete Fourier transform, DFT)を計算機上で高速に計算するアルゴリズムである。高速フーリエ変換の逆変換を逆高速フーリエ変換(inverse fast Fourier transform, IFFT)と呼ぶ。.

新しい!!: カハンの加算アルゴリズムと高速フーリエ変換 · 続きを見る »

FORTRAN

FORTRAN(フォートラン)は、1954年にIBMのジョン・バッカスによって考案された、コンピューターにおいて広く使われた世界最初の高級言語である。.

新しい!!: カハンの加算アルゴリズムとFORTRAN · 続きを見る »

GNUコンパイラコレクション

GNU Compiler Collection(グニューコンパイラコレクション)は、GNUのコンパイラ群である。略称は「GCC(ジーシーシー)」。GNUツールチェーンの中核コンポーネント。.

新しい!!: カハンの加算アルゴリズムとGNUコンパイラコレクション · 続きを見る »

Intel C++ Compiler

Intel C++ Compiler (インテル シープラスプラス コンパイラ)とはインテルが開発・販売しているC++コンパイラである。日本での販売・サポートはXLsoftが行なっている。略称はICC、あるいはICL(それぞれ、Linux/macOS用およびWindows用コンパイラの実行プログラム名にもとづいている)。.

新しい!!: カハンの加算アルゴリズムとIntel C++ Compiler · 続きを見る »

ΔΣ変調

ΔΣ変調(デルタシグマへんちょう)とは、音声などの信号の、パルス変調の方式の一種である、パルス密度(PDM)ないし幅(PWM)による方式そのもの、ないしその実用的な構成法である、積分器とフィードバックとコンパレータといった要素から成る方式を指す。あるいは、PCMのAD/DA変換においてそのような方式によって、高速で標本化した量子化雑音のパワースペクトル密度(PSD)分布の形状を整形し、通過帯域のダイナミックレンジを向上させることによって、より小さな量子化語長数で符号化するシステム全体や、量子化雑音を整形する(ノイズシェーピング)部分を特に指す場合もある。古典制御工学におけるPI制御に分類される。 半導体技術の発達や精度の必要なアナログ的な部分が少ないなどの点からAD変換及びDA変換で多用されている。 1960年代初めに当時大学院生で、後に早稲田大学理工学部教授などを歴任する安田靖彦が、Δ変調(差分パルス符号変調)のオフセットの問題が回避された方式として考案・開発し、「Δ-Σ変調」と命名した。以上の経緯もあり日本ではほぼ「ΔΣ」の順で呼ばれるが、再生側の処理構成を数式的な順序で書くと「ΣΔ」の順になるためか、日本国外を中心にΣΔ変調と書かれることもある。.

新しい!!: カハンの加算アルゴリズムとΔΣ変調 · 続きを見る »

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。.

新しい!!: カハンの加算アルゴリズムとPython · 続きを見る »

条件数

条件数(じょうけんすう、condition number)は、問題のコンピュータでの数値解析しやすさの尺度であり、その問題がどれだけ数値解析に適しているかを表す。条件数が小さい問題は「良条件 (well-conditioned)」であり、条件数が大きい問題は「悪条件 (ill-conditioned)」である。.

新しい!!: カハンの加算アルゴリズムと条件数 · 続きを見る »

浮動小数点数

浮動小数点数(ふどうしょうすうてんすう、英: floating point number)は、浮動小数点方式による数のことで、もっぱらコンピュータの数値表現において、それぞれ固定長の仮数部と指数部を持つ、数値の表現法により表現された数である。.

新しい!!: カハンの加算アルゴリズムと浮動小数点数 · 続きを見る »

擬似コード

擬似コード (ぎじコード、pseudocode)とは、アルゴリズムなどを、架空の非常に高水準なプログラミング言語(擬似言語)で記述したものである。Pascal、Fortran、C言語などの既存のプログラミング言語の構文と、自然言語に近い表現を組み合わせて記述することが多い。.

新しい!!: カハンの加算アルゴリズムと擬似コード · 続きを見る »

数値的安定性

数値的安定性(すうちてきあんていせい、numerical stability)は、数値解析におけるアルゴリズムの望ましい属性の1つ。「安定性」の正確な定義は文脈に依存するが、基本的にはアルゴリズムの正確性に関連する。 ある計算を実施する方法がいくつか存在することがあり、それらは理想的な実数や複素数では代数学的に等価だが、デジタルコンピュータで実行すると結果に差異が生じる。ある計算方法は途中で生じる誤差を弱めるし、別の計算方法は誤差を拡大させる。誤差を拡大させない計算方法は「数値的に安定」であるという。数値解析では、堅牢なアルゴリズム、すなわち数値的安定性のよいアルゴリズムを選択することが重要である。.

新しい!!: カハンの加算アルゴリズムと数値的安定性 · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »