Package org.nd4j.linalg.factory
Class BaseBlasWrapper
- java.lang.Object
-
- org.nd4j.linalg.factory.BaseBlasWrapper
-
- All Implemented Interfaces:
BlasWrapper
public abstract class BaseBlasWrapper extends Object implements BlasWrapper
Base implementation of a blas wrapper that delegates things to the underlying level. This is a migration tool to preserve the old api while allowing for migration to the newer one.- Author:
- Adam Gibson
-
-
Constructor Summary
Constructors Constructor Description BaseBlasWrapper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubleasum(INDArray x)Compute || x ||_1 (1-norm, sum of absolute values)INDArrayaxpy(double da, INDArray dx, INDArray dy)INDArrayaxpy(float da, INDArray dx, INDArray dy)Compute y <- alpha * x + y (elementwise addition)INDArrayaxpy(Number da, INDArray dx, INDArray dy)Compute y <- y + x * alphavoidcheckInfo(String name, int info)INDArraycopy(INDArray x, INDArray y)Compute y <- x (copy a matrix)doubledot(INDArray x, INDArray y)Compute x^T * y (dot product)intgeev(char jobvl, char jobvr, INDArray A, INDArray WR, INDArray WI, INDArray VL, INDArray VR)voidgelsd(INDArray A, INDArray B)Generalized Least Squares via *GELSD.INDArraygemv(double alpha, INDArray a, INDArray x, double beta, INDArray y)INDArraygemv(float alpha, INDArray a, INDArray x, float beta, INDArray y)Compute y <- alpha*op(a)*x + beta * y (general matrix vector multiplication)INDArraygemv(Number alpha, INDArray a, INDArray x, double beta, INDArray y)************************************************************************ BLAS Level 2voidgeqrf(INDArray A, INDArray tau)INDArrayger(double alpha, INDArray x, INDArray y, INDArray a)INDArrayger(float alpha, INDArray x, INDArray y, INDArray a)Compute A <- alpha * x * y^T + A (general rank-1 update)INDArrayger(Number alpha, INDArray x, INDArray y, INDArray a)INDArraygesv(INDArray a, int[] ipiv, INDArray b)************************************************************************ LAPACKintiamax(INDArray x)Compute index of element with largest absolute value (index of absolute value maximum)Lapacklapack()LAPack interfaceLevel1level1()Return the level 1 functions for this blas implLevel2level2()Return the level 2 functions for this blas implLevel3level3()Return the level 3 functions for this blas impldoublenrm2(INDArray x)Compute || x ||_2 (2-norm)voidormqr(char side, char trans, INDArray A, INDArray tau, INDArray C)voidposv(char uplo, INDArray A, INDArray B)voidsaxpy(double alpha, INDArray x, INDArray y)voidsaxpy(float alpha, INDArray x, INDArray y)Abstraction over saxpyINDArrayscal(double alpha, INDArray x)INDArrayscal(float alpha, INDArray x)Compute x <- alpha * x (scale a matrix)INDArrayswap(INDArray x, INDArray y)Compute x <-> y (swap two matrices)intsyev(char jobz, char uplo, INDArray a, INDArray w)intsyevd(char jobz, char uplo, INDArray A, INDArray w)intsyevr(char jobz, char range, char uplo, INDArray a, double vl, double vu, int il, int iu, double abstol, INDArray w, INDArray z, int[] isuppz)intsyevr(char jobz, char range, char uplo, INDArray a, float vl, float vu, int il, int iu, float abstol, INDArray w, INDArray z, int[] isuppz)intsyevr(char jobz, char range, char uplo, INDArray a, float vl, float vu, int il, int iu, Number abstol, INDArray w, INDArray z, int[] isuppz)intsyevx(char jobz, char range, char uplo, INDArray a, double vl, double vu, int il, int iu, double abstol, INDArray w, INDArray z)intsyevx(char jobz, char range, char uplo, INDArray a, float vl, float vu, int il, int iu, float abstol, INDArray w, INDArray z)intsygvd(int itype, char jobz, char uplo, INDArray A, INDArray B, INDArray W)INDArraysysv(char uplo, INDArray a, int[] ipiv, INDArray b)
-
-
-
Method Detail
-
lapack
public Lapack lapack()
Description copied from interface:BlasWrapperLAPack interface- Specified by:
lapackin interfaceBlasWrapper- Returns:
-
level1
public Level1 level1()
Description copied from interface:BlasWrapperReturn the level 1 functions for this blas impl- Specified by:
level1in interfaceBlasWrapper- Returns:
-
level2
public Level2 level2()
Description copied from interface:BlasWrapperReturn the level 2 functions for this blas impl- Specified by:
level2in interfaceBlasWrapper- Returns:
-
level3
public Level3 level3()
Description copied from interface:BlasWrapperReturn the level 3 functions for this blas impl- Specified by:
level3in interfaceBlasWrapper- Returns:
-
axpy
public INDArray axpy(Number da, INDArray dx, INDArray dy)
Description copied from interface:BlasWrapperCompute y <- y + x * alpha- Specified by:
axpyin interfaceBlasWrapper- Parameters:
da- the alpha to multiply by- Returns:
-
gemv
public INDArray gemv(Number alpha, INDArray a, INDArray x, double beta, INDArray y)
Description copied from interface:BlasWrapper************************************************************************ BLAS Level 2- Specified by:
gemvin interfaceBlasWrapper
-
ger
public INDArray ger(Number alpha, INDArray x, INDArray y, INDArray a)
- Specified by:
gerin interfaceBlasWrapper
-
syevr
public int syevr(char jobz, char range, char uplo, INDArray a, float vl, float vu, int il, int iu, Number abstol, INDArray w, INDArray z, int[] isuppz)- Specified by:
syevrin interfaceBlasWrapper
-
swap
public INDArray swap(INDArray x, INDArray y)
Description copied from interface:BlasWrapperCompute x <-> y (swap two matrices)- Specified by:
swapin interfaceBlasWrapper
-
scal
public INDArray scal(double alpha, INDArray x)
- Specified by:
scalin interfaceBlasWrapper
-
scal
public INDArray scal(float alpha, INDArray x)
Description copied from interface:BlasWrapperCompute x <- alpha * x (scale a matrix)- Specified by:
scalin interfaceBlasWrapper
-
copy
public INDArray copy(INDArray x, INDArray y)
Description copied from interface:BlasWrapperCompute y <- x (copy a matrix)- Specified by:
copyin interfaceBlasWrapper
-
axpy
public INDArray axpy(double da, INDArray dx, INDArray dy)
- Specified by:
axpyin interfaceBlasWrapper
-
axpy
public INDArray axpy(float da, INDArray dx, INDArray dy)
Description copied from interface:BlasWrapperCompute y <- alpha * x + y (elementwise addition)- Specified by:
axpyin interfaceBlasWrapper
-
dot
public double dot(INDArray x, INDArray y)
Description copied from interface:BlasWrapperCompute x^T * y (dot product)- Specified by:
dotin interfaceBlasWrapper
-
nrm2
public double nrm2(INDArray x)
Description copied from interface:BlasWrapperCompute || x ||_2 (2-norm)- Specified by:
nrm2in interfaceBlasWrapper
-
asum
public double asum(INDArray x)
Description copied from interface:BlasWrapperCompute || x ||_1 (1-norm, sum of absolute values)- Specified by:
asumin interfaceBlasWrapper
-
iamax
public int iamax(INDArray x)
Description copied from interface:BlasWrapperCompute index of element with largest absolute value (index of absolute value maximum)- Specified by:
iamaxin interfaceBlasWrapper
-
gemv
public INDArray gemv(double alpha, INDArray a, INDArray x, double beta, INDArray y)
- Specified by:
gemvin interfaceBlasWrapper
-
gemv
public INDArray gemv(float alpha, INDArray a, INDArray x, float beta, INDArray y)
Description copied from interface:BlasWrapperCompute y <- alpha*op(a)*x + beta * y (general matrix vector multiplication)- Specified by:
gemvin interfaceBlasWrapper
-
ger
public INDArray ger(double alpha, INDArray x, INDArray y, INDArray a)
- Specified by:
gerin interfaceBlasWrapper
-
ger
public INDArray ger(float alpha, INDArray x, INDArray y, INDArray a)
Description copied from interface:BlasWrapperCompute A <- alpha * x * y^T + A (general rank-1 update)- Specified by:
gerin interfaceBlasWrapper
-
gesv
public INDArray gesv(INDArray a, int[] ipiv, INDArray b)
Description copied from interface:BlasWrapper************************************************************************ LAPACK- Specified by:
gesvin interfaceBlasWrapper
-
checkInfo
public void checkInfo(String name, int info)
- Specified by:
checkInfoin interfaceBlasWrapper
-
sysv
public INDArray sysv(char uplo, INDArray a, int[] ipiv, INDArray b)
- Specified by:
sysvin interfaceBlasWrapper
-
syev
public int syev(char jobz, char uplo, INDArray a, INDArray w)- Specified by:
syevin interfaceBlasWrapper
-
syevx
public int syevx(char jobz, char range, char uplo, INDArray a, double vl, double vu, int il, int iu, double abstol, INDArray w, INDArray z)- Specified by:
syevxin interfaceBlasWrapper
-
syevx
public int syevx(char jobz, char range, char uplo, INDArray a, float vl, float vu, int il, int iu, float abstol, INDArray w, INDArray z)- Specified by:
syevxin interfaceBlasWrapper
-
syevd
public int syevd(char jobz, char uplo, INDArray A, INDArray w)- Specified by:
syevdin interfaceBlasWrapper
-
syevr
public int syevr(char jobz, char range, char uplo, INDArray a, double vl, double vu, int il, int iu, double abstol, INDArray w, INDArray z, int[] isuppz)- Specified by:
syevrin interfaceBlasWrapper
-
syevr
public int syevr(char jobz, char range, char uplo, INDArray a, float vl, float vu, int il, int iu, float abstol, INDArray w, INDArray z, int[] isuppz)- Specified by:
syevrin interfaceBlasWrapper
-
posv
public void posv(char uplo, INDArray A, INDArray B)- Specified by:
posvin interfaceBlasWrapper
-
geev
public int geev(char jobvl, char jobvr, INDArray A, INDArray WR, INDArray WI, INDArray VL, INDArray VR)- Specified by:
geevin interfaceBlasWrapper
-
sygvd
public int sygvd(int itype, char jobz, char uplo, INDArray A, INDArray B, INDArray W)- Specified by:
sygvdin interfaceBlasWrapper
-
gelsd
public void gelsd(INDArray A, INDArray B)
Description copied from interface:BlasWrapperGeneralized Least Squares via *GELSD. Note that B must be padded to contain the solution matrix. This occurs when A has fewer rows than columns. For example: in A * X = B, A is (m,n), X is (n,k) and B is (m,k). Now if m < n, since B is overwritten to contain the solution (in classical LAPACK style), B needs to be padded to be an (n,k) matrix. Likewise, if m > n, the solution consists only of the first n rows of B.- Specified by:
gelsdin interfaceBlasWrapper- Parameters:
A- an (m,n) matrixB- an (max(m,n), k) matrix (well, at least)
-
geqrf
public void geqrf(INDArray A, INDArray tau)
- Specified by:
geqrfin interfaceBlasWrapper
-
ormqr
public void ormqr(char side, char trans, INDArray A, INDArray tau, INDArray C)- Specified by:
ormqrin interfaceBlasWrapper
-
saxpy
public void saxpy(double alpha, INDArray x, INDArray y)- Specified by:
saxpyin interfaceBlasWrapper
-
saxpy
public void saxpy(float alpha, INDArray x, INDArray y)Description copied from interface:BlasWrapperAbstraction over saxpy- Specified by:
saxpyin interfaceBlasWrapper- Parameters:
alpha- the alpha to scale byx- the ndarray to usey- the ndarray to use
-
-