ほんとのこと知りたいだけなのに。

夏休みはもうおわり。

続・f2cl とは

先日のエントリでf2cl とは でも眺めてみたけどもう一度。

#:g1: f2clの紹介 の情報からイロイロ引用しながら整理する。

gitlab.common-lisp.net

概要

Fortran のプログラムを、Lispのプログラムへ変換するライブラリの様です。

FortranからCommon Lispへのトランスレータです。
#:g1: f2clの紹介 参照

変換?

以下のような hello.f を変換すると hello.lisp が出力される様です。

! hello.f
subroutine hello
print *,"おはよう日本"
end
;;; hello.lisp

;;; Compiled by f2cl version:
;;; ("f2cl1.l,v 95098eb54f13 2013/04/01 00:45:16 toy $" "f2cl2.l,v 95098eb54f13 2013/04/01 00:45:16 toy $" "f2cl3.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $"
;;;  "f2cl4.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $" "f2cl5.l,v 95098eb54f13 2013/04/01 00:45:16 toy $" "f2cl6.l,v 1d5cbacbb977 2008/08/24 00:56:27 rtoy $"
;;;  "macros.l,v 1409c1352feb 2013/03/24 20:44:50 toy $")

;;; Using Lisp SBCL 1.1.18
;;; 
;;; Options: ((:prune-labels nil) (:auto-save t) (:relaxed-array-decls t) (:coerce-assigns :as-needed) (:array-type ':array) (:array-slicing t)
;;;           (:declare-common nil) (:float-format single-float))

(in-package :f2cl-test)

(defun hello () (prog () (declare) (f2cl-lib:fformat t :list-directed "おはよう日本") end_label (return (values))))

(in-package #-gcl #:cl-user #+gcl "CL-USER")
#+#.(cl:if (cl:find-package '#:f2cl) '(and) '(or))
(eval-when (:load-toplevel :compile-toplevel :execute)
  (setf (gethash 'f2cl::hello f2cl::*f2cl-function-info*) (f2cl::make-f2cl-finfo :arg-types 'nil :return-values 'nil :calls 'nil)))

変換の方法

以下の様なコードで変換できるようです。

(defpackage :f2cl-test 
  (:use :cl)
  (:export :hello))

(f2cl:f2cl "/tmp/hello.f"
           :output-file "/tmp/hello.lisp"
           :package :f2cl-test)

ASDFシステム

quickdocs を参考に表にしてみる。

こう見てみると Fortran to Common Lisp のコンバータとそれプラス、フォートランのいくつかのライブラリを既に変換している雰囲気。

system description
f2cl F2CL: Fortran to Lisp converter
colnew F2CL conversion of COLNEW: Solution of boundary-value problems for ODEs
fishpack F2CL conversion of FISHPACK: Solution of separable elliptic PDEs
hompack F2CL conversion of HOMPACK: Solution of non-linear systems of equations by homotopy methods.
minpack F2CL conversion of MINPACK: Solutions to non-linear equations and least-squares problems
quadpack F2CL conversion of QUADPACK: Adaptive numerical integration
toms419 F2CL conversion of TOMS 419: Zeroes of a complex polynomial
toms717 F2CL conversion of TOMS 717: Max- and quasi-likelihood estimation in non-linear regressio
blas-complex BLAS routines for complex double-float matrices
blas-hompack
blas-package Package definition for BLAS
blas-real BLAS routines for real double-float matrices
lapack

変換しているフォートランのいくつかのライブラリ

それぞれのライブラリの概要を適当に調査。

以下の様子であるため日本語は変だとおもう。。。。

  • リンクになっているものの description はそのサイトをGoogle先生で直接翻訳したものをコピペ。
  • リンクになっていないものは、上のASDFシステムの description をGoogle先生で直接翻訳をコピペ。
name description
BLAS 難しく言うと基本的な線形演算のライブラリ、
簡単にいえば行列やベクトルの基本的な計算をやってくれる関数群です。
LAPACK 高性能線形代数パッケージです。
連立一次方程式、最少二乗問題、固有値問題、特異値問題を解くためのサブルーチンが含まれています。
COLNEW 常微分方程式のための境界値問題の解法ライブラリ
FISHPACK 円型偏微分方程式の解のための効率的なFORTRANサブプログラム
HOMPACK ホモトピーの方法により、非線形方程式系を解くためのサブルーチン
MINPACK 非線形方程式のシステムを解くライブラリであり、
または線形または非線形方程式のセットの残余の最小二乗最小化を行います。
QUADPACK 数値積分を使用して積分を推定するライブラリ
TOMS 419 複雑な多項式の零点ライブラリ
TOMS 717 非線形回帰におけるMAX-と準尤推定ライブラリ

恐らく、上記のFortranのライブラリが変換されたファイル/関数がそれぞれのASDFシステムに入っているのだろう。と認識。

おわり

なんとなく概要が理解できた気になったので終り。

今関係するのは BLAS, LAPACK の二つなので次回はそれぞれのパッケージを眺めてみるか。

まずは BLAS かな。

LAPACK 計算ルーチン(Computational Routines) を一覧にしてみる。

ここの配架にあるルーチンを一覧表にする。

連立一次方程式
Linear Equations

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
general factorize GE TRF SGETRF CGETRF DGETRF ZGETRF
solve using factorization GE TRS SGETRS CGETRS DGETRS ZGETRS
estimate condition number GE CON SGECON CGECON DGECON ZGECON
error bounds for solution GE RFS SGERFS CGERFS DGERFS ZGERFS
invert using factorization GE TRI SGETRI CGETRI DGETRI ZGETRI
equilibrate GE EQU SGEEQU CGEEQU DGEEQU ZGEEQU
general factorize GB TRF SGBTRF CGBTRF DGBTRF ZGBTRF
band solve using factorization GB TRS SGBTRS CGBTRS DGBTRS ZGBTRS
estimate condition number GB CON SGBCON CGBCON DGBCON ZGBCON
error bounds for solution GB RFS SGBRFS CGBRFS DGBRFS ZGBRFS
equilibrate GB EQU SGBEQU CGBEQU DGBEQU ZGBEQU
general factorize GT TRF SGTTRF CGTTRF DGTTRF ZGTTRF
tridiagonal solve using factorization GT TRS SGTTRS CGTTRS DGTTRS ZGTTRS
estimate condition number GT CON SGTCON CGTCON DGTCON ZGTCON
error bounds for solution GT RFS SGTRFS CGTRFS DGTRFS ZGTRFS
symmetric/Hermitian factorize PO TRF SPOTRF CPOTRF DPOTRF ZPOTRF
positive definite solve using factorization PO TRS SPOTRS CPOTRS DPOTRS ZPOTRS
estimate condition number PO CON SPOCON CPOCON DPOCON ZPOCON
error bounds for solution PO RFS SPORFS CPORFS DPORFS ZPORFS
invert using factorization PO TRI SPOTRI CPOTRI DPOTRI ZPOTRI
equilibrate PO EQU SPOEQU CPOEQU DPOEQU ZPOEQU
symmetric/Hermitian factorize PP TRF SPPTRF CPPTRF DPPTRF ZPPTRF
positive definite solve using factorization PP TRS SPPTRS CPPTRS DPPTRS ZPPTRS
(packed storage) estimate condition number PP CON SPPCON CPPCON DPPCON ZPPCON
error bounds for solution PP RFS SPPRFS CPPRFS DPPRFS ZPPRFS
invert using factorization PP TRI SPPTRI CPPTRI DPPTRI ZPPTRI
equilibrate PP EQU SPPEQU CPPEQU DPPEQU ZPPEQU
symmetric/Hermitian factorize PB TRF SPBTRF CPBTRF DPBTRF ZPBTRF
positive definite solve using factorization PB TRS SPBTRS CPBTRS DPBTRS ZPBTRS
band estimate condition number PB CON SPBCON CPBCON DPBCON ZPBCON
error bounds for solution PB RFS SPBRFS CPBRFS DPBRFS ZPBRFS
equilibrate PB EQU SPBEQU CPBEQU DPBEQU ZPBEQU
symmetric/Hermitian factorize PT TRF SPTTRF CPTTRF DPTTRF ZPTTRF
positive definite solve using factorization PT TRS SPTTRS CPTTRS DPTTRS ZPTTRS
tridiagonal estimate condition number PT CON SPTCON CPTCON DPTCON ZPTCON
error bounds for solution PT RFS SPTRFS CPTRFS DPTRFS ZPTRFS
symmetric/Hermitian factorize HE TRF SSYTRF CHETRF DSYTRF ZHETRF
indefinite solve using factorization HE TRS SSYTRS CHETRS DSYTRS ZHETRS
estimate condition number HE CON SSYCON CHECON DSYCON ZHECON
error bounds for solution HE RFS SSYRFS CHERFS DSYRFS ZHERFS
invert using factorization HE TRI SSYTRI CHETRI DSYTRI ZHETRI
complex symmetric factorize SY TRF --- CSYTRF --- ZSYTRF
solve using factorization SY TRS --- CSYTRS --- ZSYTRS
estimate condition number SY CON --- CSYCON --- ZSYCON
error bounds for solution SY RFS --- CSYRFS --- ZSYRFS
invert using factorization SY TRI --- CSYTRI --- ZSYTRI
symmetric/Hermitian factorize HP TRF SSPTRF CHPTRF DSPTRF ZHPTRF
indefinite solve using factorization HP TRS SSPTRS CHPTRS DSPTRS ZHPTRS
(packed storage) estimate condition number HP CON SSPCON CHPCON DSPCON ZHPCON
error bounds for solution HP RFS SSPRFS CHPRFS DSPRFS ZHPRFS
invert using factorization HP TRI SSPTRI CHPTRI DSPTRI ZHPTRI
complex symmetric factorize SP TRF --- CSPTRF --- ZSPTRF
(packed storage) solve using factorization SP TRS --- CSPTRS --- ZSPTRS
estimate condition number SP CON --- CSPCON --- ZSPCON
error bounds for solution SP RFS --- CSPRFS --- ZSPRFS
invert using factorization SP TRI --- CSPTRI --- ZSPTRI
triangular solve TR TRS STRTRS CTRTRS DTRTRS ZTRTRS
estimate condition number TR CON STRCON CTRCON DTRCON ZTRCON
error bounds for solution TR RFS STRRFS CTRRFS DTRRFS ZTRRFS
invert TR TRI STRTRI CTRTRI DTRTRI ZTRTRI
triangular solve TP TRS STPTRS CTPTRS DTPTRS ZTPTRS
(packed storage) estimate condition number TP CON STPCON CTPCON DTPCON ZTPCON
error bounds for solution TP RFS STPRFS CTPRFS DTPRFS ZTPRFS
invert TP TRI STPTRI CTPTRI DTPTRI ZTPTRI
triangular solve TB TRS STBTRS CTBTRS DTBTRS ZTBTRS
band estimate condition number TB CON STBCON CTBCON DTBCON ZTBCON
error bounds for solution TB RFS STBRFS CTBRFS DTBRFS ZTBRFS

その他の因数分解
Other Factorizations

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
QR, general factorize with pivoting GE QP3 SGEQP3 CGEQP3 DGEQP3 ZGEQP3
factorize, no pivoting GE QRF SGEQRF CGEQRF DGEQRF ZGEQRF
generate Q OR GQR SORGQR CUNGQR DORGQR ZUNGQR
multiply matrix by Q OR MQR SORMQR CUNMQR DORMQR ZUNMQR
LQ, general factorize, no pivoting GE LQF SGELQF CGELQF DGELQF ZGELQF
generate Q OR GLQ SORGLQ CUNGLQ DORGLQ ZUNGLQ
multiply matrix by Q OR MLQ SORMLQ CUNMLQ DORMLQ ZUNMLQ
QL, general factorize, no pivoting GE QLF SGEQLF CGEQLF DGEQLF ZGEQLF
generate Q OR GQL SORGQL CUNGQL DORGQL ZUNGQL
multiply matrix by Q OR MQL SORMQL CUNMQL DORMQL ZUNMQL
RQ, general factorize, no pivoting GE RQF SGERQF CGERQF DGERQF ZGERQF
generate Q OR GRQ SORGRQ CUNGRQ DORGRQ ZUNGRQ
multiply matrix by Q OR MRQ SORMRQ CUNMRQ DORMRQ ZUNMRQ
RZ, trapezoidal factorize, no pivoting
(blocked algorithm)
TZ RZF STZRZF CTZRZF DTZRZF ZTZRZF
multiply matrix by Q OR MRZ SORMRZ CUNMRZ DORMRZ ZUNMRZ

対称固有値問題
Symmetric Eigenproblems

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
dense symmetric
(or Hermitian)
tridiagonal reduction SY TRD SSYTRD CHETRD DSYTRD ZHETRD
packed symmetric
(or Hermitian)
tridiagonal reduction SP TRD SSPTRD CHPTRD DSPTRD ZHPTRD
band symmetric
(or Hermitian)
tridiagonal reduction SB TRD SSBTRD CHBTRD DSBTRD ZHBTRD
orthogonal/unitary generate matrix after
reduction by xSYTRD
OR GTR SORGTR CUNGTR DORGTR ZUNGTR
multiply matrix after
reduction by xSYTRD
OR MTR SORMTR CUNMTR DORMTR ZUNMTR
orthogonal/unitary
(packed storage)
generate matrix after
reduction by xSPTRD
OP GTR SOPGTR CUPGTR DOPGTR ZUPGTR
multiply matrix after
reduction by xSPTRD
OP MTR SOPMTR CUPMTR DOPMTR ZUPMTR
symmetric
tridiagonal
eigenvalues/
eigenvectors via QR
ST EQR SSTEQR CSTEQR DSTEQR ZSTEQR
eigenvalues only
via root-free QR
ST ERF SSTERF --- DSTERF ---
eigenvalues/
eigenvectors via
divide and conquer
ST EDC SSTEDC CSTEDC DSTEDC ZSTEDC
eigenvalues/
eigenvectors via
RRR
ST EGR SSTEGR CSTEGR DSTEGR ZSTEGR
eigenvalues only
via bisection
ST EBZ SSTEBZ --- DSTEBZ ---
eigenvectors by
inverse iteration
ST EIN SSTEIN CSTEIN DSTEIN ZSTEIN
symmetric
tridiagonal
positive definite
eigenvalues/
eigenvectors
PT EQR SPTEQR CPTEQR DPTEQR ZPTEQR

不変部分空間と条件数
Invariant Subspaces and Condition Numbers

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
general Hessenberg reduction GE HRD SGEHRD CGEHRD DGEHRD ZGEHRD
balancing GE BAL SGEBAL CGEBAL DGEBAL ZGEBAL
backtransforming GE BAK SGEBAK CGEBAK DGEBAK ZGEBAK
orthogonal/unitary generate matrix after
Hessenberg reduction
OR GHR SORGHR CUNGHR DORGHR ZUNGHR
multiply matrix after
Hessenberg reduction
OR MHR SORMHR CUNMHR DORMHR ZUNMHR
Hessenberg Schur factorization HS EQR SHSEQR CHSEQR DHSEQR ZHSEQR
eigenvectors by
inverse iteration
HS EIN SHSEIN CHSEIN DHSEIN ZHSEIN
(quasi)triangular eigenvectors TR EVC STREVC CTREVC DTREVC ZTREVC
reordering Schur
factorization
TR EXC STREXC CTREXC DTREXC ZTREXC
Sylvester equation TR SYL STRSYL CTRSYL DTRSYL ZTRSYL
condition numbers of
eigenvalues/vectors
TR SNA STRSNA CTRSNA DTRSNA ZTRSNA
condition numbers of
eigenvalue cluster/
invariant subspace
TR SEN STRSEN CTRSEN DTRSEN ZTRSEN

特異値分解
Singular Value Decomposition

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
general bidiagonal reduction GE BRD SGEBRD CGEBRD DGEBRD ZGEBRD
general band bidiagonal reduction GB BRD SGBBRD CGBBRD DGBBRD ZGBBRD
orthogonal/unitary generate matrix after
bidiagonal reduction
OR GBR SORGBR CUNGBR DORGBR ZUNGBR
multiply matrix after
bidiagonal reduction
OR MBR SORMBR CUNMBR DORMBR ZUNMBR
bidiagonal SVD using
QR or dqds
BD SQR SBDSQR CBDSQR DBDSQR ZBDSQR
SVD using
divide-and-conquer
BD SDC SBDSDC --- DBDSDC ---

一般対称明確な固有値問題
Generalized Symmetric Definite Eigenproblems

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
symmetric/Hermitian reduction SY GST SSYGST CHEGST DSYGST ZHEGST
symmetric/Hermitian
(packed storage)
reduction SP GST SSPGST CHPGST DSPGST ZHPGST
symmetric/Hermitian
banded
split Cholesky
factorization
PB STF SPBSTF CPBSTF DPBSTF ZPBSTF
reduction SB GST SSBGST DSBGST CHBGST ZHBGST

収縮部分空間と条件数
Deflating Subspaces and Condition Numbers

Type of matrix
and
storage scheme
Operation YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
general Hessenberg reduction GG HRD SGGHRD CGGHRD DGGHRD ZGGHRD
balancing GG BAL SGGBAL CGGBAL DGGBAL ZGGBAL
back transforming GG BAK SGGBAK CGGBAK DGGBAK ZGGBAK
Hessenberg
(quasi)triangular
Schur factorization HG EQZ SHGEQZ CHGEQZ DHGEQZ ZHGEQZ
eigenvectors TG EVC STGEVC CTGEVC DTGEVC ZTGEVC
reordering
Schur decomposition
TG EXC STGEXC CTGEXC DTGEXC ZTGEXC
Sylvester equation TG SYL STGSYL CTGSYL DTGSYL ZTGSYL
condition numbers of eigenvalues/vectors TG SNA STGSNA CTGSNA DTGSNA ZTGSNA
condition numbers of
eigenvalue cluster/
deflating subspaces
TG SEN STGSEN CTGSEN DTGSEN ZTGSEN

一般(or 商)特異値分解
Generalized (or Quotient) Singular Value Decomposition

Type of matrix
and
storage scheme
Operation YYY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
??? triangular reduction of A and B GG SVP SGGSVP CGGSVP DGGSVP ZGGSVP
??? GSVD of a pair of triangular matrices TG SJA STGSJA CTGSJA DTGSJA ZTGSJA

おわり

129個の命令があります。 なかなかな数ですね。

LAPACK ドライバルーチン(Driver routines)を一覧にしてみる。

Driver Routines 配架にある表をまとめて一つにします。

連立一次方程式 (Linear Equations)

LE

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
general - simple driver GE SV S CGESV DGESV ZGESV
general - expert driver SVX S CGESVX DGESVX ZGESVX
general band - simple driver GB SV S CGBSV DGBSV ZGBSV
general band - expert driver SVX S CGBSVX DGBSVX ZGBSVX
general tridiagonal - simple driver GT SV S CGTSV DGTSV ZGTSV
general tridiagonal - expert driver SVX S CGTSVX DGTSVX ZGTSVX
symmetric/Hermitian - simple driver PO SV S CPOSV DPOSV ZPOSV
positive definite - expert driver SVX S CPOSVX DPOSVX ZPOSVX
symmetric/Hermitian - simple driver PP SV S CPPSV DPPSV ZPPSV
positive definite (packed storage) - expert driver SVX S CPPSVX DPPSVX ZPPSVX
symmetric/Hermitian - simple driver PB SV S CPBSV DPBSV ZPBSV
positive definite band - expert driver SVX S CPBSVX DPBSVX ZPBSVX
symmetric/Hermitian - simple driver PT SV S CPTSV DPTSV ZPTSV
positive definite tridiagonal - expert driver SVX S CPTSVX DPTSVX ZPTSVX
symmetric/Hermitian - simple driver SY SV S CHESV DSYSV ZHESV
indefinite - expert driver SVX S CHESVX DSYSVX ZHESVX
complex symmetric - simple driver SV --- CSYSV --- ZSYSV
complex symmetric - expert driver SVX --- CSYSVX --- ZSYSVX
symmetric/Hermitian - simple driver SP SV SSPSV CHPSV DSPSV ZHPSV
indefinite (packed storage) - expert driver SVX SSPSVX CHPSVX DSPSVX ZHPSVX
complex symmetric - simple driver SV --- CSPSV --- ZSPSV
(packed storage) - expert driver SVX --- CSPSVX --- ZSPSVX

線形最小二乗 (Linear Least Squares)

LLS

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
solve LLS using QR or LQ factorization GE LS SGELS CGELS DGELS ZGELS
solve LLS using complete orthogonal factorization LSY SGELSY CGELSY DGELSY ZGELSY
solve LLS using SVD LSS SGELSS CGELSS DGELSS ZGELSS
solve LLS using divide-and-conquer SVD LSD SGELSD CGELSD DGELSD ZGELSD

一般化線形最小二乗 (Generalized Linear Least Squares)

LSE

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
solve LSE problem using GRQ GG LSE SGGLSE CGGLSE DGGLSE ZGGLSE

GLM

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
solve GLM problem using GQR GG GLM SGGGLM CGGGLM DGGGLM ZGGGLM

標準固有値と特異値 (Standard Eigenvalue and Singular Value)

SEP

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
simple driver SY EV SSYEV CHEEV DSYEV ZHEEV
divide and conquer driver EVD SSYEVD CHEEVD DSYEVD ZHEEVD
expert driver EVX SSYEVX CHEEVX DSYEVX ZHEEVX
RRR driver EVR SSYEVR CHEEVR DSYEVR ZHEEVR
simple driver (packed storage) SP EV SSPEV CHPEV DSPEV ZHPEV
divide and conquer driver (packed storage) EVD SSPEVD CHPEVD DSPEVD ZHPEVD
expert driver (packed storage) EVX SSPEVX CHPEVX DSPEVX ZHPEVX
simple driver (band matrix) SB EV SSBEV CHBEV DSBEV ZHBEV
divide and conquer driver (band matrix) EVD SSBEVD CHBEVD DSBEVD ZHBEVD
expert driver (band matrix) EVX SSBEVX CHBEVX DSBEVX ZHBEVX
simple driver (tridiagonal matrix) ST EV SSTEV --- DSTEV ---
divide and conquer driver (tridiagonal matrix) EVD SSTEVD --- DSTEVD ---
expert driver (tridiagonal matrix) EVX SSTEVX --- DSTEVX ---
RRR driver (tridiagonal matrix) EVR SSTEVR --- DSTEVR ---

NEP

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
simple driver for Schur factorization GE ES SGEES CGEES DGEES ZGEES
expert driver for Schur factorization ESX SGEESX CGEESX DGEESX ZGEESX
simple driver for eigenvalues/vectors EV SGEEV CGEEV DGEEV ZGEEV
expert driver for eigenvalues/vectors EVX SGEEVX CGEEVX DGEEVX ZGEEVX

SVD

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
simple driver GE SVD SGESVD CGESVD DGESVD ZGESVD
divide and conquer driver SDD SGESDD CGESDD DGESDD ZGESDD

一般化固有値と特異値 (Generalized Eigenvalue and Singular Value)

GSEP

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
simple driver SY GV SSYGV CHEGV DSYGV ZHEGV
divide and conquer driver GVD SSYGVD CHEGVD DSYGVD ZHEGVD
expert driver GVX SSYGVX CHEGVX DSYGVX ZHEGVX
simple driver (packed storage) SP GV SSPGV CHPGV DSPGV ZHPGV
divide and conquer driver GVD SSPGVD CHPGVD DSPGVD ZHPGVD
expert driver GVX SSPGVX CHPGVX DSPGVX ZHPGVX
simple driver (band matrices) SB GV SSBGV CHBGV DSBGV ZHBGV
divide and conquer driver GVD SSBGVD CHBGVD DSBGV ZHBGVD
expert driver GVX SSBGVX CHBGVX DSBGVX ZHBGVX

GNEP

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
simple driver for Schur factorization GG ES SGGES CGGES DGGES ZGGES
expert driver for Schur factorization ESX SGGESX CGGESX DGGESX ZGGESX
simple driver for eigenvalues/vectors EV SGGEV CGGEV DGGEV ZGGEV
expert driver for eigenvalues/vectors EVX SGGEVX CGGEVX DGGEVX ZGGEVX

GSVD

Function and storage scheme YY ZZZ 単精度
実数
単精度
素数
倍精度
実数
倍精度
素数
singular values/vectors GG SVD SGGSVD CGGSVD DGGSVD ZGGSVD

おわり

思っていたより種類は少ないですね。

まぁでも65種類だし、あるっちゃーありますね。