27 AFAPI array
lu(
const array& in);
173 AFAPI array
qr(
const array& in);
192 AFAPI void qr(array& q, array& r,
const array& in);
205 AFAPI void qr(array& q, array& r, array& tau,
const array& in);
290 AFAPI array
eigen(
const array& in,
bool is_diag=
false);
357 AFAPI void eigen(array& values, array& vectors,
const array& in);
381 AFAPI array
svd(
const array& in,
bool is_diag=
false);
402 AFAPI void svd(array& s, array& u, array& v,
const array& in);
478 AFAPI array
matpow(
const array& base,
double exponent);
491 AFAPI unsigned rank(
const array& in,
double tolerance=1e-5);
502 template<
typename T> T
det(
const array& in);
604 unsigned m,
unsigned n,
unsigned batch);
608 unsigned m,
unsigned n,
unsigned batch);
612 unsigned m,
unsigned n,
unsigned batch);
616 unsigned m,
unsigned n,
unsigned batch);
644 unsigned m,
unsigned n,
unsigned k,
649 unsigned m,
unsigned n,
unsigned k,
654 unsigned m,
unsigned n,
unsigned k,
659 unsigned m,
unsigned n,
unsigned k,
683 unsigned n,
const float *d_A,
684 bool is_upper,
unsigned batch);
687 unsigned n,
const cfloat *d_A,
688 bool is_upper,
unsigned batch);
691 unsigned n,
const double *d_A,
692 bool is_upper,
unsigned batch);
695 unsigned n,
const cdouble *d_A,
696 bool is_upper,
unsigned batch);
715 unsigned n,
const float *d_A,
720 unsigned n,
const cfloat *d_A,
725 unsigned n,
const double *d_A,
730 unsigned n,
const cdouble *d_A,
772 unsigned n,
const float *d_A,
773 bool is_diag,
unsigned batch);
777 unsigned n,
const double *d_A,
778 bool is_diag,
unsigned batch);
782 unsigned n,
const cfloat *d_A,
783 bool is_diag,
unsigned batch);
787 unsigned n,
const cdouble *d_A,
788 bool is_diag,
unsigned batch);
818 char jobU,
char jobV,
819 unsigned m,
unsigned n,
const float *d_A,
820 unsigned m_,
unsigned n_,
821 bool is_diag,
unsigned batch);
826 char jobU,
char jobV,
827 unsigned m,
unsigned n,
829 unsigned m_,
unsigned n_,
830 bool is_diag,
unsigned batch);
834 char jobU,
char jobV,
835 unsigned m,
unsigned n,
const double *d_A,
836 unsigned m_,
unsigned n_,
837 bool is_diag,
unsigned batch);
842 char jobU,
char jobV,
843 unsigned m,
unsigned n,
845 unsigned m_,
unsigned n_,
846 bool is_diag,
unsigned batch);
866 float *d_in,
unsigned batch);
869 cfloat *d_in,
unsigned batch);
872 double *d_in,
unsigned batch);
875 cdouble *d_in,
unsigned batch);
893 unsigned n,
float *d_X,
894 bool inplace,
unsigned batch);
898 bool inplace,
unsigned batch);
901 unsigned n,
double *d_X,
902 bool inplace,
unsigned batch);
906 bool inplace,
unsigned batch);
928 unsigned n,
const float *d_in,
929 float power,
unsigned batch,
bool *is_cplx);
932 unsigned n,
const cfloat *d_in,
933 float power,
unsigned batch,
bool *is_cplx);
936 unsigned n,
const double *d_in,
937 double power,
unsigned batch,
bool *is_cplx);
940 unsigned n,
const cdouble *d_in,
941 double power,
unsigned batch,
bool *is_cplx);
974 unsigned m,
unsigned n,
975 const float *d_A,
unsigned batch_A,
977 const float *d_B,
unsigned batch_B,
981 unsigned m,
unsigned n,
990 unsigned m,
unsigned n,
991 const double *d_A,
unsigned batch_A,
993 const double *d_B,
unsigned batch_B,
997 unsigned m,
unsigned n,
1021 unsigned m,
unsigned k,
const int *d_piv,
1024 unsigned m,
unsigned k,
const int *d_piv,
1027 unsigned m,
unsigned k,
const int *d_piv,
1030 unsigned m,
unsigned k,
const int *d_piv,
void info(bool isdebug=false)
Print diagnostic information on driver, runtime, memory, and devices.
array inverse(const array &in)
Matrix inversion.
afError af_matrixPower_S(void **d_out, unsigned n, const float *d_in, float power, unsigned batch, bool *is_cplx)
Matrix power for single precision matrix.
Use Gaussian elimination (fast, cannot be combined with other options)
Definition: dla.h:515
afError af_inverse_C(cfloat *out, unsigned n, cfloat *d_in, unsigned batch)
Inversion of single precision complex matrix. DLA license required.
afError af_lu_C(int *d_piv, cfloat *d_U, cfloat *d_L, unsigned m, unsigned n, unsigned batch)
lu Decomposition on single precision, complex data. DLA license required.
afError af_hessenberg_D(double *d_H, double *d_Q, unsigned n, const double *d_A, unsigned batch)
Find the hessenberg matrix on double precision data.
Solve A.H() (conjugate transpose)
Definition: dla.h:517
afError af_svd_S(float *d_S, float *d_U, float *d_V, char jobU, char jobV, unsigned m, unsigned n, const float *d_A, unsigned m_, unsigned n_, bool is_diag, unsigned batch)
Singular value decomposition on single precision input DLA license not required.
Solve lowertri(A) (lower triangular system)
Definition: dla.h:520
afError af_cholesky_Z(cdouble *d_R, unsigned *info, unsigned n, const cdouble *d_A, bool is_upper, unsigned batch)
Cholesky decomposition, double precision, complex data. DLA license required.
af_solve_t
Definition: dla.h:511
afError af_linearSolve_ZZ(cdouble *d_X, unsigned m, unsigned n, const cdouble *d_A, unsigned batch_A, unsigned k, const cdouble *d_B, unsigned batch_B, unsigned opts)
Solve a double precision complex system. DLA not required for opts = 3.
afError af_lu_S(int *d_piv, float *d_U, float *d_L, unsigned m, unsigned n, unsigned batch)
lu Decomposition on single precision data. No DLA license required.
afError af_piv_final_D(double *d_out, unsigned m, unsigned k, const int *d_piv, unsigned batch)
afError af_matrixPower_C(void **d_out, unsigned n, const cfloat *d_in, float power, unsigned batch, bool *is_cplx)
Matrix power for single precision, complex matrix. DLA license required.
afError af_svd_C(float *d_S, cfloat *d_U, cfloat *d_V, char jobU, char jobV, unsigned m, unsigned n, const cfloat *d_A, unsigned m_, unsigned n_, bool is_diag, unsigned batch)
Singular value decomposition on single precision complex input DLA license required.
afError af_eigen_D(void **d_Val, void **d_Vec, bool *is_imag, unsigned n, const double *d_A, bool is_diag, unsigned batch)
Eigen value decomposition of single precision complex input.
afError af_piv_final_S(float *d_out, unsigned m, unsigned k, const int *d_piv, unsigned batch)
array upper(const array &input, int diagonal=0)
Extract upper triangular matrix.
afError af_hessenberg_S(float *d_H, float *d_Q, unsigned n, const float *d_A, unsigned batch)
Find the hessenberg matrix on single precision data.
afError af_inverse_S(float *out, unsigned n, float *d_in, unsigned batch)
Inversion of single precision matrix. DLA license required.
afError af_eigen_C(void **d_Val, cfloat *d_Vec, bool *is_imag, unsigned n, const cfloat *d_A, bool is_diag, unsigned batch)
Eigen value decomposition of double precision input.
afError
Definition: defines.h:10
afError af_hessenberg_C(cfloat *d_H, cfloat *d_Q, unsigned n, const cfloat *d_A, unsigned batch)
Find the hessenberg matrix on single precision complex data.
cuDoubleComplex cdouble
Definition: defines.h:109
afError af_linearSolve_DD(double *d_X, unsigned m, unsigned n, const double *d_A, unsigned batch_A, unsigned k, const double *d_B, unsigned batch_B, unsigned opts)
Solve a double precision system. DLA not required for opts = 3.
afError af_eigen_Z(void **d_Val, cdouble *d_Vec, bool *is_imag, unsigned n, const cdouble *d_A, bool is_diag, unsigned batch)
Eigen value decomposition of double precision complex input.
afError af_inverse_Z(cdouble *out, unsigned n, cdouble *d_in, unsigned batch)
Inversion of double precision complex matrix. DLA license required.
array cholesky(const array &X, bool is_upper=true)
Cholesky decomposition ("Y^T * Y == X").
afError af_matrixPower_Z(void **d_out, unsigned n, const cdouble *d_in, double power, unsigned batch, bool *is_cplx)
Matrix power for double precision, complex matrix. DLA license required.
afError af_qr_C(cfloat *d_tau, cfloat *d_R, cfloat *d_Q, unsigned m, unsigned n, unsigned k, unsigned batch)
qr decomposition on single precision, complex data. DLA license required.
array lower(const array &input, int diagonal=0)
Extract lower triangular matrix.
afError af_lu_D(int *d_piv, double *d_U, double *d_L, unsigned m, unsigned n, unsigned batch)
lu Decomposition on double precision data. DLA license required.
afError af_piv_final_I(int *d_out, unsigned m, unsigned k, const int *d_piv, unsigned batch)
afError af_matrixPower_D(void **d_out, unsigned n, const double *d_in, double power, unsigned batch, bool *is_cplx)
Matrix power for double precision matrix. DLA license required.
array eigen(const array &in, bool is_diag=false)
Compute eigenvalues.
Default.
Definition: dla.h:512
afError af_lu_Z(int *d_piv, cdouble *d_U, cdouble *d_L, unsigned m, unsigned n, unsigned batch)
lu Decomposition on double precision, complex data. DLA license required.
afError af_cholesky_C(cfloat *d_R, unsigned *info, unsigned n, const cfloat *d_A, bool is_upper, unsigned batch)
Cholesky decomposition, single precision complex data. DLA license required.
T det(const array &in)
Matrix determinant.
afError af_svd_D(double *d_S, double *d_U, double *d_V, char jobU, char jobV, unsigned m, unsigned n, const double *d_A, unsigned m_, unsigned n_, bool is_diag, unsigned batch)
Singular value decomposition on double precision input DLA license not required.
#define AFAPI
Definition: defines.h:45
afError af_det_Z(cdouble *res, unsigned n, cdouble *d_X, bool inplace, unsigned batch)
Determinant of double precision complex matrix. DLA license required.
afError af_qr_D(double *d_tau, double *d_R, double *d_Q, unsigned m, unsigned n, unsigned k, unsigned batch)
qr decomposition on double precision data. DLA license required.
A is not positive definite.
Definition: dla.h:514
array hessenberg(const array &in)
Hessenberg matrix form.
A is positive definite.
Definition: dla.h:513
array matpow(const array &base, double exponent)
Matrix power.
Solve A.T() (non-conjugate transpose)
Definition: dla.h:518
afError af_svd_Z(double *d_S, cdouble *d_U, cdouble *d_V, char jobU, char jobV, unsigned m, unsigned n, const cdouble *d_A, unsigned m_, unsigned n_, bool is_diag, unsigned batch)
Singular value decomposition on double precision complex input DLA license not required.
Solve uppertri(A) (upper triangular system)
Definition: dla.h:519
afError af_cholesky_S(float *d_R, unsigned *info, unsigned n, const float *d_A, bool is_upper, unsigned batch)
Cholesky decomposition, single precision data. No DLA license required.
array qr(const array &in)
QR factorization (packed).
array svd(const array &in, bool is_diag=false)
Singular values.
afError af_hessenberg_Z(cdouble *d_H, cdouble *d_Q, unsigned n, const cdouble *d_A, unsigned batch)
Find the hessenberg matrix on double precision complex data.
afError af_det_S(float *res, unsigned n, float *d_X, bool inplace, unsigned batch)
Determinant of single precision matrix. DLA license not required.
afError af_piv_final_U(unsigned *d_out, unsigned m, unsigned k, const int *d_piv, unsigned batch)
afError af_qr_Z(cdouble *d_tau, cdouble *d_R, cdouble *d_Q, unsigned m, unsigned n, unsigned k, unsigned batch)
qr decomposition on double precision, complex data. DLA license required.
afError af_qr_S(float *d_tau, float *d_R, float *d_Q, unsigned m, unsigned n, unsigned k, unsigned batch)
qr decomposition on single precision data.
unsigned rank(const array &in, double tolerance=1e-5)
Rank of matrix.
cuFloatComplex cfloat
Definition: defines.h:108
Use pseudo inverse (fast, cannot be combined with other options)
Definition: dla.h:516
array lu(const array &in)
LU factorization (packed).
array solve(const array &A, const array &b, af_solve_t options=af_solve_none)
Solve linear system.
afError af_linearSolve_SS(float *d_X, unsigned m, unsigned n, const float *d_A, unsigned batch_A, unsigned k, const float *d_B, unsigned batch_B, unsigned opts)
Solve a single precision system. DLA not required for opts = 0, 3.
afError af_det_D(double *res, unsigned n, double *d_X, bool inplace, unsigned batch)
Determinant of double precision matrix. DLA license required.
afError af_eigen_S(void **d_Val, void **d_Vec, bool *is_imag, unsigned n, const float *d_A, bool is_diag, unsigned batch)
Eigen value decomposition of single precision input.
afError af_inverse_D(double *out, unsigned n, double *d_in, unsigned batch)
Inversion of double precision matrix. DLA license required.
afError af_cholesky_D(double *d_R, unsigned *info, unsigned n, const double *d_A, bool is_upper, unsigned batch)
Cholesky decomposition, double precision data. DLA license required.
afError af_det_C(cfloat *res, unsigned n, cfloat *d_X, bool inplace, unsigned batch)
Determinant of single precision complex matrix. DLA license required.
afError af_linearSolve_CC(cfloat *d_X, unsigned m, unsigned n, const cfloat *d_A, unsigned batch_A, unsigned k, const cfloat *d_B, unsigned batch_B, unsigned opts)
Solve a single precision complex system. DLA not required for opts = 3.