Package org.nd4j.linalg.api.blas.impl
Class BaseLapack
- java.lang.Object
-
- org.nd4j.linalg.api.blas.impl.BaseLapack
-
-
Constructor Summary
Constructors Constructor Description BaseLapack()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voiddgeqrf(int M, int N, INDArray A, INDArray R, INDArray INFO)abstract voiddgesvd(byte jobu, byte jobvt, int M, int N, INDArray A, INDArray S, INDArray U, INDArray VT, INDArray INFO)abstract voiddgetrf(int M, int N, INDArray A, INDArray IPIV, INDArray INFO)abstract voiddpotrf(byte uplo, int N, INDArray A, INDArray INFO)abstract intdsyev(char jobz, char uplo, int N, INDArray A, INDArray R)voidgeqrf(INDArray A, INDArray R)QR decomposiiton of a matrix Factorize a matrix A such that A = QR The matrix A is overwritten by the Q component (i.e.voidgesvd(INDArray A, INDArray S, INDArray U, INDArray VT)SVD decomposiiton of a matrix Factorize a matrix into its singular vectors and eigenvalues The decomposition is such that: A = U x S x VT gesvd = singular value decomposition (SVD) of a general matrix (GE)INDArraygetLFactor(INDArray A)extracts the L (lower triangular) matrix from the LU factor result L will be the same dimensions as AINDArraygetPFactor(int M, INDArray ipiv)This method takes one of the ipiv returns from LAPACK and creates the permutation matrix.INDArraygetrf(INDArray A)LU decomposiiton of a matrix Factorize a matrix A The matrix A is overridden by the L & U combined.INDArraygetUFactor(INDArray A)extracts the U (upper triangular) matrix from the LU factor result U will be n x n matrix where n = num cols in Avoidpotrf(INDArray A, boolean lower)Triangular decomposiiton of a positive definite matrix ( cholesky ) Factorize a matrix A such that A = LL* (assuming lower==true) or A = U*U (a * represents conjugate i.e.abstract voidsgeqrf(int M, int N, INDArray A, INDArray R, INDArray INFO)Float/Double versions of QR decomp.abstract voidsgesvd(byte jobu, byte jobvt, int M, int N, INDArray A, INDArray S, INDArray U, INDArray VT, INDArray INFO)abstract voidsgetrf(int M, int N, INDArray A, INDArray IPIV, INDArray INFO)Float/Double versions of LU decomp.abstract voidspotrf(byte uplo, int N, INDArray A, INDArray INFO)Float/Double versions of cholesky decomp for positive definite matrices A = LL*abstract intssyev(char jobz, char uplo, int N, INDArray A, INDArray R)Float/Double versions of eigen value/vector calc.intsyev(char jobz, char uplo, INDArray A, INDArray V)Caclulate the eigenvalues and vectors of a symmetric matrix.
-
-
-
Method Detail
-
getrf
public INDArray getrf(INDArray A)
Description copied from interface:LapackLU decomposiiton of a matrix Factorize a matrix A The matrix A is overridden by the L & U combined. The permutation results are returned directly as a vector. To create the permutation matrix use getPFactor method To split out the L & U matrix use getLFactor and getUFactor methods getrf = triangular factorization (TRF) of a general matrix (GE)
-
sgetrf
public abstract void sgetrf(int M, int N, INDArray A, INDArray IPIV, INDArray INFO)Float/Double versions of LU decomp. This is the official LAPACK interface (in case you want to call this directly) See getrf for full details on LU Decomp- Parameters:
M- the number of rows in the matrix AN- the number of cols in the matrix AA- the matrix to factorize - data must be in column order ( create with 'f' ordering )IPIV- an output array for the permutations ( must be int based storage )INFO- error details 1 int array, a positive number (i) implies row i cannot be factored, a negative value implies paramtere i is invalid
-
potrf
public void potrf(INDArray A, boolean lower)
Description copied from interface:LapackTriangular decomposiiton of a positive definite matrix ( cholesky ) Factorize a matrix A such that A = LL* (assuming lower==true) or A = U*U (a * represents conjugate i.e. if matrix is real U* is a transpose) The matrix A is overridden by the L (or U). potrf = LU factorization of a positive definite matrix (PO) into a lower L ( or upper U ) triangular matrix
-
spotrf
public abstract void spotrf(byte uplo, int N, INDArray A, INDArray INFO)Float/Double versions of cholesky decomp for positive definite matrices A = LL*- Parameters:
uplo- which factor to return L or UA- the matrix to factorize - data must be in column order ( create with 'f' ordering )INFO- error details 1 int array, a positive number (i) implies row i cannot be factored, a negative value implies paramtere i is invalid
-
geqrf
public void geqrf(INDArray A, INDArray R)
Description copied from interface:LapackQR decomposiiton of a matrix Factorize a matrix A such that A = QR The matrix A is overwritten by the Q component (i.e. destroyed) geqrf = QR factorization of a general matrix (GE) into an orthogonal matrix Q and an upper triangular R matrix
-
sgeqrf
public abstract void sgeqrf(int M, int N, INDArray A, INDArray R, INDArray INFO)Float/Double versions of QR decomp. This is the official LAPACK interface (in case you want to call this directly) See geqrf for full details on LU Decomp- Parameters:
M- the number of rows in the matrix AN- the number of cols in the matrix AA- the matrix to factorize - data must be in column order ( create with 'f' ordering )R- an output array for other part of factorizationINFO- error details 1 int array, a positive number (i) implies row i cannot be factored, a negative value implies paramtere i is invalid
-
syev
public int syev(char jobz, char uplo, INDArray A, INDArray V)Description copied from interface:LapackCaclulate the eigenvalues and vectors of a symmetric matrix. The symmetric matrix means the results are guaranteed to be real (not complex) The matrix A is overridden by the eigenvectors. The eigenvalues are returned separately
-
ssyev
public abstract int ssyev(char jobz, char uplo, int N, INDArray A, INDArray R)Float/Double versions of eigen value/vector calc.- Parameters:
jobz- 'N' - no eigen vectors, 'V' - return eigenvectorsuplo- upper or lower part of symmetric matrix to useN- the number of rows & cols in the matrix AA- the matrix to calculate eigenvectorsR- an output array for eigenvalues ( may be null )
-
gesvd
public void gesvd(INDArray A, INDArray S, INDArray U, INDArray VT)
Description copied from interface:LapackSVD decomposiiton of a matrix Factorize a matrix into its singular vectors and eigenvalues The decomposition is such that: A = U x S x VT gesvd = singular value decomposition (SVD) of a general matrix (GE)
-
sgesvd
public abstract void sgesvd(byte jobu, byte jobvt, int M, int N, INDArray A, INDArray S, INDArray U, INDArray VT, INDArray INFO)
-
dgesvd
public abstract void dgesvd(byte jobu, byte jobvt, int M, int N, INDArray A, INDArray S, INDArray U, INDArray VT, INDArray INFO)
-
getPFactor
public INDArray getPFactor(int M, INDArray ipiv)
Description copied from interface:LapackThis method takes one of the ipiv returns from LAPACK and creates the permutation matrix. When factorizing, it is useful to avoid underflows and overflows by reordering rows/and or columns of the input matrix (mostly these methods solve simultaneous equations, so order is not important). The ipiv method assumes that only row ordering is done ( never seen column ordering done )- Specified by:
getPFactorin interfaceLapack- Parameters:
M- - the size of the permutation matrix ( usu. the # rows in factored matrix )ipiv- - the vector returned from a refactoring
-
getLFactor
public INDArray getLFactor(INDArray A)
Description copied from interface:Lapackextracts the L (lower triangular) matrix from the LU factor result L will be the same dimensions as A- Specified by:
getLFactorin interfaceLapack- Parameters:
A- - the combined L & U matrices returned from factorization
-
getUFactor
public INDArray getUFactor(INDArray A)
Description copied from interface:Lapackextracts the U (upper triangular) matrix from the LU factor result U will be n x n matrix where n = num cols in A- Specified by:
getUFactorin interfaceLapack- Parameters:
A- - the combined L & U matrices returned from factorization
-
-