LAPACK の使用例
LAPACK でのプログラミング、実行例
LAPACK でのプログラミング、実行例
ここでは書籍「Linux 数値計算ツール(大石 進一 著、コロナ社 ISBN 4-339-02378-7)」P.147 に掲載されている連立一次方程式を解くプログラムを実行してみました。
プログラムリスト
プログラムリスト
上記書籍にあるプログラムリストです。ここでは lapacktest.c という名前にしました。
#include <stdio.h>
#define N 3
double A[N*N];
double x[N];
void main(void)
{
static int i;
static long int n=N,inc=1,info,piv[N];
A[0]=1. ; A[1]=3. ; A[2]=1. ;
A[3]=1. ; A[4]=1. ; A[5]=-2. ;
A[6]=1. ; A[7]=-3. ; A[8]=-5. ;
x[0]=1. ; x[1]=5. ; x[2]=10. ;
printf("N = %d\n",N);
dgesv_(&n,&inc,A,&n,piv,x,&n,&info);
for(i=0; i<N; ++i) printf("%lf\n", x[i]);
}
コンパイル方法(例)
コンパイル方法(例)
$ gcc -llapack -lblas lapacktest.c
実行例
実行例
以下のように実行します。
$ ./a.out
以下のような結果が出力されます。
N = 3
6.000000
-7.000000
2.000000