|
LAPACK (Linear Algebra PACKage) は線型計算のための数値解析ソフトウェアライブラリで、線型方程式や線型最小二乗問題、固有値問題、特異値問題等を数値的に解くために利用される。本ライブラリは複素数または実数を成分とする行列を扱うことが可能であり、LU分解やコレスキー分解、QR分解、シュア分解等のを行うためのサブルーチンを含む。サブルーチンは単精度版と倍精度版が提供される。のLAPACKの初版はFORTRAN 77 で実装されていたが、現在はFortran 90が用いられている。LAPACK 3.4.0からはC言語インターフェースであるLAPACKEが統合され、C言語やC++からの利用が容易になった。 LAPACKはLINPACKおよびEISPACKの後継と見做されている。ただし、LINPACKの設計が開発当時近代的であった共有メモリ型ベクトルコンピュータを意識したものであるのに対して、本ライブラリの設計はキャッシュを用いたアーキテクチャを有する、より近代的なコンピュータを意識したものである。LAPACKはLINPACK同様にBLAS(Basic Linear Algebra Subprograms、基本線型代数サブプログラム群)ライブラリ上に構築されている。LAPACKは後に分散メモリ型のコンピュータ向けにやへと拡張された。 LAPACKはBSDライセンスで提供されるオープンソースソフトウェアである。 ==サブルーチン== ===構成=== LAPACKのサブルーチンは以下の三種類に大別される。 ; ドライバルーチン(driver routines):LAPACKが扱うことが可能な問題を解くためのルーチン。 問題の例として線型方程式系を解く問題や対称行列の固有値問題などが挙げられる。利用者の要請に合致する機能のドライバルーチンが存在する場合にはそのルーチンの利用が推奨される。 ; 計算ルーチン(computational routines): 問題を解くために必要な計算タスクを実行するためのルーチン。LAPACKのドライバルーチンは計算ルーチンを連続的に呼び出すことで問題を解く。計算タスクの例として行列をLU分解することや対称行列を三重対角行列に変換することなどが挙げられる。前者は線型方程式系を解くために、そして後者は対称行列の固有値問題を解くために必要である。利用者の要請に合致するドライバルーチンが存在しない場合は計算ルーチンを組み合わせて問題を解くことになる。 ; 補助ルーチン(auxiliary routines): 補助的に利用されるルーチン。ブロックアルゴリズム内部で利用される計算タスクの一部を実行するものや、BLASの機能をわずかに拡張したものが含まれる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「LAPACK」の詳細全文を読む スポンサード リンク
|