OpenBLAS/lapack-netlib/DOCS/groups-usr.dox

975 lines
53 KiB
Plaintext

/**
@defgroup lapack_top LAPACK
@{
@defgroup solve_top Linear solve, AX = B
@{
@defgroup gesv_driver_grp LU: General matrix, driver
@{
@defgroup gesv_driver --- full ---
@defgroup gesv gesv: factor and solve
@defgroup gesvx gesvx: factor and solve, expert
@defgroup gesvxx gesvxx: factor and solve, extra precise
@defgroup gesv_mixed gesv: factor and solve, mixed precision
@defgroup gbsv_driver --- banded ---
@defgroup gbsv gbsv: factor and solve
@defgroup gbsvx gbsvx: factor and solve, expert
@defgroup gbsvxx gbsvxx: factor and solve, extra precise
@defgroup gtsv_driver --- tridiagonal ---
@defgroup gtsv gtsv: factor and solve
@defgroup gtsvx gtsvx: factor and solve, expert
@}
@defgroup gesv_comp_grp LU: computational routines (factor, cond, etc.)
@{
@defgroup gesv_comp --- full ---
@defgroup gecon gecon: condition number estimate
@defgroup getrf getrf: triangular factor
@defgroup getrf2 getrf2: triangular factor panel, recursive?
@defgroup getf2 getf2: triangular factor panel, level 2
@defgroup getrs getrs: triangular solve using factor
@defgroup getri getri: triangular inverse
@defgroup gerfs gerfs: iterative refinement
@defgroup gerfsx gerfsx: iterative refinement, expert
@defgroup geequ geequ: equilibration
@defgroup geequb geequb: equilibration, power of 2
@defgroup laqge laqge: row/col scale matrix
@defgroup laswp laswp: swap permutation
@defgroup getc2 getc2: triangular factor, with complete pivoting
@defgroup gesc2 gesc2: triangular solve using factor, with complete pivoting
@defgroup latdf latdf: Dif-estimate with complete pivoting LU, step in tgsen
@defgroup la_gercond la_gercond: Skeel condition number estimate
@defgroup la_gerpvgrw la_gerpvgrw: reciprocal pivot growth
@defgroup la_gerfsx_extended la_gerfsx_extended: step in gerfsx
@defgroup gbsv_comp --- banded ---
@defgroup gbcon gbcon: condition number estimate
@defgroup gbtrf gbtrf: triangular factor
@defgroup gbtf2 gbtf2: triangular factor, level 2
@defgroup gbtrs gbtrs: triangular solve using factor
@defgroup gbrfs gbrfs: iterative refinement
@defgroup gbrfsx gbrfsx: iterative refinement, expert
@defgroup gbequ gbequ: equilibration
@defgroup gbequb gbequb: equilibration, power of 2
@defgroup laqgb laqgb: row/col scale matrix
@defgroup la_gbrcond la_gbrcond: Skeel condition number estimate
@defgroup la_gbrpvgrw la_gbrpvgrw: reciprocal pivot growth
@defgroup la_gbrfsx_extended la_gbrfsx_extended: step in gbrfsx
@defgroup gtsv_comp --- tridiagonal ---
@defgroup gtcon gtcon: condition number estimate
@defgroup gttrf gttrf: triangular factor
@defgroup gttrs gttrs: triangular solve using factor
@defgroup gtts2 gtts2: triangular solve using factor
@defgroup gtrfs gtrfs: iterative refinement
@}
@defgroup posv_driver_grp Cholesky: Hermitian/symmetric positive definite matrix, driver
@{
@defgroup posv_driver --- full ---
@defgroup posv posv: factor and solve
@defgroup posvx posvx: factor and solve, expert
@defgroup posvxx posvxx: factor and solve, extra precise
@defgroup posv_mixed posv: factor and solve, mixed precision
@defgroup ppsv_driver --- packed ---
@defgroup ppsv ppsv: factor and solve
@defgroup ppsvx ppsvx: factor and solve, expert
@defgroup pfsv_driver --- rectangular full packed (RFP) ---
@defgroup pfsv pfsv: factor and solve [not available]
@defgroup pbsv_driver --- banded ---
@defgroup pbsv pbsv: factor and solve
@defgroup pbsvx pbsvx: factor and solve, expert
@defgroup ptsv_driver --- tridiagonal ---
@defgroup ptsv ptsv: factor and solve
@defgroup ptsvx ptsvx: factor and solve, expert
@}
@defgroup posv_comp_grp Cholesky: computational routines (factor, cond, etc.)
@{
@defgroup posv_comp --- full ---
@defgroup pocon pocon: condition number estimate
@defgroup potrf potrf: triangular factor
@defgroup potrf2 potrf2: triangular factor panel, recursive?
@defgroup potf2 potf2: triangular factor panel, level 2
@defgroup pstrf pstrf: triangular factor, with pivoting
@defgroup pstf2 pstf2: triangular factor, with pivoting panel, level 2
@defgroup potrs potrs: triangular solve using factor
@defgroup potri potri: triangular inverse
@defgroup porfs porfs: iterative refinement
@defgroup porfsx porfsx: iterative refinement, expert
@defgroup poequ poequ: equilibration
@defgroup poequb poequb: equilibration, power of 2
@defgroup laqhe laqhe: row/col scale matrix
@defgroup la_porcond la_porcond: Skeel condition number estimate
@defgroup la_porpvgrw la_porpvgrw: reciprocal pivot growth
@defgroup la_porfsx_extended la_porfsx_extended: step in porfsx
@defgroup ppsv_comp --- packed ---
@defgroup ppcon ppcon: condition number estimate
@defgroup pptrf pptrf: triangular factor
@defgroup pptrs pptrs: triangular solve using factor
@defgroup pptri pptri: triangular inverse
@defgroup pprfs pprfs: iterative refinement
@defgroup ppequ ppequ: equilibration
@defgroup laqhp laqhp: row/col scale matrix
@defgroup pfsv_comp --- rectangular full packed (RFP) ---
@defgroup pftrf pftrf: triangular factor
@defgroup pftrs pftrs: triangular solve using factor
@defgroup pftri pftri: triangular inverse
@defgroup pbsv_comp --- banded ---
@defgroup pbcon pbcon: condition number estimate
@defgroup pbtrf pbtrf: triangular factor
@defgroup pbtf2 pbtf2: triangular factor panel, level 2
@defgroup pbtrs pbtrs: triangular solve using factor
@defgroup pbrfs pbrfs: iterative refinement
@defgroup pbequ pbequ: equilibration
@defgroup laqhb laqhb: row/col scale matrix
@defgroup ptsv_comp --- tridiagonal ---
@defgroup ptcon ptcon: condition number estimate
@defgroup pttrf pttrf: triangular factor
@defgroup pttrs pttrs: triangular solve using factor
@defgroup ptts2 ptts2: triangular solve using factor, unblocked
@defgroup ptrfs ptrfs: iterative refinement
@}
@defgroup hesv_driver_grp LDL: Hermitian/symmetric indefinite matrix, driver
@{
@defgroup hesv_driver --- full, rook pivoting ---
@defgroup hesv {he,sy}sv: rook (v1)
@defgroup hesv_rook {he,sy}sv_rook: rook (v2)
@defgroup hesv_rk {he,sy}sv_rk: rook (v3)
@defgroup hesvx {he,sy}svx: rook (v1, expert)
@defgroup hesvxx {he,sy}svxx: rook (v1, expert)
@defgroup hpsv_driver --- packed, rook pivoting ---
@defgroup hpsv {hp,sp}sv: factor and solve
@defgroup hpsvx {hp,sp}svx: factor and solve, expert
@defgroup hesv_aa_driver --- full, Aasen ---
@defgroup hesv_aa {he,sy}sv_aa: Aasen
@defgroup hesv_aa_2stage {he,sy}sv_aa_2stage: Aasen, blocked 2-stage
@}
@defgroup hesv_comp_grp LDL: computational routines (factor, cond, etc.)
@{
@defgroup hesv_comp_v1 --- full, rook v1 ---
@defgroup hecon {he,sy}con: condition number estimate
@defgroup hetrf {he,sy}trf: triangular factor
@defgroup lahef la{he,sy}f: step in hetrf
@defgroup hetf2 {he,sy}tf2: triangular factor, level 2
@defgroup hetrs {he,sy}trs: triangular solve using factor
@defgroup hetri {he,sy}tri: triangular inverse
@defgroup herfs {he,sy}rfs: iterative refinement
@defgroup herfsx {he,sy}rfsx: iterative refinement, expert
@defgroup heequb {he,sy}equb: equilibration, power of 2
@defgroup syconv syconv: convert to/from L and D from hetrf
@defgroup hecon_3 {he,sy}con_3: condition number estimate
@defgroup hetri2 {he,sy}tri2: inverse
@defgroup hetri2x {he,sy}tri2x: inverse
@defgroup hetri_3 {he,sy}tri_3: inverse
@defgroup hetri_3x {he,sy}tri_3x: inverse
@defgroup hetrs2 {he,sy}trs2: solve using factor
@defgroup hetrs_3 {he,sy}trs_3: solve using factor
@defgroup heswapr {he,sy}swapr: apply 2-sided permutation
@defgroup la_hercond la_hercond: Skeel condition number estimate
@defgroup la_herfsx_extended la_herfsx_extended: step in herfsx
@defgroup la_herpvgrw la_herpvgrw: reciprocal pivot growth
@defgroup hpsv_comp --- packed, rook v1 ---
@defgroup hpcon {hp,sp}con: condition number estimate
@defgroup hptrf {hp,sp}trf: triangular factor
@defgroup hptrs {hp,sp}trs: triangular solve using factor
@defgroup hptri {hp,sp}tri: triangular inverse
@defgroup hprfs {hp,sp}rfs: iterative refinement
@defgroup hesv_comp_v2 --- full, rook v2 ---
@defgroup hecon_rook {he,sy}con_rook: condition number estimate
@defgroup hetrf_rook {he,sy}trf_rook: triangular factor
@defgroup lahef_rook la{he,sy}f_rook: triangular factor step
@defgroup hetf2_rook {he,sy}tf2_rook: triangular factor, level 2
@defgroup hetrs_rook {he,sy}trs_rook: triangular solve using factor
@defgroup hetri_rook {he,sy}tri_rook: triangular inverse
@defgroup hesv_comp_v3 --- full, rook v3 ---
@defgroup hetrf_rk {he,sy}trf_rk: triangular factor
@defgroup lahef_rk la{he,sy}f_rk: triangular factor step
@defgroup hetf2_rk {he,sy}tf2_rk: triangular factor, level 2
@defgroup syconvf syconvf: convert to/from hetrf to hetrf_rk format
@defgroup syconvf_rook syconvf_rook: convert to/from hetrf_rook to hetrf_rk format
@defgroup hesv_comp_aasen --- full, Aasen ---
@defgroup hetrf_aa {he,sy}trf_aa: triangular factor
@defgroup lahef_aa la{he,sy}f_aa: triangular factor partial factor
@defgroup hetrs_aa {he,sy}trs_aa: triangular solve using factor
@defgroup hesv_comp_aasen2 --- full, Aasen, blocked 2-stage ---
@defgroup hetrf_aa_2stage {he,sy}trf_aa_2stage: triangular factor
@defgroup hetrs_aa_2stage {he,sy}trs_aa_2stage: triangular solve using factor
@}
@defgroup trsv_comp_grp Triangular computational routines (solve, cond, etc.)
@{
@defgroup trsv_comp --- full ---
@defgroup trcon trcon: condition number estimate
@defgroup trtrs trtrs: triangular solve
@defgroup latrs latrs: triangular solve with robust scaling
@defgroup latrs3 latrs3: triangular solve with robust scaling, level 3
@defgroup trtri trtri: triangular inverse
@defgroup trti2 trti2: triangular inverse, level 2
@defgroup trrfs trrfs: triangular iterative refinement
@defgroup lauum lauum: triangular multiply: U^H U
@defgroup lauu2 lauu2: triangular multiply: U^H U, level 2
@defgroup tpsv_comp --- packed ---
@defgroup tpcon tpcon: condition number estimate
@defgroup tptrs tptrs: triangular solve
@defgroup latps latps: triangular solve with robust scaling
@defgroup tptri tptri: triangular inverse
@defgroup tprfs tprfs: triangular iterative refinement
@defgroup tfsv_comp --- rectangular full packed (RFP) ---
@defgroup tftri tftri: triangular inverse, RFP
@defgroup tbsv_comp --- banded ---
@defgroup tbcon tbcon: condition number estimate
@defgroup tbtrs tbtrs: triangular solve
@defgroup latbs latbs: triangular solve with scaling
@defgroup tbrfs tbrfs: triangular iterative refinement
@}
@defgroup solve_aux_grp Auxiliary routines
@{
@defgroup lacn2 lacn2: 1-norm estimate, e.g., || A^{-1} ||_1 in gecon
@defgroup lacon lacon: 1-norm estimate, e.g., || A^{-1} ||_1 in gecon, old
@defgroup la_lin_berr la_lin_berr: backward error
@}
@}
@defgroup gels_top Least squares
@{
@defgroup gels_driver_grp Standard least squares, min || Ax - b ||_2
@{
@defgroup gels gels: least squares using QR/LQ
@defgroup gelst gelst: least squares using QR/LQ with T matrix
@defgroup gelss gelss: least squares using SVD, QR iteration
@defgroup gelsd gelsd: least squares using SVD, divide and conquer
@defgroup gelsy gelsy: least squares using complete orthogonal factor
@defgroup getsls getsls: least squares using tall-skinny QR/LQ
@}
@defgroup ggls_driver_grp Constrained least squares
@{
@defgroup gglse gglse: equality-constrained least squares
@defgroup ggglm ggglm: Gauss-Markov linear model
@}
@defgroup gels_aux_grp Auxiliary routines
@{
@defgroup laic1 laic1: condition estimate, step in gelsy
@defgroup lals0 lals0: back multiplying factors, step in gelsd
@defgroup lalsa lalsa: SVD of coefficient matrix, step in gelsd
@defgroup lalsd lalsd: uses SVD for least squares, step in gelsd
@}
@}
@defgroup unitary_top Orthogonal/unitary factors (QR, CS, etc.)
@{
@defgroup geqr_comp_grp QR
@{
@defgroup geqr_comp1 --- flexible ---
@defgroup geqr geqr: QR factor, flexible
@defgroup gemqr gemqr: multiply by Q from geqr
@defgroup geqr_comp2 --- classic ---
@defgroup geqrf geqrf: QR factor
@defgroup geqr2 geqr2: QR factor, level 2
@defgroup ungqr {un,or}gqr: generate explicit Q from geqrf
@defgroup ung2r {un,or}g2r: generate explicit Q from geqrf, level 2
@defgroup unmqr {un,or}mqr: multiply by Q from geqrf
@defgroup unm2r {un,or}m2r: multiply by Q from geqrf, level 2
@defgroup geqr_comp3 --- with T ---
@defgroup geqrt geqrt: QR factor, with T
@defgroup geqrt2 geqrt2: QR factor, with T, level 2
@defgroup geqrt3 geqrt3: QR factor, with T, recursive panel
@defgroup gemqrt gemqrt: multiply by Q from geqrt
@defgroup geqr_comp4 --- positive ---
@defgroup geqrfp geqrfp: QR factor, diag( R ) ≥ 0
@defgroup geqr2p geqr2p: QR factor, diag( R ) ≥ 0, level 2
@}
@defgroup geqpf_comp_grp QR with pivoting
@{
@defgroup geqp3 geqp3: QR factor with pivoting, level 3
@defgroup laqp2 laqp2: step of geqp3
@defgroup laqps laqps: step of geqp3
@}
@defgroup getsqr_comp_grp QR, tall-skinny
@{
@defgroup latsqr latsqr: tall-skinny QR factor
@defgroup ungtsqr {un,or}gtsqr: generate Q from latsqr
@defgroup ungtsqr_row {un,or}gtsqr_row: generate Q from latsqr
@defgroup larfb_gett larfb_gett: step in ungtsqr_row
@defgroup lamtsqr lamtsqr: multiply by Q from latsqr
@defgroup getsqrhrt getsqrhrt: tall-skinny QR factor, with Householder reconstruction
@defgroup unhr_col {un,or}hr_col: Householder reconstruction
@defgroup launhr_col_getrfnp la{un,or}hr_col_getrfnp: LU factor without pivoting
@defgroup launhr_col_getrfnp2 la{un,or}hr_col_getrfnp2: LU factor without pivoting, level 2
@}
@defgroup tpqr_comp_grp QR, triangular-pentagonal
@{
@defgroup tpqrt tpqrt: QR factor
@defgroup tpqrt2 tpqrt2: QR factor, level 2
@defgroup tpmqrt tpmqrt: applies Q
@defgroup tprfb tprfb: applies Q (like larfb)
@}
@defgroup ggqr_comp_grp Generalized QR
@{
@defgroup ggqrf ggqrf: Generalized QR factor
@}
@defgroup gelq_comp_grp LQ
@{
@defgroup gelq_comp1 --- flexible ---
@defgroup gelq gelq: LQ factor, flexible
@defgroup gemlq gemlq: multiply by Q from gelq
@defgroup gelq_comp2 --- classic ---
@defgroup gelqf gelqf: LQ factor
@defgroup gelq2 gelq2: LQ factor, level 2
@defgroup unglq {un,or}glq: generate explicit Q from gelqf
@defgroup ungl2 {un,or}gl2: generate explicit Q, level 2, step in unglq
@defgroup unmlq {un,or}mlq: multiply by Q from gelqf
@defgroup unml2 {un,or}ml2: multiply by Q, level 2, step in unmlq
@defgroup gelq_comp3 --- with T ---
@defgroup gelqt gelqt: LQ factor, with T
@defgroup gelqt3 gelqt3: LQ factor, with T, recursive
@defgroup gemlqt gemlqt: multiply by Q from gelqt
@}
@defgroup geswlq_comp_grp LQ, short-wide
@{
@defgroup laswlq laswlq: short-wide LQ factor
@defgroup lamswlq lamswlq: multiply by Q from laswlq
@}
@defgroup tplq_comp_grp LQ, triangular-pentagonal
@{
@defgroup tplqt tplqt: QR factor
@defgroup tplqt2 tplqt2: QR factor, level 2
@defgroup tpmlqt tpmlqt: applies Q
@}
@defgroup geql_comp_grp QL
@{
@defgroup geqlf geqlf: QL factor
@defgroup geql2 geql2: QL factor, level 2
@defgroup ungql {un,or}gql: generate explicit Q from geqlf
@defgroup unmql {un,or}mql: multiply by Q from geqlf
@defgroup ung2l {un,or}g2l: step in ungql
@defgroup unm2l {un,or}m2l: step in unmql
@}
@defgroup gerq_comp_grp RQ
@{
@defgroup gerqf gerqf: RQ factor
@defgroup gerq2 gerq2: RQ factor, level 2
@defgroup ungrq {un,or}grq: generate explicit Q from gerqf
@defgroup unmrq {un,or}mrq: multiply by Q from gerqf
@defgroup unmr2 {un,or}mr2: step in unmrq
@defgroup ungr2 {un,or}gr2: step in ungrq
@}
@defgroup ggrq_comp_grp Generalized RQ
@{
@defgroup ggrqf ggrqf: Generalized RQ factor
@}
@defgroup gerz_comp_grp RZ
@{
@defgroup tzrzf tzrzf: RZ factor
@defgroup latrz latrz: RZ factor step
@defgroup unmrz {un,or}mrz: multiply by Z from tzrzf
@defgroup unmr3 {un,or}mr3: step in unmrz
@defgroup larz larz: apply reflector
@defgroup larzb larzb: apply block reflector
@defgroup larzt larzt: generate T matrix
@}
@defgroup gecs_comp_grp Cosine-Sine (CS) decomposition
@{
@defgroup bbcsd bbcsd: ??
@defgroup uncsd {un,or}csd: ??
@defgroup uncsd2by1 {un,or}csd2by1: ??
@defgroup unbdb {un,or}bdb: bidiagonalize partitioned unitary matrix, step in uncsd
@defgroup unbdb1 {un,or}bdb1: step in uncsd2by1
@defgroup unbdb2 {un,or}bdb2: step in uncsd2by1
@defgroup unbdb3 {un,or}bdb3: step in uncsd2by1
@defgroup unbdb4 {un,or}bdb4: step in uncsd2by1
@defgroup unbdb5 {un,or}bdb5: step in uncsd2by1
@defgroup unbdb6 {un,or}bdb6: step in uncsd2by1
@defgroup lapmr lapmr: permute rows
@defgroup lapmt lapmt: permute cols
@}
@defgroup reflector_aux_grp Householder reflectors
@{
@defgroup larf larf: apply Householder reflector
@defgroup larfx larfx: apply Householder reflector, unrolled
@defgroup larfy larfy: apply Householder reflector symmetrically (2-sided)
@defgroup larfb larfb: apply block Householder reflector
@defgroup larfg larfg: generate Householder reflector
@defgroup larfgp larfgp: generate Householder reflector, beta ≥ 0
@defgroup larft larft: generate T matrix
@}
@defgroup rot_aux_grp Givens/Jacobi plane rotations
@{
@defgroup lartg lartg: generate plane rotation, more accurate than BLAS rot
@defgroup lartgp lartgp: generate plane rotation, more accurate than BLAS rot
@defgroup lasr lasr: apply series of plane rotations
@defgroup largv largv: generate vector of plane rotations
@defgroup lartv lartv: apply vector of plane rotations to vectors
@defgroup lar2v lar2v: apply vector of plane rotations to 2x2 matrices
@defgroup lacrt lacrt: apply plane rotation (unused?)
@}
@}
@defgroup geev_top Non-symmetric eigenvalues
@{
@defgroup geev_driver_grp Standard eig driver, AV = VΛ
@{
@defgroup geev geev: eig
@defgroup geevx geevx: eig, expert
@defgroup gees gees: Schur form
@defgroup geesx geesx: Schur form, expert
@}
@defgroup ggev_driver_grp Generalized eig driver
@{
@defgroup ggev3 ggev3: eig
@defgroup ggev ggev: eig, unblocked
@defgroup ggevx ggevx: eig, expert
@defgroup gges3 gges3: Schur form
@defgroup gges gges: Schur form, unblocked
@defgroup ggesx ggesx: Schur form, expert
@}
@defgroup gedmd DMD driver, Dynamic Mode Decomposition
@defgroup geev_comp_grp Eig computational routines
@{
@defgroup gebal gebal: balance matrix
@defgroup gehrd gehrd: reduction to Hessenberg
@defgroup gehd2 gehd2: reduction to Hessenberg, level 2
@defgroup lahr2 lahr2: step in gehrd
@defgroup unghr {un,or}ghr: generate Q from gehrd
@defgroup unmhr {un,or}mhr: multiply by Q from gehrd
@defgroup gebak gebak: back-transform eigvec
@defgroup hseqr hseqr: Hessenberg eig, QR iteration
@defgroup hsein hsein: Hessenberg inverse iteration for eigvec
@defgroup trevc trevc: eigenvectors of triangular Schur form, old
@defgroup trevc3 trevc3: eigenvectors of triangular Schur form, blocked
@defgroup laln2 laln2: 1x1 or 2x2 solve, step in trevc
@defgroup trsyl trsyl: Sylvester equation
@defgroup trsyl3 trsyl3: Sylvester equation, level 3
@defgroup lasy2 lasy2: Sylvester equation
@defgroup trsna trsna: eig condition numbers
@defgroup laqtr laqtr: quasi-triangular solve
@defgroup trexc trexc: reorder Schur form
@defgroup trsen trsen: reorder Schur form
@defgroup laexc laexc: reorder Schur form
@defgroup lanv2 lanv2: 2x2 Schur factor
@defgroup laqr_group --- hseqr auxiliary ---
@defgroup laein laein: eigvec by Hessenberg inverse iteration
@defgroup lahqr lahqr: eig of Hessenberg, step in hseqr
@defgroup laqr0 laqr0: eig of Hessenberg, step in hseqr
@defgroup laqr1 laqr1: step in hseqr
@defgroup laqr2 laqr2: step in hseqr
@defgroup laqr3 laqr3: step in hseqr
@defgroup laqr4 laqr4: eig of Hessenberg, step in hseqr
@defgroup laqr5 laqr5: step in hseqr
@defgroup iparmq iparmq: set parameters for hseqr
@defgroup laqz_group --- ggev3, gges3 auxiliary ---
@defgroup laqz0 laqz0: step in ggev3, gges3
@defgroup laqz1 laqz1: step in ggev3, gges3
@defgroup laqz2 laqz2: step in ggev3, gges3
@defgroup laqz3 laqz3: step in ggev3, gges3
@defgroup laqz4 laqz4: step in ggev3, gges3
@}
@defgroup ggev_comp_grp Generalized eig computational routines
@{
@defgroup ggbal ggbal: balance matrix
@defgroup gghrd gghrd: reduction to Hessenberg
@defgroup gghd3 gghd3: reduction to Hessenberg, level 3
@defgroup hgeqz hgeqz: generalized Hessenberg eig
@defgroup ggbak ggbak: back-transform eigvec
@defgroup tgsen tgsen: reorder generalized Schur form
@defgroup tgsna tgsna: reciprocal cond est
@defgroup tgsyl tgsyl: Sylvester equation
@defgroup tgsy2 tgsy2: Sylvester equation panel (?)
@defgroup unm22 {un,or}m22: multiply by banded Q, step in gghd3
@defgroup lagv2 lagv2: 2x2 generalized Schur factor
@defgroup tgevc tgevc: eigvec of pair of matrices
@defgroup tgexc tgexc: reorder generalized Schur form
@defgroup tgex2 tgex2: reorder generalized Schur form
@}
@}
@defgroup heev_top Hermitian/symmetric eigenvalues
@{
@defgroup heev_driver_grp Standard eig driver, AV = VΛ
@{
@defgroup heev_driver --- full ---
@defgroup heev {he,sy}ev: eig, QR iteration
@defgroup heevd {he,sy}evd: eig, divide and conquer
@defgroup heevr {he,sy}evr: eig, MRRR
@defgroup heevx {he,sy}evx: eig, bisection
@defgroup heev_driver2 --- full, 2-stage ---
@defgroup heev_2stage {he,sy}ev_2stage: eig, QR iteration
@defgroup heevd_2stage {he,sy}evd_2stage: eig, divide and conquer
@defgroup heevr_2stage {he,sy}evr_2stage: eig, MRRR
@defgroup heevx_2stage {he,sy}evx_2stage: eig, bisection
@defgroup hpev_driver --- packed ---
@defgroup hpev {hp,sp}ev: eig, QR iteration
@defgroup hpevd {hp,sp}evd: eig, divide and conquer
@defgroup hpevx {hp,sp}evx: eig, bisection
@defgroup hbev_driver --- banded ---
@defgroup hbev {hb,sb}ev: eig, QR iteration
@defgroup hbevd {hb,sb}evd: eig, divide and conquer
@defgroup hbevx {hb,sb}evx: eig, bisection
@defgroup hbev_driver2 --- banded, 2nd-stage ---
@defgroup hbev_2stage {hb,sb}ev_2stage: eig, QR iteration
@defgroup hbevd_2stage {hb,sb}evd_2stage: eig, divide and conquer
@defgroup hbevx_2stage {hb,sb}evx_2stage: eig, bisection
@defgroup stev_driver --- tridiagonal ---
@defgroup stev stev: eig, QR iteration
@defgroup stevd stevd: eig, divide and conquer
@defgroup stevr stevr: eig, MRRR
@defgroup stevx stevx: eig, bisection
@defgroup pteqr pteqr: eig, positive definite tridiagonal
@defgroup stebz stebz: eig, Kahan
@defgroup sterf sterf: eig, QR iteration
@defgroup stedc stedc: eig, divide and conquer
@defgroup stegr stegr: eig, bisection, see stemr
@defgroup stein stein: eig, inverse iteration
@defgroup stemr stemr: eig, relatively robust representation (RRR)
@defgroup steqr steqr: eig, QR iteration
@}
@defgroup hegv_driver_grp Generalized eig driver, AV = BVΛ, etc.
@{
@defgroup hegv_driver --- full ---
@defgroup hegv {he,sy}gv: eig, QR iteration
@defgroup hegv_2stage {he,sy}gv_2stage: eig, QR iteration, 2-stage
@defgroup hegvd {he,sy}gvd: eig, divide and conquer
@defgroup hegvx {he,sy}gvx: eig, bisection
@defgroup hpgv_driver --- packed ---
@defgroup hpgv {hp,sp}gv: eig, QR iteration
@defgroup hpgvd {hp,sp}gvd: eig, divide and conquer
@defgroup hpgvx {hp,sp}gvx: eig, bisection
@defgroup hbgv_driver --- banded ---
@defgroup hbgv {hb,sb}gv: eig, QR iteration
@defgroup hbgvd {hb,sb}gvd: eig, divide and conquer
@defgroup hbgvx {hb,sb}gvx: eig, bisection
@}
@defgroup heev_comp_grp Eig computational routines
@{
@defgroup heev_comp --- full ---
@defgroup disna disna: eig condition numbers
@defgroup hetrd {he,sy}trd: reduction to tridiagonal
@defgroup hetd2 {he,sy}td2: reduction to tridiagonal, level 2
@defgroup latrd latrd: step in hetrd
@defgroup ungtr {un,or}gtr: generate Q from hetrd
@defgroup unmtr {un,or}mtr: multiply by Q from hetrd
@defgroup hetrd_2stage {he,sy}trd_2stage: reduction to tridiagonal, 2-stage
@defgroup hetrd_he2hb {he,sy}trd_he2hb: full to band (1st stage)
@defgroup hetrd_hb2st {he,sy}trd_hb2st: band to tridiagonal (2nd stage)
@defgroup hb2st_kernels {hb,sb}2st_kernels: band to tridiagonal (2nd stage)
@defgroup lae2 lae2: 2x2 eig, step in steqr, stemr
@defgroup laesy laesy: 2x2 eig
@defgroup laev2 laev2: 2x2 eig
@defgroup lagtf lagtf: LU factor of (T - λI)
@defgroup lagts lagts: LU solve of (T - λI) x = y
@defgroup hpev_comp --- packed ---
@defgroup hptrd {hp,sp}trd: reduction to tridiagonal
@defgroup upgtr {up,op}gtr: generate Q from hetrd
@defgroup upmtr {up,op}mtr: multiply by Q from hptrd
@defgroup hbev_comp --- banded ---
@defgroup hbtrd {hb,sb}trd: reduction to tridiagonal
@}
@defgroup hegv_comp_grp Generalized eig computational routines
@{
@defgroup hegst {he,sy}gst: reduction to standard form
@defgroup hegs2 {he,sy}gs2: reduction to standard form, level 2
@defgroup hpgst {hp,sp}gst: reduction to standard form, packed
@defgroup hbgst {hb,sb}gst: reduction to standard form, banded
@defgroup pbstf pbstf: split Cholesky factor, use with hbgst
@defgroup lag2 lag2: 2x2 eig
@}
@defgroup stev_comp_grp tridiag bisection routines
@{
@defgroup laebz laebz: counts eigvals <= value
@defgroup laneg laneg: Sturm count
@}
@defgroup laed_comp_grp tridiag divide and conquer (D&C) routines
@{
@defgroup laed0 laed0: D&C step: top level solver
@defgroup laed1 laed1: D&C step: merge subproblems
@defgroup laed2 laed2: D&C step: deflation
@defgroup laed3 laed3: D&C step: secular equation
@defgroup laed4 laed4: D&C step: secular equation nonlinear solver
@defgroup laed5 laed5: D&C step: secular equation, 2x2
@defgroup laed6 laed6: D&C step: secular equation Newton step
@defgroup lamrg lamrg: permutation to merge 2 sorted lists
@defgroup laed_comp2 --- eig value only or update Q ---
@defgroup laed7 laed7: D&C step: merge subproblems
@defgroup laed8 laed8: D&C step: deflation
@defgroup laed9 laed9: D&C step: secular equation
@defgroup laeda laeda: D&C step: z vector
@}
@defgroup larr_comp_grp tridiag RRR routines
@{
@defgroup larra larra: step in stemr
@defgroup larrb larrb: step in stemr
@defgroup larrc larrc: step in stemr
@defgroup larrd larrd: step in stemr, tridiag eig
@defgroup larre larre: step in stemr
@defgroup larrf larrf: step in stemr, find relative robust representation (RRR)
@defgroup larrj larrj: step in stemr, refine eigval estimates
@defgroup larrk larrk: step in stemr, compute one eigval
@defgroup larrr larrr: step in stemr, test to do expensive tridiag eig algorithm
@defgroup larrv larrv: eig tridiagonal, step in stemr & stegr
@defgroup lar1v lar1v: step in larrv, hence stemr & stegr
@}
@}
@defgroup svd_top Singular Value Decomposition (SVD)
@{
@defgroup svd_driver_grp Standard SVD driver, A = UΣV^H
@{
@defgroup gesvd_driver --- full ---
@defgroup gesvd gesvd: SVD, QR iteration
@defgroup gesvdq gesvdq: SVD, QR with pivoting
@defgroup gesdd gesdd: SVD, divide and conquer
@defgroup gesvdx gesvdx: SVD, bisection
@defgroup gejsv gejsv: SVD, Jacobi, high-level
@defgroup gesvj gesvj: SVD, Jacobi, low-level
@defgroup bdsvd_driver --- bidiagonal ---
@defgroup bdsqr bdsqr: bidiagonal SVD, QR iteration (dqds)
@defgroup bdsdc bdsdc: bidiagonal SVD, divide and conquer
@defgroup bdsvdx bdsvdx: bidiagonal SVD, bisection
@}
@defgroup ggsvd_driver_grp Generalized SVD driver
@{
@defgroup ggsvd3 ggsvd3: SVD, QR iteration
@}
@defgroup gesvd_comp_grp SVD computational routines
@{
@defgroup gebrd gebrd: reduction to bidiagonal
@defgroup gebd2 gebd2: reduction to bidiagonal, level 2
@defgroup labrd labrd: step in gebrd
@defgroup gbbrd gbbrd: band to bidiagonal
@defgroup ungbr {un,or}gbr: generate Q, P from gebrd
@defgroup unmbr {un,or}mbr: multiply by Q, P from gebrd
@defgroup gesvd_aux --- auxiliary routines ---
@defgroup gsvj0 gsvj0: step in gesvj
@defgroup gsvj1 gsvj1: step in gesvj
@defgroup las2 las2: 2x2 triangular SVD
@defgroup lasv2 lasv2: 2x2 triangular SVD
@defgroup lartgs lartgs: generate plane rotation for bidiag SVD
@}
@defgroup ggsvd_comp_grp Generalized SVD computational routines
@{
@defgroup ggsvp3 ggsvp3: step in ggsvd
@defgroup tgsja tgsja: generalized SVD of trapezoidal matrices, step in ggsvd3
@defgroup lags2 lags2: 2x2 orthogonal factor, step in tgsja
@defgroup lapll lapll: linear dependence of 2 vectors
@}
@defgroup lasq_comp_grp bidiag QR iteration routines
@{
@defgroup lasq1 lasq1: dqds step
@defgroup lasq2 lasq2: dqds step
@defgroup lasq3 lasq3: dqds step
@defgroup lasq4 lasq4: dqds step
@defgroup lasq5 lasq5: dqds step
@defgroup lasq6 lasq6: dqds step
@}
@defgroup lasd_comp_grp bidiag D&C routines
@{
@defgroup lasd0 lasd0: D&C step: top level solver
@defgroup lasdt lasdt: D&C step: tree
@defgroup lasd1 lasd1: D&C step: merge subproblems
@defgroup lasd2 lasd2: D&C step: deflation
@defgroup lasd3 lasd3: D&C step: secular equation
@defgroup lasd4 lasd4: D&C step: secular equation nonlinear solver
@defgroup lasd5 lasd5: D&C step: secular equation, 2x2
@defgroup lasdq lasdq: D&C step: leaf using bdsqr
@defgroup lasd_comp2 --- singular values only or factored form ---
@defgroup lasda lasda: D&C step: top level solver
@defgroup lasd6 lasd6: D&C step: merge subproblems
@defgroup lasd7 lasd7: D&C step: deflation
@defgroup lasd8 lasd8: D&C step: secular equation
@}
@}
@defgroup blas_like_top BLAS-like
@{
@defgroup set_grp Initialize, copy, convert
@{
@defgroup laset laset: set matrix
@defgroup larnv larnv: random vector
@defgroup laruv laruv: random uniform vector
@defgroup lacpy lacpy: copy matrix
@defgroup lacp2 lacp2: general matrix, convert real to complex
@defgroup _lag2_ _lag2_: general matrix, convert double <=> single
@defgroup _lat2_ _lat2_: triangular matrix, convert double <=> single
@defgroup tfttp tfttp: triangular matrix, RFP (tf) to packed (tp)
@defgroup tfttr tfttr: triangular matrix, RFP (tf) to full (tr)
@defgroup tpttf tpttf: triangular matrix, packed (tp) to RFP (tf)
@defgroup tpttr tpttr: triangular matrix, packed (tp) to full (tr)
@defgroup trttf trttf: triangular matrix, full (tr) to RFP (tf)
@defgroup trttp trttp: triangular matrix, full (tr) to packed (tp)
@}
@defgroup norm_grp Matrix norm
@{
@defgroup lange lange: general matrix
@defgroup langb langb: general matrix, banded
@defgroup langt langt: general matrix, tridiagonal
@defgroup lanhs lanhs: Hessenberg
@defgroup lanhe lan{he,sy}: Hermitian/symmetric matrix
@defgroup lanhf lan{hf,sf}: Hermitian/symmetric matrix, RFP
@defgroup lanhp lan{hp,sp}: Hermitian/symmetric matrix, packed
@defgroup lanhb lan{hb,sb}: Hermitian/symmetric matrix, banded
@defgroup lanht lan{ht,st}: Hermitian/symmetric matrix, tridiagonal
@defgroup lantr lantr: triangular matrix
@defgroup lantp lantp: triangular matrix, packed
@defgroup lantb lantb: triangular matrix, banded
@}
@defgroup blas0_like_grp Scalar operations
@{
@defgroup isnan isnan: test for NaN
@defgroup laisnan laisnan: test for NaN, unoptimized
@defgroup ladiv ladiv: complex divide
@defgroup lapy2 lapy2: robust sqrt( x^2 + y^2 )
@defgroup lapy3 lapy3: robust sqrt( x^2 + y^2 + z^2 )
@defgroup larmm larmm: scale factor to avoid overflow, step in latrs
@}
@defgroup blas1_like_grp Level 1 BLAS-like vector ops
@{
@defgroup lacgv lacgv: conjugate vector
@defgroup lasrt lasrt: sort vector
@defgroup lassq lassq: sum-of-squares, avoiding over/underflow
@defgroup rscl rscl: scale vector by reciprocal
@}
@defgroup blas2_like_grp Level 2 BLAS-like matrix-vector ops
@{
@defgroup ilalc ilalc: find non-zero col
@defgroup ilalr ilalr: find non-zero row
@defgroup lascl lascl: scale matrix
@defgroup la_geamv la_geamv: matrix-vector multiply |A| * |x|, general
@defgroup la_gbamv la_gbamv: matrix-vector multiply |A| * |x|, general banded
@defgroup la_heamv la_heamv: matrix-vector multiply |A| * |x|, Hermitian/symmetric
@defgroup lascl2 lascl2: diagonal scale matrix, A = D A
@defgroup larscl2 larscl2: reciprocal diagonal scale matrix, A = D^{-1} A
@defgroup la_wwaddw la_wwaddw: add to double-double or single-single vector
@}
@defgroup blas3_like_grp Level 3 BLAS-like matrix-matrix ops
@{
@defgroup lagtm lagtm: tridiagonal matrix-matrix multiply
@defgroup lacrm lacrm: complex * real matrix-matrix multiply
@defgroup larcm larcm: real * complex matrix-matrix multiply
@defgroup hfrk hfrk: Hermitian rank-k update, RFP format
@defgroup tfsm tfsm: triangular-matrix solve, RFP format
@}
@}
@defgroup aux_top Auxiliary routines
@{
@defgroup aux_grp Other auxiliary routines
@{
@defgroup lsame lsame: string comparison
@defgroup lsamen lsamen: string comparison
@defgroup roundup_lwork roundup_lwork: fix rounding integer to float
@defgroup second second: wall clock timer
@}
@defgroup params_grp Parameters
@{
@defgroup lamch lamch: machine parameters
@defgroup lamc1 lamc1: ??
@defgroup lamc2 lamc2: ??
@defgroup lamc3 lamc3: ??
@defgroup lamc4 lamc4: ??
@defgroup lamc5 lamc5: ??
@defgroup labad labad: over/underflow on obsolete pre-IEEE machines
@defgroup ilaver ilaver: LAPACK version
@defgroup ilaenv ilaenv: tuning parameters
@defgroup ilaenv2stage ilaenv2stage: tuning parameters for 2-stage eig
@defgroup iparam2stage iparam2stage: sets parameters for 2-stage eig
@defgroup ieeeck ieeeck: verify inf and NaN are safe
@defgroup la_constants la_constants: Fortran 95 module of constants
@defgroup blast_aux --- BLAST constants ---
@defgroup iladiag iladiag: diag string to BLAST const
@defgroup ilaprec ilaprec: precision string to BLAST const
@defgroup ilatrans ilatrans: trans string to BLAST const
@defgroup ilauplo ilauplo: uplo string to BLAST const
@defgroup la_transtype la_transtype: BLAST const to string
@}
@defgroup xerbla_grp Error reporting
@{
@defgroup xerbla xerbla: error reporting
@defgroup xerbla_array xerbla_array: error reporting, callable from C
@}
@}
@}
@defgroup blas_top BLAS
BLAS are defined by three papers:
Basic linear algebra subprograms for {FORTRAN} usage, Lawson et al, 1979.
An extended set of {FORTRAN} basic linear algebra subprograms, Dongarra et al, 1988.
A set of level 3 basic linear algebra subprograms, Dongarra et al, 1990.
Some BLAS-like routines (e.g., csymv, crot, csum1, icmax1) exist in
LAPACK rather than the classic BLAS.
These were extended by the Extra Precision BLAS (XBLAS, not documented here)
https://www.netlib.org/xblas/
@{
@defgroup scalar_grp Scalar operations
@{
@defgroup abs1 abs1: | real( x ) | + | imag( x ) |
@}
@defgroup blas1_grp Level 1 BLAS: vector ops
@{
@defgroup asum asum: sum | real( x_i ) | + | imag( x_i ) |
@defgroup sum1 sum1: sum | x_i | (in LAPACK)
@defgroup axpy axpy: y = ax + y
@defgroup copy copy: y = x
@defgroup dot dot: x^H x and x^T x
@defgroup iamax iamax: argmax_i | real( x_i ) | + | imag( x_i ) |
@defgroup imax1 imax1: argmax_i | x_i | (in LAPACK)
@defgroup nrm2 nrm2: || x ||_2
@defgroup scal scal: x = alpha x
@defgroup swap swap: x <=> y
@defgroup rot_comp --- Givens/Jacobi plane rotations ---
@defgroup rot rot: apply plane rotation ([cz]rot in LAPACK)
@defgroup rotg rotg: generate plane rotation (cf. lartg)
@defgroup rotm rotm: apply modified (fast) plane rotation
@defgroup rotmg rotmg: generate modified (fast) plane rotation
@}
@defgroup blas2_grp Level 2 BLAS: matrix-vector ops
@{
@defgroup blas2_full --- full ---
@defgroup gemv gemv: general matrix-vector multiply
@defgroup ger ger: general matrix rank-1 update
@defgroup hemv {he,sy}mv: Hermitian/symmetric matrix-vector multiply ([cz]symv in LAPACK)
@defgroup her {he,sy}r: Hermitian/symmetric rank-1 update
@defgroup her2 {he,sy}r2: Hermitian/symmetric rank-2 update
@defgroup trmv trmv: triangular matrix-vector multiply
@defgroup trsv trsv: triangular matrix-vector solve
@defgroup blas2_packed --- packed ---
@defgroup hpmv {hp,sp}mv: Hermitian/symmetric matrix-vector multiply
@defgroup hpr {hp,sp}r: Hermitian/symmetric rank-1 update
@defgroup hpr2 {hp,sp}r2: Hermitian/symmetric rank-2 update
@defgroup tpmv tpmv: triangular matrix-vector multiply
@defgroup tpsv tpsv: triangular matrix-vector solve
@defgroup blas2_banded --- banded ---
@defgroup gbmv gbmv: general matrix-vector multiply
@defgroup hbmv {hb,sb}mv: Hermitian/symmetric matrix-vector multiply
@defgroup tbmv tbmv: triangular matrix-vector multiply
@defgroup tbsv tbsv: triangular matrix-vector solve
@}
@defgroup blas3_grp Level 3 BLAS: matrix-matrix ops
@{
@defgroup gemm gemm: general matrix-matrix multiply
@defgroup hemm {he,sy}mm: Hermitian/symmetric matrix-matrix multiply
@defgroup herk {he,sy}rk: Hermitian/symmetric rank-k update
@defgroup her2k {he,sy}r2k: Hermitian/symmetric rank-2k update
@defgroup trmm trmm: triangular matrix-matrix multiply
@defgroup trsm trsm: triangular matrix-matrix solve
@}
@}
**/