以前、で線形代数を実行し始めたとき、他の多くのライブラリの土台であるにもかかわらず、やその他の基本的なのCチュートリアルが非常に少ないことに驚きました。そのために私はインターネット上で、私はすべてを見つけることができるすべての例/チュートリアルを集め始め、、、、、、...におけるこのGithubのレポ。BLASLAPACKAPIBLASCBLASLAPACKCLAPACKLAPACKEATLASOpenBLAS
まあ、私は機械エンジニアとしてそのようなgitリポジトリやGitHubを管理した経験がほとんどないことを警告しておきます。それはあなたたちにとって最初は完全に混乱しているように見えます。しかし、厄介な構造をうまく乗り越えることができれば、助けになるかもしれないあらゆる種類の例と指示を見つけるでしょう。それらがコンパイルされることを確認するために、それらのほとんどを試しました。そして、私が言及したコンパイルしないもの。それらの多くをGNU compilers(gcc、g++およびgfortran)でコンパイルできるように変更しました。私が作ったMakeFile、あなたが個々呼び出すことができる方法を学ぶために読むことができるのFortran/FORTRANでルーチンをCまたはC++プログラムを。また、MacとLinuxのインストール手順もいくつか記載しています(Windowsの人はごめんなさい!)。私もいくつか作りましたbash .sh これらのライブラリの一部を自動コンパイルするためのファイル。
しかし、あなたの他の質問に行きます:BLASそしてLAPACK、むしろAPI特定SDKのものではありません。これらは、実装やライブラリではなく、仕様または言語拡張のリストにすぎません。言ったことで、そこで元の実装であるにNetlibでFORTRAN 77ほとんどの人が(紛らわしい!)を参照してくださいについて話すときは、BLASとLAPACK。したがって、これらAPIのを使用しているときに多くの奇妙なことが見られるのは、ライブラリや関数FORTRANでCはなく実際にルーチンを呼び出しているためですC。ATLASそして、OpenBLASの最高の実装のいくつかであるBLASとLACPACK私の知る限り。彼らは元のAPIに準拠していますが、実装されている私の知識には準拠していますC/C++ゼロから(わからない!)GPGPU実装がありますAPI使用してねOpenCL:CLBlast、clBLAS、clMAGMA、ArrayFireとViennaCLをいくつかに言及することは。特定のハードウェアまたはプラットフォーム用に最適化されたベンダー固有の実装もあり、それらを使用することは誰にも推奨しません。
使用して学びたい人に私の推薦BLASとLAPACKでC学ぶことであるFORTRAN-C第1の混合プログラミングを。言及されたレポの最初の章はこの問題に捧げられており、そこで多くの異なる例を集めました。
PS私は時々リポジトリのdevブランチに取り組んできました。少し面倒くさいようです!