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