 ## Function List

This page contains the comprehensive function list of the CULAPACK linear algebra routines available in CULA and their LAPACK equivalents. For more details on specific routines, please see the CULA API Reference Manual available online and available for download.

## Linear Equation Routines

CULA contains the following LAPACK function equivalents from the linear equations family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Solves a general system of linear equations AX=B. `SGESV` `CGESV` `DGESV` `ZGESV`
Solves a general system of linear equations AX=B with iterative refinement. `-` `-` `DSGESV` `ZCGESV`
Computes an LU factorization of a general matrix, using partial pivoting with row interchanges. `SGETRF` `CGETRF` `DGETRF` `ZGETRF`
Computes the inverse of a general matrix, using the LU factorization. `SGETRI` `CGETRI` `DGETRI` `ZGETRI`
Solves a general system of linear equations AX=B, ATX=B, or AHX=B, using the LU factorization. `SGETRS` `CGETRS` `DGETRS` `ZGETRS`
Positive Definite Solves a symmetric positive definite system of linear equations AX=B. `SPOSV` `CPOSV` `DPOSV` `ZPOSV`
Computes the Cholesky factorization of a symmetric positive definite matrix. `SPOTRF` `CPOTRF` `DPOTRF` `ZPOTRF`
Solves a symmetric positive definite system of linear equations AX=B, using the Cholesky factorization. `SPOTRS` `CPOTRS` `DPOTRS` `ZPOTRS`
Triangular Solves a triangular system of linear equations AX=B, ATX=B, or AHX=B. `STRTRS` `CTRTRS` `DTRTRS` `ZTRTRS`
Computes the inverse of a triangular matrix. `STRTRI` `CTRTRI` `DTRTRI` `ZTRTRI`
General Banded Computes an LU factorization of a real m-by-n band matrix A using partial pivoting with row interchanges. `SGBTRF` `CGBTRF` `DGBTRF` `ZGBTRF`
Positive Definite Banded Computes the Cholesky factorization of a real symmetric positive definite band matrix A. `SPBTRF` `CPBTRF` `DPBTRF` `ZPBTRF` ## Orthogonal Factorizations

CULA contains the following LAPACK function equivalents from the orthogonal factorization family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General, QR Computes a QR factorization of a general rectangular matrix. `SGEQRF` `CGEQRF` `DGEQRF` `ZGEQRF`
Computes a QR factorization of a general rectangular matrix, avoiding denorms. `SGEQRFP` `CGEQRFP` `DGEQRFP` `ZGEQRFP`
Generates all or part of the orthogonal matrix Q from a QR factorization. `SORGQR` `CUNGQR` `DORGQR` `ZUNGQR`
Multiplies a general matrix by the orthogonal matrix from a QR factorization. `SORMQR` `CUNMQR` `DORMQR` `ZUNMQR`
General, LQ Computes a LQ factorization of a general rectangular matrix. `SGELQF` `CGELQF` `DGELQF` `ZGELQF`
Generates all or part of the orthogonal matrix Q from a LQ factorization. `SORLQR` `CUNGLQ` `DORGLQ` `ZUNGLQ`
Multiplies a general matrix by the orthogonal matrix from a LQ factorization. `SORMLQ` `CUNMLQ` `DORMLQ` `ZUNMLQ`
General, RQ Computes a RQ factorization of a general rectangular matrix. `SGERQF` `CGERQF` `DGERQF` `ZGERQF`
Computes a generalized RQ factorization of a pair of matrices. `SGGRQF` `CGGRQG` `DGGRQF` `ZGGRQF`
Generates all or part of the orthogonal matrix Q from a RQ factorization. `SORRQR` `CUNGRQ` `DORGRQ` `ZUNGRQ`
Multiplies a general matrix by the orthogonal matrix from a RQ factorization. `SORMRQ` `CUNMRQ` `DORMRQ` `ZUNMRQ`
General, QL Computes a QL factorization of a general rectangular matrix. `SGEQLF` `CGEQLF` `DGEQLF` `ZGEQLF`
Generates all or part of the orthogonal matrix Q from a QL factorization. `SORQLR` `CUNGQL` `DORGQL` `ZUNGQL`
Multiplies a general matrix by the orthogonal matrix from a QL factorization. `SORMQL` `CUNMQL` `DORMQL` `ZUNMQL` ## Least Squares Routines

CULA contains the following LAPACK function equivalents from the least squares solver family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Computes the least squares solution to an over-determined system of linear equations, AX=B, ATX=B, or AHX=B, or the minimum norm solution of an under-determined system, where A is a general rectangular matrix of full rank, using a QR or LQ factorization. `SGELS` `CGELS` `DGELS` `ZGELS`
Solves the LSE (Constrained Linear Least Squares Problem) using the GRQ (Generalized RQ) factorization. `SGGLSE` `CGGLSE` `DGGLSE` `ZGGLSE` ## Symmetric Eigenvalue Routines

