### Table Of Contents

- Low-level LAPACK functions (`scipy.linalg.lapack`)
  - Finding functions
  - All functions

#### Previous topic

scipy.linalg.blas.zsyr2k

#### Next topic

scipy.linalg.lapack.sgbsv

# Low-level LAPACK functions (`scipy.linalg.lapack`)

This module contains low-level functions from the LAPACK library.

The *gegv family of routines have been removed from LAPACK 3.6.0 and have been deprecated in SciPy 0.17.0. They will be removed in a future release.

New in version 0.12.0.

Warning

These functions do little to no error checking. It is possible to cause crashes by mis-using them, so prefer using the higher-level routines in `scipy.linalg`.

## Finding functions

`get_lapack_funcs`(names[, arrays, dtype]) | Return available LAPACK function objects from names.

## All functions

`sgbsv`(kl,ku,ab,b,[overwrite_ab,overwrite_b]) | Wrapper for `sgbsv`.
`dgbsv`(kl,ku,ab,b,[overwrite_ab,overwrite_b]) | Wrapper for `dgbsv`.
`cgbsv`(kl,ku,ab,b,[overwrite_ab,overwrite_b]) | Wrapper for `cgbsv`.
`zgbsv`(kl,ku,ab,b,[overwrite_ab,overwrite_b]) | Wrapper for `zgbsv`.
`sgbtrf`(ab,kl,ku,[m,n,ldab,overwrite_ab]) | Wrapper for `sgbtrf`.
`dgbtrf`(ab,kl,ku,[m,n,ldab,overwrite_ab]) | Wrapper for `dgbtrf`.
`cgbtrf`(ab,kl,ku,[m,n,ldab,overwrite_ab]) | Wrapper for `cgbtrf`.
`zgbtrf`(ab,kl,ku,[m,n,ldab,overwrite_ab]) | Wrapper for `zgbtrf`.
`sgbtrs`(...) | Wrapper for `sgbtrs`.
`dgbtrs`(...) | Wrapper for `dgbtrs`.
`cgbtrs`(...) | Wrapper for `cgbtrs`.
`zgbtrs`(...) | Wrapper for `zgbtrs`.
`sgebal`(a,[scale,permute,overwrite_a]) | Wrapper for `sgebal`.
`dgebal`(a,[scale,permute,overwrite_a]) | Wrapper for `dgebal`.
`cgebal`(a,[scale,permute,overwrite_a]) | Wrapper for `cgebal`.
`zgebal`(a,[scale,permute,overwrite_a]) | Wrapper for `zgebal`.
`sgees`(...) | Wrapper for `sgees`.
`dgees`(...) | Wrapper for `dgees`.
`cgees`(...) | Wrapper for `cgees`.
`zgees`(...) | Wrapper for `zgees`.
`sgeev`(...) | Wrapper for `sgeev`.
`dgeev`(...) | Wrapper for `dgeev`.
`cgeev`(...) | Wrapper for `cgeev`.
`zgeev`(...) | Wrapper for `zgeev`.
`sgeev_lwork`(n,[compute_vl,compute_vr]) | Wrapper for `sgeev_lwork`.
`dgeev_lwork`(n,[compute_vl,compute_vr]) | Wrapper for `dgeev_lwork`.
`cgeev_lwork`(n,[compute_vl,compute_vr]) | Wrapper for `cgeev_lwork`.
`zgeev_lwork`(n,[compute_vl,compute_vr]) | Wrapper for `zgeev_lwork`.
`sgegv`(*args, **kwds) | `sgegv` is deprecated!
`dgegv`(*args, **kwds) | `dgegv` is deprecated!
`cgegv`(*args, **kwds) | `cgegv` is deprecated!
`zgegv`(*args, **kwds) | `zgegv` is deprecated!
`sgehrd`(a,[lo,hi,lwork,overwrite_a]) | Wrapper for `sgehrd`.
`dgehrd`(a,[lo,hi,lwork,overwrite_a]) | Wrapper for `dgehrd`.
`cgehrd`(a,[lo,hi,lwork,overwrite_a]) | Wrapper for `cgehrd`.
`zgehrd`(a,[lo,hi,lwork,overwrite_a]) | Wrapper for `zgehrd`.
`sgehrd_lwork`(n,[lo,hi]) | Wrapper for `sgehrd_lwork`.
`dgehrd_lwork`(n,[lo,hi]) | Wrapper for `dgehrd_lwork`.
`cgehrd_lwork`(n,[lo,hi]) | Wrapper for `cgehrd_lwork`.
`zgehrd_lwork`(n,[lo,hi]) | Wrapper for `zgehrd_lwork`.
`sgelss`(a,b,[cond,lwork,overwrite_a,overwrite_b]) | Wrapper for `sgelss`.
`dgelss`(a,b,[cond,lwork,overwrite_a,overwrite_b]) | Wrapper for `dgelss`.
`cgelss`(a,b,[cond,lwork,overwrite_a,overwrite_b]) | Wrapper for `cgelss`.
`zgelss`(a,b,[cond,lwork,overwrite_a,overwrite_b]) | Wrapper for `zgelss`.
`sgelss_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `sgelss_lwork`.
`dgelss_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `dgelss_lwork`.
`cgelss_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `cgelss_lwork`.
`zgelss_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `zgelss_lwork`.
`sgelsd`(...) | Wrapper for `sgelsd`.
`dgelsd`(...) | Wrapper for `dgelsd`.
`cgelsd`(...) | Wrapper for `cgelsd`.
`zgelsd`(...) | Wrapper for `zgelsd`.
`sgelsd_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `sgelsd_lwork`.
`dgelsd_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `dgelsd_lwork`.
`cgelsd_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `cgelsd_lwork`.
`zgelsd_lwork`(m,n,nrhs,[cond,lwork]) | Wrapper for `zgelsd_lwork`.
`sgelsy`(...) | Wrapper for `sgelsy`.
`dgelsy`(...) | Wrapper for `dgelsy`.
`cgelsy`(...) | Wrapper for `cgelsy`.
`zgelsy`(...) | Wrapper for `zgelsy`.
`sgelsy_lwork`(m,n,nrhs,cond,[lwork]) | Wrapper for `sgelsy_lwork`.
`dgelsy_lwork`(m,n,nrhs,cond,[lwork]) | Wrapper for `dgelsy_lwork`.
`cgelsy_lwork`(m,n,nrhs,cond,[lwork]) | Wrapper for `cgelsy_lwork`.
`zgelsy_lwork`(m,n,nrhs,cond,[lwork]) | Wrapper for `zgelsy_lwork`.
`sgeqp3`(a,[lwork,overwrite_a]) | Wrapper for `sgeqp3`.
`dgeqp3`(a,[lwork,overwrite_a]) | Wrapper for `dgeqp3`.
`cgeqp3`(a,[lwork,overwrite_a]) | Wrapper for `cgeqp3`.
`zgeqp3`(a,[lwork,overwrite_a]) | Wrapper for `zgeqp3`.
`sgeqrf`(a,[lwork,overwrite_a]) | Wrapper for `sgeqrf`.
`dgeqrf`(a,[lwork,overwrite_a]) | Wrapper for `dgeqrf`.
`cgeqrf`(a,[lwork,overwrite_a]) | Wrapper for `cgeqrf`.
`zgeqrf`(a,[lwork,overwrite_a]) | Wrapper for `zgeqrf`.
`sgerqf`(a,[lwork,overwrite_a]) | Wrapper for `sgerqf`.
`dgerqf`(a,[lwork,overwrite_a]) | Wrapper for `dgerqf`.
`cgerqf`(a,[lwork,overwrite_a]) | Wrapper for `cgerqf`.
`zgerqf`(a,[lwork,overwrite_a]) | Wrapper for `zgerqf`.
`sgesdd`(...) | Wrapper for `sgesdd`.
`dgesdd`(...) | Wrapper for `dgesdd`.
`cgesdd`(...) | Wrapper for `cgesdd`.
`zgesdd`(...) | Wrapper for `zgesdd`.
`sgesdd_lwork`(m,n,[compute_uv,full_matrices]) | Wrapper for `sgesdd_lwork`.
`dgesdd_lwork`(m,n,[compute_uv,full_matrices]) | Wrapper for `dgesdd_lwork`.
`cgesdd_lwork`(m,n,[compute_uv,full_matrices]) | Wrapper for `cgesdd_lwork`.
`zgesdd_lwork`(m,n,[compute_uv,full_matrices]) | Wrapper for `zgesdd_lwork`.
`sgesv`(a,b,[overwrite_a,overwrite_b]) | Wrapper for `sgesv`.
`dgesv`(a,b,[overwrite_a,overwrite_b]) | Wrapper for `dgesv`.
`cgesv`(a,b,[overwrite_a,overwrite_b]) | Wrapper for `cgesv`.
`zgesv`(a,b,[overwrite_a,overwrite_b]) | Wrapper for `zgesv`.
`sgetrf`(a,[overwrite_a]) | Wrapper for `sgetrf`.
`dgetrf`(a,[overwrite_a]) | Wrapper for `dgetrf`.
`cgetrf`(a,[overwrite_a]) | Wrapper for `cgetrf`.
`zgetrf`(a,[overwrite_a]) | Wrapper for `zgetrf`.
`sgetri`(lu,piv,[lwork,overwrite_lu]) | Wrapper for `sgetri`.
`dgetri`(lu,piv,[lwork,overwrite_lu]) | Wrapper for `dgetri`.
`cgetri`(lu,piv,[lwork,overwrite_lu]) | Wrapper for `cgetri`.
`zgetri`(lu,piv,[lwork,overwrite_lu]) | Wrapper for `zgetri`.
`sgetri_lwork`(n) | Wrapper for `sgetri_lwork`.
`dgetri_lwork`(n) | Wrapper for `dgetri_lwork`.
`cgetri_lwork`(n) | Wrapper for `cgetri_lwork`.
`zgetri_lwork`(n) | Wrapper for `zgetri_lwork`.
`sgetrs`(lu,piv,b,[trans,overwrite_b]) | Wrapper for `sgetrs`.
`dgetrs`(lu,piv,b,[trans,overwrite_b]) | Wrapper for `dgetrs`.
`cgetrs`(lu,piv,b,[trans,overwrite_b]) | Wrapper for `cgetrs`.
`zgetrs`(lu,piv,b,[trans,overwrite_b]) | Wrapper for `zgetrs`.
`sgges`(...) | Wrapper for `sgges`.
`dgges`(...) | Wrapper for `dgges`.
`cgges`(...) | Wrapper for `cgges`.
`zgges`(...) | Wrapper for `zgges`.
`sggev`(...) | Wrapper for `sggev`.
`dggev`(...) | Wrapper for `dggev`.
`cggev`(...) | Wrapper for `cggev`.
`zggev`(...) | Wrapper for `zggev`.
`chbevd`(...) | Wrapper for `chbevd`.
`zhbevd`(...) | Wrapper for `zhbevd`.
`chbevx`(...) | Wrapper for `chbevx`.
`zhbevx`(...) | Wrapper for `zhbevx`.
`cheev`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `cheev`.
`zheev`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `zheev`.
`cheevd`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `cheevd`.
`zheevd`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `zheevd`.
`cheevr`(...) | Wrapper for `cheevr`.
`zheevr`(...) | Wrapper for `zheevr`.
`chegv`(...) | Wrapper for `chegv`.
`zhegv`(...) | Wrapper for `zhegv`.
`chegvd`(...) | Wrapper for `chegvd`.
`zhegvd`(...) | Wrapper for `zhegvd`.
`chegvx`(...) | Wrapper for `chegvx`.
`zhegvx`(...) | Wrapper for `zhegvx`.
`slarf`(v,tau,c,work,[side,incv,overwrite_c]) | Wrapper for `slarf`.
`dlarf`(v,tau,c,work,[side,incv,overwrite_c]) | Wrapper for `dlarf`.
`clarf`(v,tau,c,work,[side,incv,overwrite_c]) | Wrapper for `clarf`.
`zlarf`(v,tau,c,work,[side,incv,overwrite_c]) | Wrapper for `zlarf`.
`slarfg`(n,alpha,x,[incx,overwrite_x]) | Wrapper for `slarfg`.
`dlarfg`(n,alpha,x,[incx,overwrite_x]) | Wrapper for `dlarfg`.
`clarfg`(n,alpha,x,[incx,overwrite_x]) | Wrapper for `clarfg`.
`zlarfg`(n,alpha,x,[incx,overwrite_x]) | Wrapper for `zlarfg`.
`slartg`(f,g) | Wrapper for `slartg`.
`dlartg`(f,g) | Wrapper for `dlartg`.
`clartg`(f,g) | Wrapper for `clartg`.
`zlartg`(f,g) | Wrapper for `zlartg`.
`slasd4`(i,d,z,[rho]) | Wrapper for `slasd4`.
`dlasd4`(i,d,z,[rho]) | Wrapper for `dlasd4`.
`slaswp`(a,piv,[k1,k2,off,inc,overwrite_a]) | Wrapper for `slaswp`.
`dlaswp`(a,piv,[k1,k2,off,inc,overwrite_a]) | Wrapper for `dlaswp`.
`claswp`(a,piv,[k1,k2,off,inc,overwrite_a]) | Wrapper for `claswp`.
`zlaswp`(a,piv,[k1,k2,off,inc,overwrite_a]) | Wrapper for `zlaswp`.
`slauum`(c,[lower,overwrite_c]) | Wrapper for `slauum`.
`dlauum`(c,[lower,overwrite_c]) | Wrapper for `dlauum`.
`clauum`(c,[lower,overwrite_c]) | Wrapper for `clauum`.
`zlauum`(c,[lower,overwrite_c]) | Wrapper for `zlauum`.
`spbsv`(ab,b,[lower,ldab,overwrite_ab,overwrite_b]) | Wrapper for `spbsv`.
`dpbsv`(ab,b,[lower,ldab,overwrite_ab,overwrite_b]) | Wrapper for `dpbsv`.
`cpbsv`(ab,b,[lower,ldab,overwrite_ab,overwrite_b]) | Wrapper for `cpbsv`.
`zpbsv`(ab,b,[lower,ldab,overwrite_ab,overwrite_b]) | Wrapper for `zpbsv`.
`spbtrf`(ab,[lower,ldab,overwrite_ab]) | Wrapper for `spbtrf`.
`dpbtrf`(ab,[lower,ldab,overwrite_ab]) | Wrapper for `dpbtrf`.
`cpbtrf`(ab,[lower,ldab,overwrite_ab]) | Wrapper for `cpbtrf`.
`zpbtrf`(ab,[lower,ldab,overwrite_ab]) | Wrapper for `zpbtrf`.
`spbtrs`(ab,b,[lower,ldab,overwrite_b]) | Wrapper for `spbtrs`.
`dpbtrs`(ab,b,[lower,ldab,overwrite_b]) | Wrapper for `dpbtrs`.
`cpbtrs`(ab,b,[lower,ldab,overwrite_b]) | Wrapper for `cpbtrs`.
`zpbtrs`(ab,b,[lower,ldab,overwrite_b]) | Wrapper for `zpbtrs`.
`sposv`(a,b,[lower,overwrite_a,overwrite_b]) | Wrapper for `sposv`.
`dposv`(a,b,[lower,overwrite_a,overwrite_b]) | Wrapper for `dposv`.
`cposv`(a,b,[lower,overwrite_a,overwrite_b]) | Wrapper for `cposv`.
`zposv`(a,b,[lower,overwrite_a,overwrite_b]) | Wrapper for `zposv`.
`spotrf`(a,[lower,clean,overwrite_a]) | Wrapper for `spotrf`.
`dpotrf`(a,[lower,clean,overwrite_a]) | Wrapper for `dpotrf`.
`cpotrf`(a,[lower,clean,overwrite_a]) | Wrapper for `cpotrf`.
`zpotrf`(a,[lower,clean,overwrite_a]) | Wrapper for `zpotrf`.
`spotri`(c,[lower,overwrite_c]) | Wrapper for `spotri`.
`dpotri`(c,[lower,overwrite_c]) | Wrapper for `dpotri`.
`cpotri`(c,[lower,overwrite_c]) | Wrapper for `cpotri`.
`zpotri`(c,[lower,overwrite_c]) | Wrapper for `zpotri`.
`spotrs`(c,b,[lower,overwrite_b]) | Wrapper for `spotrs`.
`dpotrs`(c,b,[lower,overwrite_b]) | Wrapper for `dpotrs`.
`cpotrs`(c,b,[lower,overwrite_b]) | Wrapper for `cpotrs`.
`zpotrs`(c,b,[lower,overwrite_b]) | Wrapper for `zpotrs`.
`crot`(...) | Wrapper for `crot`.
`zrot`(...) | Wrapper for `zrot`.
`strsyl`(a,b,c,[trana,tranb,isgn,overwrite_c]) | Wrapper for `strsyl`.
`dtrsyl`(a,b,c,[trana,tranb,isgn,overwrite_c]) | Wrapper for `dtrsyl`.
`ctrsyl`(a,b,c,[trana,tranb,isgn,overwrite_c]) | Wrapper for `ctrsyl`.
`ztrsyl`(a,b,c,[trana,tranb,isgn,overwrite_c]) | Wrapper for `ztrsyl`.
`strtri`(c,[lower,unitdiag,overwrite_c]) | Wrapper for `strtri`.
`dtrtri`(c,[lower,unitdiag,overwrite_c]) | Wrapper for `dtrtri`.
`ctrtri`(c,[lower,unitdiag,overwrite_c]) | Wrapper for `ctrtri`.
`ztrtri`(c,[lower,unitdiag,overwrite_c]) | Wrapper for `ztrtri`.
`strtrs`(...) | Wrapper for `strtrs`.
`dtrtrs`(...) | Wrapper for `dtrtrs`.
`ctrtrs`(...) | Wrapper for `ctrtrs`.
`ztrtrs`(...) | Wrapper for `ztrtrs`.
`cunghr`(a,tau,[lo,hi,lwork,overwrite_a]) | Wrapper for `cunghr`.
`zunghr`(a,tau,[lo,hi,lwork,overwrite_a]) | Wrapper for `zunghr`.
`cungqr`(a,tau,[lwork,overwrite_a]) | Wrapper for `cungqr`.
`zungqr`(a,tau,[lwork,overwrite_a]) | Wrapper for `zungqr`.
`cungrq`(a,tau,[lwork,overwrite_a]) | Wrapper for `cungrq`.
`zungrq`(a,tau,[lwork,overwrite_a]) | Wrapper for `zungrq`.
`cunmqr`(side,trans,a,tau,c,lwork,[overwrite_c]) | Wrapper for `cunmqr`.
`zunmqr`(side,trans,a,tau,c,lwork,[overwrite_c]) | Wrapper for `zunmqr`.
`sgtsv`(...) | Wrapper for `sgtsv`.
`dgtsv`(...) | Wrapper for `dgtsv`.
`cgtsv`(...) | Wrapper for `cgtsv`.
`zgtsv`(...) | Wrapper for `zgtsv`.
`sptsv`(...) | Wrapper for `sptsv`.
`dptsv`(...) | Wrapper for `dptsv`.
`cptsv`(...) | Wrapper for `cptsv`.
`zptsv`(...) | Wrapper for `zptsv`.
`slamch`(cmach) | Wrapper for `slamch`.
`dlamch`(cmach) | Wrapper for `dlamch`.
`sorghr`(a,tau,[lo,hi,lwork,overwrite_a]) | Wrapper for `sorghr`.
`dorghr`(a,tau,[lo,hi,lwork,overwrite_a]) | Wrapper for `dorghr`.
`sorgqr`(a,tau,[lwork,overwrite_a]) | Wrapper for `sorgqr`.
`dorgqr`(a,tau,[lwork,overwrite_a]) | Wrapper for `dorgqr`.
`sorgrq`(a,tau,[lwork,overwrite_a]) | Wrapper for `sorgrq`.
`dorgrq`(a,tau,[lwork,overwrite_a]) | Wrapper for `dorgrq`.
`sormqr`(side,trans,a,tau,c,lwork,[overwrite_c]) | Wrapper for `sormqr`.
`dormqr`(side,trans,a,tau,c,lwork,[overwrite_c]) | Wrapper for `dormqr`.
`ssbev`(ab,[compute_v,lower,ldab,overwrite_ab]) | Wrapper for `ssbev`.
`dsbev`(ab,[compute_v,lower,ldab,overwrite_ab]) | Wrapper for `dsbev`.
`ssbevd`(...) | Wrapper for `ssbevd`.
`dsbevd`(...) | Wrapper for `dsbevd`.
`ssbevx`(...) | Wrapper for `ssbevx`.
`dsbevx`(...) | Wrapper for `dsbevx`.
`ssyev`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `ssyev`.
`dsyev`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `dsyev`.
`ssyevd`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `ssyevd`.
`dsyevd`(a,[compute_v,lower,lwork,overwrite_a]) | Wrapper for `dsyevd`.
`ssyevr`(...) | Wrapper for `ssyevr`.
`dsyevr`(...) | Wrapper for `dsyevr`.
`ssygv`(...) | Wrapper for `ssygv`.
`dsygv`(...) | Wrapper for `dsygv`.
`ssygvd`(...) | Wrapper for `ssygvd`.
`dsygvd`(...) | Wrapper for `dsygvd`.
`ssygvx`(...) | Wrapper for `ssygvx`.
`dsygvx`(...) | Wrapper for `dsygvx`.
`slange`(norm,a) | Wrapper for `slange`.
`dlange`(norm,a) | Wrapper for `dlange`.
`clange`(norm,a) | Wrapper for `clange`.
`zlange`(norm,a) | Wrapper for `zlange`.