// dsysv.cc // 実対称行列の線形方程式を解く #include extern "C" { void dsysv_ ( const char& UPLO, const int& N, const int& NRHS, double** A, const int& LDA, int* IPIV, double** B, const int& LDB, double* WORK, const int& LWORK, int& INFO, int UPLOlen ); }; // 実対称行列 A の線形方程式 A x = b を解く簡易関数 // Input: A[N][N], b[N] Output: x[N] // ただし、A[i][j<=i] の下三角しか参照されない // template int dsysv( double A[N][N], double x[N], double b[N] ) { int i, j, info; static int ipiv[N]; static double work[4*N]; static double U[N][N]; for( j=0; j