.
LAPACK -- Linear Algebra PACKage
Fortran의 장점 강력한 라이브러리, 수 십년간 만들어진 라이브러리가 가장 큰 Fortran의 매력인 것이다. - 사실 그건 아닌것 같다. 요즘나오는 IDL이나 Python 같은 경우에도 수 많은 라이브러리가 구축되어 있다. 그 중 IDL이야 말로 확장성이 정말 강력한 프로그램이다. 하지만, FORTRAN은 그 어원 ( Formular Translator 수식 번역기) 에서 알 수 있듯이 수식을 옮기기에 최적화 되어 있다는 점이다. Fortran이 처음만들어진것은 60~70년대이지만 아직까지도 진화하고 있다. 참고로 내가 사용하는 Fedora Core6에서는 F95를 기본으로 탑재하고 있다.
이번에 소개하는 것은 FORTRAN이나 C에서 사용할 수 있는 선형대수 라이브러리다.
http://www.netlib.org/lapack/ LAPACK is written in Fortran77 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.
If you're uncertain of the LAPACK routine name to address your application's needs, check out the LAPACK Search Engine.
설치법 : 소스를 받아 컴파일 할 수도 있고, 리눅스 배포본에 있는 RPM으로 설치 할 수도 있다. f90, f95용이 따로 있으므로 자신의 FORTRAN 컴파일러에 맞는 녀석을 설치하면 되겠다.
사용법 : 설치가 잘 되었다면,
http://www.nag.com/lapack-ex/lapack-ex.html 에 나와있는 예제를 참고하여 프로그램을 작성한 뒤, 컴파일 시에
] f95 filename.f -llapack
으로 컴파일 하면 된다. 단 주의할 점은 예제에 있는 프로그램은 NAG에서 만든 패키지도 포함하고 있기때문에, EXTERNAL 을 잘 살펴보아서 어떤 외부프로그램들이 사용되었는지 살펴본 뒤,
LAPACK에 포함되지 않은 것들은
HERE (EXTRAS) 에서 추가로 필요한 프로그램들을 받아서 사용하자.
LAPACK 루틴들의 이름은 XYYZZZ 로 만들어졌는데, X는 변수들의 형식, YY는 매트릭스의 형태, ZZZ는 어떤 계산을 수행하는지에 따라 정해진다.
쉽게 예를 들면. X 위치에 S,D, C, Z 가 올 수 있는데 각각 REAL, DOUBLE PRECISION, COMPLEX, COMPLEX*16의 변수 형태를 뜻한다. 좀 더 자세한 내용은 아래글을 참조하자.
http://www.netlib.org/lapack/lug/node24.html자 이제 FORTRAN에 날개를 달자, LAPACK과 함께 어떤 계산이든 해낼 수 있을 것이다. 나의 작은 바램이지만,....
LAPACK은 복잡한 계산을 수행하는데 그 바탕에는 BLAS가 있다. 이것의 설명은 IBM에서 잘 만들어 놨는데, 자..놀러가보자.
클릭앞으로는 FORTRAN95의 사용법을 알아봐야겠다. 이번에 알게 되었는데, 훨씬 더 진화한 듯 보인다.