Gmmライブラリ

説明

Gmm++GetFEM の線形代数と既存のフリーの線形代数ライブラリ(もともとは MTL,Superlu,Blas,Lapack)との間のインターフェイスを作るために設計されていた線形代数のテンプレートライブラリです.独自のベクトルと行列型を持つ独立した自己一貫性のあるライブラリとして進化しています.このライブラリは,他のいくつかのプロジェクトで基礎となる線形代数ライブラリとして使用されるようになりました.

しかし,このライブラリは特定のパッケージのインターフェースとすることも可能です.最小限の互換性を持つベクトルまたは行列型で, linalg_traits 構造で記述された Gmm++ の汎用アルゴリズムを使用できます.

Gmm++ スタンドアロンバージョンは, GetFEM のリリース1.5 以降に配布されています.しかし,リリース3.0以降は,完全に GetFEM ファイルから独立しつつも, GetFEM プロジェクト内部で開発されています.

線形代数の処理に加えて,このライブラリは次のユーティリティを GetFEM に提供しています.

  • いくつかの最終的な互換性の問題の修正が gmm_std.h で行われます.

  • エラー,警告,およびトレース管理が gmm_except.h で行われます.

  • いくつかの拡張された数学の定義が gmm_def.h で行われます.

詳細については Gmm++ ライブラリ のドキュメントを参照してください.

ファイル

src/gmm のすべてのファイル

状態

今のところ Gmm++ は基本的な線形代数について GetFEM のニーズをカバーしています.

展望

Gmm++ では改善すべき点がいくつかあります. (いくつかの基本型の行列とベクトルの式テンプレートの部分的な導入,疎な部分ベクトルと部分行列をよりコヒーレントな方法で表現する方法,C++の概念の導入など).ただし, Gmm++GetFEM のニーズをおおむねカバーしており,線形代数のためのC++の参照ライブラリを構築する Glas のような他のプロジェクトがあるので,大規模な変更は必要なさそうです.この部分の開発は安定しています.

現在の Gmm++ の使命は,プロジェクト全体の新しいニーズをカバーするために,他のいくつかの汎用アルゴリズムのパッケージ (たとえば DIFFPACK) のインターフェイスを揃え続けることです.ライブラリは,現在頻繁に個別のパッケージとして使用されており,いくつかの改善,新しいアルゴリズムや新しいインターフェイスを提案するすべての人の貢献を集約する使命を持っています.