0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ClapackをVisual Studio で使う

Last updated at Posted at 2020-11-07

lapackを授業の課題で用いることになった。コマンドプロンプトがよくわかってないので何とかしてVisual Studioでやってみた。

#始めにやったこと
Clapackをダウンロード (Netlibから)
(http://icl.cs.utk.edu/lapack-for-windows/clapack/)
Visual Studio 2017ではバージョン的に不可能なので(_imp_iob_func?が未解決のシンボルらしい 詳しいことはわからないので教えてください。)
Visual studio 2013 express desktopをダウンロード。

ライブラリの導入

Clapackのinclude,libディレクトリを設定する。
(includeには~.hが入っているディレクトリを配置、libには~.libが入っているディレクトリを配置する。)
(includeはプロパティ→c/c++/一般から)
(libはプロパティ→リンカーから)
libの追加ライブラリは blas.lib libf2c.lib lapack.lib

私はここを参考にしました。より詳しい内容が書かれている素晴らしい記事です。
[Corgi.Lab]
(https://corgi-lab.com/windows/vs-external-library/)

#注意
コードを書くときは, f2c.h →clapack.hの順で書く。 逆で書くとなぜかエラー

#出来ました~

ソースコード(写しただけなのであんまり意味ないですが)

#include<stdio.h>
#include "f2c.h"
#include "clapack.h"

	/* 3x3 matrix A
	* 76 25 11
	* 27 89 51
	* 18 60 32
	*/
	doublereal A[9] = { 76, 27, 18, 25, 89, 60, 11, 51, 32 };
	doublereal b[3] = { 10, 7, 43 };

	integer N = 3;
	integer nrhs = 1;
	integer lda = 3;
	integer ipiv[3];
	integer ldb = 3;
	integer info;

	dgesv_(&N, &nrhs, A, &lda, ipiv, b, &ldb, &info);
	if (info == 0) /* succeed */
		printf("The solution is %lf %lf %lf\n", b[0], b[1], b[2]);
	else
		fprintf(stderr, "dgesv_ fails %d\n", info);
	return info;

	/*ctrl+f5でデバッグ*/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?