Lapackの前身にあたるeispackという一般複素行列の対角化を実行するfortrunのプログラムが有ります.3年ほど前に4倍精度に拡張して,別のプログラムに間接的にくっつけてgithubにあげていたんですが,需要があるらしい(?)ので単体でgithubにupしました.
(追記)gcc4倍精度に関するコーディングは昔のポストが参考になれば幸い
拡張と言っても宣言とリテラルを書き換えた位だった気がする.
もう昔のことで覚えていない.
今はmathematicaで多倍長対角化を実行していて,真面目にテストしてないのでバグが絶対混入していると思いますが,エルミートとユニタリーのクラスの対角化では,意図した計算結果を示すのでとりあえず良しとする.
将来的には任意精度まで拡張したいと考えていますが,速度がどうなることやら.
いやー,4倍精度演算がsoftwareレベルで実装されているので,計算速度が遅くなるのは仕方ないんだけど,やっぱりlapackめちゃくちゃ早くて素晴らしいな
0 件のコメント:
コメントを投稿