GSL
あちこちのグラグリックス論文に使われているSDL(Singular Value Decomposition)と言うアルゴリズムについて情報を探していたら、GSL(GNU Scientific Library)という科学技術計算ライブラリーを発見しました。名前通り、マルティプラットフォームの高レベルの数学ライブラリーです(物理化学的な部分もあります)。
機能の概要がこちらにあります。200年生きていても使い切れないほど色んな機能が実装されておりますね。
仕事では、自分が実装したものの結果を確認するために使っています。GSLソースコード自体が参考になるし、使われた論文のreferenceがちゃんと書いてありますから、それだけで役立ちます。
GSLはcygwinのインストールに含まれていますが、必要なら簡単にリビルドできます(ただ、-mno-cygwinでリビルドするとランタイムで落ちてしまう...詳しい原因を調べませんでしたが、テストプログラムだけをcygwin上でコンパイルしたら特に問題はありませんでした)
ちなみにGSLでは、古いライブラリーのFortranのソースコードのC化されたものが使われていて、特に、netlibというのが参照されます(例えばnetlibのサイト「SDL」で検索してみたら参考になれそうな資料がいくつか出てきました)。
そして、本件とは関係ありませんがnetlibのpolyと言うセクションはちょっと面白い。色んなエキゾチックな多面体の名前やデータが並んでます(「gyroelongated square dipyramid」、「parabigyrate rhombicosidodecahedron」...時間があったら描画してみよう..)。