CULA contains the following LAPACK function equivalents from the symmetric Eigenproblem family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
Symmetric Computes all eigenvalues, and optionally, eigenvectors of a real symmetric matrix `SSYEV` `CHEEV` `DSYEV` `ZHEEV`
Computes selected eigenvalues and eigenvectors of a symmetric matrix. `SSYEVX` `CHEEVX` `DSYEVX` `ZHEEVX`
Reduces a real symmetric matrix to tridiagonal form with Successive Bandwidth Reduction approach. `SSYRDB` `CHERDB` `DSYRDB` `ZHERDB`
Tridiagonal Computes selected eigenvalues of a real symmetric tridiagonal matrix by bisection. `SSTEBZ` `-` `DSTEBZ` `-`
Computes all eigenvalues and eigenvectors of a real symmetric tridiagonal matrix, using the implicit QL or QR algorithm. `SSTEQR` `CSTEQR` `DSTEQR` `ZSTEQR` ## Non-Symmetric Eigenvalue Routines

CULA contains the following LAPACK function equivalents from the non-symmetric Eigenproblem family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Computes the eigenvalues and left and right eigenvectors of a general matrix. `SGEEV` `CGEEV` `DGEEV` `ZGEEV`
Reduces a general matrix to upper Hessenberg form by an orthogonal similarity transformation. `SGEHRD` `CGEHRD` `DGEHRD` `ZGEHRD`
Generates the orthogonal transformation matrix from a reduction to Hessenberg form. `SORGHR` `CUNGHR` `DORGHR` `ZUNGHR` ## Singular Value Decomposition Routines

CULA contains the following LAPACK function equivalents from the Singular Value Decomposition family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Computes the singular value decomposition (SVD) of a general rectangular matrix. `SGESVD` `CGESVD` `DGESVD` `ZGESVD`
Reduces a general rectangular matrix to real bidiagonal form by an orthogonal transformation. `SGEBRD` `CGEBRD` `DGEBRD` `ZGEBRD`
Generates the orthogonal transformation matrices from a reduction to bidiagonal form. `SORGBR` `CUNGBR` `DORGBR` `ZORGBR`
Bidiagonal Computes the singular value decomposition (SVD) of a real bidiagonal matrix, using the bidiagonal QR algorithm. `SBDSQR` `CBDSQR` `DBDSQR` `ZBDSQR` ## Auxiliary Routines

CULA contains the following LAPACK function equivalents from the auxiliary family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Copies all or part of a two-dimensional matrix to another matrix. `SLACPY` `CLACPY` `DLACPY` `ZLACPY`
Converts a matrix to a higher or lower precision. `SLAG2D` `CLAG2Z` `DLAG2S` `ZLAG2D`
Applies a block reflector to a matrix. `SLARFB` `CLARFB` `DLARFB` `ZLARFB`
Generates an elementary reflector. `SLARFG` `CLARFG` `DLARFG` `ZLARFG`
Generates a vector of plane rotations. `SLARGV` `CLARGV` `DLARGV` `ZLARGV`
Applies a vector of plane rotations to a sequence of vectors. `SLARTV` `CLARTV` `DLARTV` `ZLARTV`
Multiplies a matrix by a scalar. `SLASCL` `CLASCL` `DLASCL` `ZLASCL`
Initialized a matrix with one value on the diagonal and another value on the off-diagonals. `SLASET` `CLASET` `DLASET` `ZLASET`
Applies a sequence of plane rotations to a matrix. `SLASR` `CLASR` `DLASR` `ZLASR`
Symmetric Applies a vector of plane rotations to a sequence of matrices. `SLAR2V` `CLAR2V` `DLAR2V` `ZLAR2V`
Triangular Converts a triangular matrix to a higher or lower precision. `SLAT2D` `CLAT2Z` `DLAT2S` `ZLAT2D` ## Unique Auxiliary Routines

CULA contains the following unique auxiliary routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Conjugates each individual element in a matrix. `-` `CGECONJUGATE` `-` `ZGECONJUGATE`
Checks for NaN in matrix. `SGENANCHECK` `CGENANCHECK` `DGENANCHECK` `ZGENANCHECK`
Performs an out-of-place transpose from one matrix into another. `SGETRANSPOSE` `CGETRANSPOSE` `DGETRANSPOSE` `ZGETRANSPOSE`
Performs an out-of-place transpose from one matrix into another, additionally conjugating the off-diagonal elements. `-` ```CGETRANSPOSE_ CONJUGATE``` `-` ```ZGETRANSPOSE_ CONJUGATE```
Performs an in-place transpose of a matrix. `SGETRANSPOSE` `CGETRANSPOSE` `DGETRANSPOSE` `ZGETRANSPOSE`
Performs an in-place transpose of a matrix, additionally conjugating the off-diagonal elements. `-` ```CGETRANSPOSE_ CONJUGATE_ INPLACE``` `-` ```ZGETRANSPOSE_ CONJUGATE_ INPLACE```
Triangular Conjugates each individual element in a triangular matrix. `-` `CTRCONJUGATE` `-` `ZTRCONJUGATE`