PLASMA_dgelqf

Purpose

PLASMA_dgelqf - Computes the tile LQ factorization of a complex M-by-N matrix A: A = L * Q.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

A        double* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and below the diagonal of the array contain the m-by-min(M,N)
         lower trapezoidal matrix L (L is lower triangular if M <= N); the elements above the
         diagonal represent the unitary matrix Q as a product of elementary reflectors, stored
         by tiles.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        double* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_dgelqs to solve the system
         of equations.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dgelqf(int M, int N, double *A, int LDA, double *T)
Fortran Bindings
void PLASMA_DGELQF(int *M, int *N, double *A, int *LDA, double **T, int *INFO)
Online Browsing

Dive into PLASMA_dgelqf

PLASMA_dgelqf_Tile

Purpose

PLASMA_dgelqf_Tile - Computes the tile LQ factorization of a complex M-by-N matrix A: A = L * Q. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and below the diagonal of the array contain the m-by-min(M,N)
         lower trapezoidal matrix L (L is lower triangular if M <= N); the elements above the
         diagonal represent the unitary matrix Q as a product of elementary reflectors, stored
         by tiles.

T        double* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_dgelqs to solve the system
         of equations.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dgelqf_Tile(PLASMA_desc *A, PLASMA_desc *T)
Fortran Bindings
void PLASMA_DGELQF_TILE(long long int *A, long long int *T,int *INFO)
Online Browsing

Dive into PLASMA_dgelqf_Tile

PLASMA_dgelqs

Purpose

PLASMA_dgelqs - Compute a minimum-norm solution min || A*X - B || using the LQ factorization A = L*Q computed by PLASMA_dgelqf.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= M >= 0.

NRHS     int (IN)
         The number of columns of B. NRHS >= 0.

A        double* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_dgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= M.

T        double* (IN)
         Auxiliary factorization data, computed by PLASMA_dgelqf.

B        double* (INOUT)
         On entry, the M-by-NRHS right hand side matrix B.
         On exit, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= N.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dgelqs(int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB)
Fortran Bindings
void PLASMA_DGELQS(int *M, int *N, int *NRHS, double *A, int *LDA, double **T, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dgelqs

PLASMA_dgelqs_Tile

Purpose

PLASMA_dgelqs_Tile - Compute a minimum-norm solution min || A*X - B || using the LQ factorization A = L*Q computed by PLASMA_dgelqf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_dgelqf.

T        double* (IN)
         Auxiliary factorization data, computed by PLASMA_dgelqf.

B        double* (INOUT)
         On entry, the M-by-NRHS right hand side matrix B.
         On exit, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dgelqs_Tile(PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_DGELQS_TILE(long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_dgelqs_Tile

PLASMA_dgels

Purpose

PLASMA_dgels - solves overdetermined or underdetermined linear systems involving an M-by-N matrix A using the QR or the LQ factorization of A. It is assumed that A has full rank. The following options are provided:

  1. trans = PlasmaNoTrans and M >= N: find the least squares solution of an overdetermined system, i.e., solve the least squares problem: minimize || B - A*X ||.

  2. trans = PlasmaNoTrans and M < N: find the minimum norm solution of an underdetermined system A * X = B.

Several right hand side vectors B and solution vectors X can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X.

Arguments
trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   the linear system involves A;
         = PlasmaTrans: the linear system involves A**T.
         Currently only PlasmaNoTrans is supported.

M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrices B and X.
         NRHS >= 0.

A        double* (INOUT)
         On entry, the M-by-N matrix A.
         On exit,
         if M >= N, A is overwritten by details of its QR factorization as returned by
                    PLASMA_dgeqrf;
         if M < N, A is overwritten by details of its LQ factorization as returned by
                     PLASMA_dgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        double* (OUT)
         On exit, auxiliary factorization data.

B        double* (INOUT)
         On entry, the M-by-NRHS matrix B of right hand side vectors, stored columnwise;
         On exit, if return value = 0, B is overwritten by the solution vectors, stored
         columnwise:
         if M >= N, rows 1 to N of B contain the least squares solution vectors; the residual
         sum of squares for the solution in each column is given by the sum of squares of the
         modulus of elements N+1 to M in that column;
         if M < N, rows 1 to N of B contain the minimum norm solution vectors;

LDB      int (IN)
         The leading dimension of the array B. LDB >= MAX(1,M,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dgels(PLASMA_enum trans, int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB)
Fortran Bindings
void PLASMA_DGELS(PLASMA_enum *trans, int *M, int *N, int *NRHS, double *A, int *LDA, double **T, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dgels

PLASMA_dgels_Tile

Purpose

PLASMA_dgels_Tile - solves overdetermined or underdetermined linear systems involving an M-by-N matrix A using the QR or the LQ factorization of A. It is assumed that A has full rank. The following options are provided:

  1. trans = PlasmaNoTrans and M >= N: find the least squares solution of an overdetermined system, i.e., solve the least squares problem: minimize || B - A*X ||.

  2. trans = PlasmaNoTrans and M < N: find the minimum norm solution of an underdetermined system A * X = B.

Several right hand side vectors B and solution vectors X can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   the linear system involves A;
         = PlasmaTrans: the linear system involves A**T.
         Currently only PlasmaNoTrans is supported.

A        double* (INOUT)
         On entry, the M-by-N matrix A.
         On exit,
         if M >= N, A is overwritten by details of its QR factorization as returned by
                    PLASMA_dgeqrf;
         if M < N, A is overwritten by details of its LQ factorization as returned by
                     PLASMA_dgelqf.

T        double* (OUT)
         On exit, auxiliary factorization data.

B        double* (INOUT)
         On entry, the M-by-NRHS matrix B of right hand side vectors, stored columnwise;
         On exit, if return value = 0, B is overwritten by the solution vectors, stored
         columnwise:
         if M >= N, rows 1 to N of B contain the least squares solution vectors; the residual
         sum of squares for the solution in each column is given by the sum of squares of the
         modulus of elements N+1 to M in that column;
         if M < N, rows 1 to N of B contain the minimum norm solution vectors;
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dgels_Tile(PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_DGELS_TILE(PLASMA_enum *trans, long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_dgels_Tile

PLASMA_dgeqrf

Purpose

PLASMA_dgeqrf - Computes the tile QR factorization of a complex M-by-N matrix A: A = Q * R.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A.  N >= 0.

A        double* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N
         upper trapezoidal matrix R (R is upper triangular if M >= N); the elements below the
         diagonal represent the unitary matrix Q as a product of elementary reflectors stored
         by tiles.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        double* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_dgeqrs to solve the system
         of equations.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dgeqrf(int M, int N, double *A, int LDA, double *T)
Fortran Bindings
void PLASMA_DGEQRF(int *M, int *N, double *A, int *LDA, double **T, int *INFO)
Online Browsing

Dive into PLASMA_dgeqrf

PLASMA_dgeqrf_Tile

Purpose

PLASMA_dgeqrf_Tile - Computes the tile QR factorization of a complex M-by-N matrix A: A = Q * R. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N
         upper trapezoidal matrix R (R is upper triangular if M >= N); the elements below the
         diagonal represent the unitary matrix Q as a product of elementary reflectors stored
         by tiles.

T        double* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_dgeqrs to solve the system
         of equations.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dgeqrf_Tile(PLASMA_desc *A, PLASMA_desc *T)
Fortran Bindings
void PLASMA_DGEQRF_TILE(long long int *A, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_dgeqrf_Tile

PLASMA_dgeqrs

Purpose

PLASMA_dgeqrs - Compute a minimum-norm solution min || A*X - B || using the RQ factorization A = R*Q computed by PLASMA_dgeqrf.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= M >= 0.

NRHS     int (IN)
         The number of columns of B. NRHS >= 0.

A        double* (INOUT)
         Details of the QR factorization of the original matrix A as returned by PLASMA_dgeqrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= M.

T        double* (IN)
         Auxiliary factorization data, computed by PLASMA_dgeqrf.

B        double* (INOUT)
         On entry, the m-by-nrhs right hand side matrix B.
         On exit, the n-by-nrhs solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dgeqrs(int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB)
Fortran Bindings
void PLASMA_DGEQRS(int *M, int *N, int *NRHS, double *A, int *LDA, double **T, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dgeqrs

PLASMA_dgeqrs_Tile

Purpose

PLASMA_dgeqrs_Tile - Compute a minimum-norm solution min || A*X - B || using the RQ factorization A = R*Q computed by PLASMA_dgeqrf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (INOUT)
         Details of the QR factorization of the original matrix A as returned by PLASMA_dgeqrf.

T        double* (IN)
         Auxiliary factorization data, computed by PLASMA_dgeqrf.

B        double* (INOUT)
         On entry, the m-by-nrhs right hand side matrix B.
         On exit, the n-by-nrhs solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dgeqrs_Tile(PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_DGEQRS_TILE(long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_dgeqrs_Tile

PLASMA_dgesv

Purpose

PLASMA_dgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        double* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        double* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        double* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_dgesv(int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB)
Fortran Bindings
void PLASMA_DGESV(int *N, int *NRHS, double *A, int *LDA, double **LH, int **IPIVH, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dgesv

PLASMA_dgesv_Tile

Purpose

PLASMA_dgesv_Tile - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

L        double* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        double* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_dgesv_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_DGESV_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_dgesv_Tile

PLASMA_dgetrf

Purpose

PLASMA_dgetrf - Computes an LU factorization of a general M-by-N matrix A using the tile LU algorithm with partial tile pivoting with row interchanges.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

A        double* (INOUT)
         On entry, the M-by-N matrix to be factored.
         On exit, the tile factors L and U from the factorization.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

L        double* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         required by PLASMA_dgetrs to solve the system of equations.

IPIV     int* (OUT)
         The pivot indices that define the permutations (not equivalent to LAPACK).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, and division by zero will occur
               if it is used to solve a system of equations.
C Bindings
int PLASMA_dgetrf(int M, int N, double *A, int LDA, double *L, int *IPIV)
Fortran Bindings
void PLASMA_DGETRF(int *M, int *N, double *A, int *LDA, double **LH, int **IPIVH, int *INFO)
Online Browsing

Dive into PLASMA_dgetrf

PLASMA_dgetrf_Tile

Purpose

PLASMA_dgetrf_Tile - Computes an LU factorization of a general M-by-N matrix A using the tile LU algorithm with partial tile pivoting with row interchanges. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (INOUT)
         On entry, the M-by-N matrix to be factored.
         On exit, the tile factors L and U from the factorization.

L        double* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         required by PLASMA_dgetrs to solve the system of equations.

IPIV     int* (OUT)
         The pivot indices that define the permutations (not equivalent to LAPACK).
Return Value:
          = 0: successful exit
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, and division by zero will occur
               if it is used to solve a system of equations.
C Bindings
int PLASMA_dgetrf_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV)
Fortran Bindings
void PLASMA_DGETRF_TILE(long long int *A, long long int *L, int **IPIVH, int *INFO)
Online Browsing

Dive into PLASMA_dgetrf_Tile

PLASMA_dgetrs

Purpose

PLASMA_dgetrs - Solves a system of linear equations A * X = B, with a general N-by-N matrix A using the tile LU factorization computed by PLASMA_dgetrf.

Arguments
trans    PLASMA_enum (IN)
         Intended to specify the the form of the system of equations:
         = PlasmaNoTrans:   A * X = B     (No transpose)
         = PlasmaTrans:     A**T * X = B  (Transpose)
         = PlasmaTrans: A**T * X = B  (Conjugate transpose)
         Currently only PlasmaNoTrans is supported.

N        int (IN)
         The order of the matrix A.  N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        double* (IN)
         The tile factors L and U from the factorization, computed by PLASMA_dgetrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        double* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_dgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_dgetrf (not equivalent to LAPACK).

B        double* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, the solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dgetrs(PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB)
Fortran Bindings
void PLASMA_DGETRS(PLASMA_enum *uplo, int *N, int *NRHS, double *A, int *LDA, double **LH, int **IPIVH, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dgetrs

PLASMA_dgetrs_Tile

Purpose

PLASMA_dgetrs_Tile - Solves a system of linear equations A * X = B, with a general N-by-N matrix A using the tile LU factorization computed by PLASMA_dgetrf. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (IN)
         The tile factors L and U from the factorization, computed by PLASMA_dgetrf.

L        double* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_dgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_dgetrf (not equivalent to LAPACK).

B        double* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, the solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dgetrs_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_DGETRS_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_dgetrs_Tile

PLASMA_dposv

Purpose

PLASMA_dposv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N symmetric positive definite (or Hermitian positive definite in the complex case) matrix and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.

Arguments
uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        double* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_dposv(PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *B, int LDB)
Fortran Bindings
void PLASMA_DPOSV(PLASMA_enum *uplo, int *N, int *NRHS, double *A, int *LDA, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dposv

PLASMA_dposv_Tile

Purpose

PLASMA_dposv_Tile - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N symmetric positive definite (or Hermitian positive definite in the complex case) matrix and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        double* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_dposv_Tile(PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_DPOSV_TILE(PLASMA_enum *uplo, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_dposv_Tile

PLASMA_dpotrf

Purpose

PLASMA_dpotrf - Computes the Cholesky factorization of a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A. The factorization has the form

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The order of the matrix A. N >= 0.

A        double* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_dpotrf(PLASMA_enum uplo, int N, double *A, int LDA)
Fortran Bindings
void PLASMA_DPOTRF(PLASMA_enum *uplo, int *N, double *A, int *LDA, int *INFO)
Online Browsing

Dive into PLASMA_dpotrf

PLASMA_dpotrf_Tile

Purpose

PLASMA_dpotrf_Tile - Computes the Cholesky factorization of a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A. The factorization has the form

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        double* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.
Return Value:
          = 0: successful exit
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_dpotrf_Tile(PLASMA_enum uplo, PLASMA_desc *A)
Fortran Bindings
void PLASMA_DPOTRF_TILE(PLASMA_enum *uplo, long long int *A, int *INFO)
Online Browsing

Dive into PLASMA_dpotrf_Tile

PLASMA_dpotrs

Purpose

PLASMA_dpotrs - Solves a system of linear equations A * X = B with a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A using the Cholesky factorization A = UT*U or A = L*LT computed by PLASMA_dpotrf.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        double* (IN)
         The triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T,
         computed by PLASMA_dpotrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dpotrs(PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *B, int LDB)
Fortran Bindings
void PLASMA_DPOTRS(PLASMA_enum *uplo, int *N, int *NRHS, double *A, int *LDA, double *B, int* LDB, int * INFO)
Online Browsing

Dive into PLASMA_dpotrs

PLASMA_dpotrs_Tile

Purpose

PLASMA_dpotrs_Tile - Solves a system of linear equations A * X = B with a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A using the Cholesky factorization A = UT*U or A = L*LT computed by PLASMA_dpotrf. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        double* (IN)
         The triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T,
         computed by PLASMA_dpotrf.

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dpotrs_Tile(PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_DPOTRS_TILE(PLASMA_enum *uplo, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_dpotrs_Tile

PLASMA_dsgesv

Purpose

PLASMA_dsgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B.

IMPORTANT NOTICE: in its current state, this routine only intends to be a proof-of-concept. There are still some costly serial parts and one may NOT expect to achieve high performance.

PLASMA_dsgesv first attempts to factorize the matrix in COMPLEX and use this factorization within an iterative refinement procedure to produce a solution with COMPLEX*16 normwise backward error quality (see below). If the approach fails the method switches to a COMPLEX*16 factorization and solve.

The iterative refinement is not going to be a winning strategy if the ratio COMPLEX performance over COMPLEX*16 performance is too small. A reasonable strategy should take the number of right-hand sides and the size of the matrix into account. This might be done with a call to ILAENV in the future. Up to now, we always try iterative refinement.

The iterative refinement process is stopped if ITER > ITERMAX or for all the RHS we have: RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX where

The values ITERMAX and BWDMAX are fixed to 30 and 1.0D+00 respectively.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        double* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        double* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        double* (IN)
         The N-by-NRHS matrix of right hand side matrix B.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).

X        double* (OUT)
         If return value = 0, the N-by-NRHS solution matrix X.

LDX      int (IN)
         The leading dimension of the array B. LDX >= max(1,N).

ITER     int* (OUT)is the number of the current iteration in the iterative refinement process

Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_dsgesv(int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB, double *X, int LDX, int *ITER)
Fortran Bindings
void PLASMA_DSGESV(int *N, int *NRHS, double *A, int *LDA, double **LH, int **IPIVH, double *B, int *LDB, double *X, int *LDX, int *ITER, int *INFO)
Online Browsing

Dive into PLASMA_dsgesv

PLASMA_dsgesv_Tile

Purpose

PLASMA_dsgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

IMPORTANT NOTICE: in its current state, this routine only intends to be a proof-of-concept. There are still some costly serial parts and one may NOT expect to achieve high performance.

PLASMA_dsgesv first attempts to factorize the matrix in COMPLEX and use this factorization within an iterative refinement procedure to produce a solution with COMPLEX*16 normwise backward error quality (see below). If the approach fails the method switches to a COMPLEX*16 factorization and solve.

The iterative refinement is not going to be a winning strategy if the ratio COMPLEX performance over COMPLEX*16 performance is too small. A reasonable strategy should take the number of right-hand sides and the size of the matrix into account. This might be done with a call to ILAENV in the future. Up to now, we always try iterative refinement.

The iterative refinement process is stopped if ITER > ITERMAX or for all the RHS we have: RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX where

The values ITERMAX and BWDMAX are fixed to 30 and 1.0D+00 respectively.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        double* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        double* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        double* (IN)
         The N-by-NRHS matrix of right hand side matrix B.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).

X        double* (OUT)
         If return value = 0, the N-by-NRHS solution matrix X.

LDX      int (IN)
         The leading dimension of the array B. LDX >= max(1,N).

ITER     int* (OUT)is the number of the current iteration in the iterative refinement process

Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
Fortran Bindings
void PLASMA_DSGESV_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, long long *X, int *ITER, int *INFO)
Online Browsing

Dive into PLASMA_dsgesv_Tile

PLASMA_dtrsm

Purpose

PLASMA_dtrsm - Computes triangular solve A*X = B or X*A = B

Arguments
side     PLASMA_enum (IN)
         Specifies whether A appears on the left or on the right of X:
         = PlasmaLeft:  A*X = B
         = PlasmaRight: X*A = B

uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

transA   PLASMA_enum (IN)
         Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
         = PlasmaNoTrans:   A is transposed;
         = PlasmaTrans:     A is not transposed;
         = PlasmaTrans: A is conjugate transposed.

diag     PLASMA_enum (IN)
         Specifies whether or not A is unit triangular:
         = PlasmaNonUnit: A is non unit;
         = PlasmaUnit:    A us unit.

N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        double* (IN)
         The triangular matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular
         part of the array A contains the upper triangular matrix, and the strictly lower
         triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N
         lower triangular part of the array A contains the lower triangular matrix, and the
         strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the
         diagonal elements of A are also not referenced and are assumed to be 1.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      double* (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dtrsm(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double *A, int LDA, double *B, int LDB)
Fortran Bindings
void PLASMA_DTRSM(PLASMA_enum *side, PLASMA_enum *uplo, PLASMA_enum *transA, PLASMA_enum *diag, int *N, int *NRHS, double *A, int *LDA, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dtrsm

PLASMA_dtrsm_Tile

Purpose

PLASMA_dtrsm_Tile - Computes triangular solve A*X = B or X*A = B All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
side     PLASMA_enum (IN)
         Specifies whether A appears on the left or on the right of X:
         = PlasmaLeft:  A*X = B
         = PlasmaRight: X*A = B

uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

transA   PLASMA_enum (IN)
         Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
         = PlasmaNoTrans:   A is transposed;
         = PlasmaTrans:     A is not transposed;
         = PlasmaTrans: A is conjugate transposed.

diag     PLASMA_enum (IN)
         Specifies whether or not A is unit triangular:
         = PlasmaNonUnit: A is non unit;
         = PlasmaUnit:    A us unit.

A        double* (IN)
         The triangular matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular
         part of the array A contains the upper triangular matrix, and the strictly lower
         triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N
         lower triangular part of the array A contains the lower triangular matrix, and the
         strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the
         diagonal elements of A are also not referenced and are assumed to be 1.

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dtrsm_Tile(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_DTRSM_TILE(PLASMA_enum *side, PLASMA_enum *uplo, PLASMA_enum *transA, PLASMA_enum *diag, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_dtrsm_Tile

PLASMA_dtrsmpl

Purpose

PLASMA_dtrsmpl - Performs the forward substitution step of solving a system of linear equations after the tile LU factorization of the matrix.

Arguments
N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        double* (IN)
         The tile factor L from the factorization, computed by PLASMA_dgetrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        double* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_dgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_dgetrf (not equivalent to LAPACK).

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      double* (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_dtrsmpl(int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB)
Fortran Bindings
void PLASMA_DTRSMPL(int *N, int *NRHS, double *A, int *LDA, double **LH, int **IPIVH, double *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_dtrsmpl

PLASMA_dtrsmpl_Tile

Purpose

PLASMA_dtrsmpl_Tile - Performs the forward substitution step of solving a system of linear equations after the tile LU factorization of the matrix. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        double* (IN)
         The tile factor L from the factorization, computed by PLASMA_dgetrf.

L        double* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_dgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_dgetrf (not equivalent to LAPACK).

B        double* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_dtrsmpl_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_DTRSMPL_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_dtrsmpl_Tile

PLASMA_sgelqf

Purpose

PLASMA_sgelqf - Computes the tile LQ factorization of a complex M-by-N matrix A: A = L * Q.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

A        float* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and below the diagonal of the array contain the m-by-min(M,N)
         lower trapezoidal matrix L (L is lower triangular if M <= N); the elements above the
         diagonal represent the unitary matrix Q as a product of elementary reflectors, stored
         by tiles.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        float* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_sgelqs to solve the system
         of equations.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_sgelqf(int M, int N, float *A, int LDA, float *T)
Fortran Bindings
void PLASMA_SGELQF(int *M, int *N, float *A, int *LDA, float **T, int *INFO)
Online Browsing

Dive into PLASMA_sgelqf

PLASMA_sgelqf_Tile

Purpose

PLASMA_sgelqf_Tile - Computes the tile LQ factorization of a complex M-by-N matrix A: A = L * Q. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and below the diagonal of the array contain the m-by-min(M,N)
         lower trapezoidal matrix L (L is lower triangular if M <= N); the elements above the
         diagonal represent the unitary matrix Q as a product of elementary reflectors, stored
         by tiles.

T        float* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_sgelqs to solve the system
         of equations.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_sgelqf_Tile(PLASMA_desc *A, PLASMA_desc *T)
Fortran Bindings
void PLASMA_SGELQF_TILE(long long int *A, long long int *T,int *INFO)
Online Browsing

Dive into PLASMA_sgelqf_Tile

PLASMA_sgelqs

Purpose

PLASMA_sgelqs - Compute a minimum-norm solution min || A*X - B || using the LQ factorization A = L*Q computed by PLASMA_sgelqf.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= M >= 0.

NRHS     int (IN)
         The number of columns of B. NRHS >= 0.

A        float* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_sgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= M.

T        float* (IN)
         Auxiliary factorization data, computed by PLASMA_sgelqf.

B        float* (INOUT)
         On entry, the M-by-NRHS right hand side matrix B.
         On exit, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= N.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_sgelqs(int M, int N, int NRHS, float *A, int LDA, float *T, float *B, int LDB)
Fortran Bindings
void PLASMA_SGELQS(int *M, int *N, int *NRHS, float *A, int *LDA, float **T, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_sgelqs

PLASMA_sgelqs_Tile

Purpose

PLASMA_sgelqs_Tile - Compute a minimum-norm solution min || A*X - B || using the LQ factorization A = L*Q computed by PLASMA_sgelqf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_sgelqf.

T        float* (IN)
         Auxiliary factorization data, computed by PLASMA_sgelqf.

B        float* (INOUT)
         On entry, the M-by-NRHS right hand side matrix B.
         On exit, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_sgelqs_Tile(PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_SGELQS_TILE(long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_sgelqs_Tile

PLASMA_sgels

Purpose

PLASMA_sgels - solves overdetermined or underdetermined linear systems involving an M-by-N matrix A using the QR or the LQ factorization of A. It is assumed that A has full rank. The following options are provided:

  1. trans = PlasmaNoTrans and M >= N: find the least squares solution of an overdetermined system, i.e., solve the least squares problem: minimize || B - A*X ||.

  2. trans = PlasmaNoTrans and M < N: find the minimum norm solution of an underdetermined system A * X = B.

Several right hand side vectors B and solution vectors X can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X.

Arguments
trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   the linear system involves A;
         = PlasmaTrans: the linear system involves A**T.
         Currently only PlasmaNoTrans is supported.

M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrices B and X.
         NRHS >= 0.

A        float* (INOUT)
         On entry, the M-by-N matrix A.
         On exit,
         if M >= N, A is overwritten by details of its QR factorization as returned by
                    PLASMA_sgeqrf;
         if M < N, A is overwritten by details of its LQ factorization as returned by
                     PLASMA_sgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        float* (OUT)
         On exit, auxiliary factorization data.

B        float* (INOUT)
         On entry, the M-by-NRHS matrix B of right hand side vectors, stored columnwise;
         On exit, if return value = 0, B is overwritten by the solution vectors, stored
         columnwise:
         if M >= N, rows 1 to N of B contain the least squares solution vectors; the residual
         sum of squares for the solution in each column is given by the sum of squares of the
         modulus of elements N+1 to M in that column;
         if M < N, rows 1 to N of B contain the minimum norm solution vectors;

LDB      int (IN)
         The leading dimension of the array B. LDB >= MAX(1,M,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_sgels(PLASMA_enum trans, int M, int N, int NRHS, float *A, int LDA, float *T, float *B, int LDB)
Fortran Bindings
void PLASMA_SGELS(PLASMA_enum *trans, int *M, int *N, int *NRHS, float *A, int *LDA, float **T, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_sgels

PLASMA_sgels_Tile

Purpose

PLASMA_sgels_Tile - solves overdetermined or underdetermined linear systems involving an M-by-N matrix A using the QR or the LQ factorization of A. It is assumed that A has full rank. The following options are provided:

  1. trans = PlasmaNoTrans and M >= N: find the least squares solution of an overdetermined system, i.e., solve the least squares problem: minimize || B - A*X ||.

  2. trans = PlasmaNoTrans and M < N: find the minimum norm solution of an underdetermined system A * X = B.

Several right hand side vectors B and solution vectors X can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   the linear system involves A;
         = PlasmaTrans: the linear system involves A**T.
         Currently only PlasmaNoTrans is supported.

A        float* (INOUT)
         On entry, the M-by-N matrix A.
         On exit,
         if M >= N, A is overwritten by details of its QR factorization as returned by
                    PLASMA_sgeqrf;
         if M < N, A is overwritten by details of its LQ factorization as returned by
                     PLASMA_sgelqf.

T        float* (OUT)
         On exit, auxiliary factorization data.

B        float* (INOUT)
         On entry, the M-by-NRHS matrix B of right hand side vectors, stored columnwise;
         On exit, if return value = 0, B is overwritten by the solution vectors, stored
         columnwise:
         if M >= N, rows 1 to N of B contain the least squares solution vectors; the residual
         sum of squares for the solution in each column is given by the sum of squares of the
         modulus of elements N+1 to M in that column;
         if M < N, rows 1 to N of B contain the minimum norm solution vectors;
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_sgels_Tile(PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_SGELS_TILE(PLASMA_enum *trans, long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_sgels_Tile

PLASMA_sgeqrf

Purpose

PLASMA_sgeqrf - Computes the tile QR factorization of a complex M-by-N matrix A: A = Q * R.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A.  N >= 0.

A        float* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N
         upper trapezoidal matrix R (R is upper triangular if M >= N); the elements below the
         diagonal represent the unitary matrix Q as a product of elementary reflectors stored
         by tiles.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        float* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_sgeqrs to solve the system
         of equations.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_sgeqrf(int M, int N, float *A, int LDA, float *T)
Fortran Bindings
void PLASMA_SGEQRF(int *M, int *N, float *A, int *LDA, float **T, int *INFO)
Online Browsing

Dive into PLASMA_sgeqrf

PLASMA_sgeqrf_Tile

Purpose

PLASMA_sgeqrf_Tile - Computes the tile QR factorization of a complex M-by-N matrix A: A = Q * R. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N
         upper trapezoidal matrix R (R is upper triangular if M >= N); the elements below the
         diagonal represent the unitary matrix Q as a product of elementary reflectors stored
         by tiles.

T        float* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_sgeqrs to solve the system
         of equations.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_sgeqrf_Tile(PLASMA_desc *A, PLASMA_desc *T)
Fortran Bindings
void PLASMA_SGEQRF_TILE(long long int *A, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_sgeqrf_Tile

PLASMA_sgeqrs

Purpose

PLASMA_sgeqrs - Compute a minimum-norm solution min || A*X - B || using the RQ factorization A = R*Q computed by PLASMA_sgeqrf.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= M >= 0.

NRHS     int (IN)
         The number of columns of B. NRHS >= 0.

A        float* (INOUT)
         Details of the QR factorization of the original matrix A as returned by PLASMA_sgeqrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= M.

T        float* (IN)
         Auxiliary factorization data, computed by PLASMA_sgeqrf.

B        float* (INOUT)
         On entry, the m-by-nrhs right hand side matrix B.
         On exit, the n-by-nrhs solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_sgeqrs(int M, int N, int NRHS, float *A, int LDA, float *T, float *B, int LDB)
Fortran Bindings
void PLASMA_SGEQRS(int *M, int *N, int *NRHS, float *A, int *LDA, float **T, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_sgeqrs

PLASMA_sgeqrs_Tile

Purpose

PLASMA_sgeqrs_Tile - Compute a minimum-norm solution min || A*X - B || using the RQ factorization A = R*Q computed by PLASMA_sgeqrf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (INOUT)
         Details of the QR factorization of the original matrix A as returned by PLASMA_sgeqrf.

T        float* (IN)
         Auxiliary factorization data, computed by PLASMA_sgeqrf.

B        float* (INOUT)
         On entry, the m-by-nrhs right hand side matrix B.
         On exit, the n-by-nrhs solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_sgeqrs_Tile(PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_SGEQRS_TILE(long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_sgeqrs_Tile

PLASMA_sgesv

Purpose

PLASMA_sgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        float* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        float* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        float* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_sgesv(int N, int NRHS, float *A, int LDA, float *L, int *IPIV, float *B, int LDB)
Fortran Bindings
void PLASMA_SGESV(int *N, int *NRHS, float *A, int *LDA, float **LH, int **IPIVH, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_sgesv

PLASMA_sgesv_Tile

Purpose

PLASMA_sgesv_Tile - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

L        float* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        float* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_sgesv_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_SGESV_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_sgesv_Tile

PLASMA_sgetrf

Purpose

PLASMA_sgetrf - Computes an LU factorization of a general M-by-N matrix A using the tile LU algorithm with partial tile pivoting with row interchanges.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

A        float* (INOUT)
         On entry, the M-by-N matrix to be factored.
         On exit, the tile factors L and U from the factorization.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

L        float* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         required by PLASMA_sgetrs to solve the system of equations.

IPIV     int* (OUT)
         The pivot indices that define the permutations (not equivalent to LAPACK).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, and division by zero will occur
               if it is used to solve a system of equations.
C Bindings
int PLASMA_sgetrf(int M, int N, float *A, int LDA, float *L, int *IPIV)
Fortran Bindings
void PLASMA_SGETRF(int *M, int *N, float *A, int *LDA, float **LH, int **IPIVH, int *INFO)
Online Browsing

Dive into PLASMA_sgetrf

PLASMA_sgetrf_Tile

Purpose

PLASMA_sgetrf_Tile - Computes an LU factorization of a general M-by-N matrix A using the tile LU algorithm with partial tile pivoting with row interchanges. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (INOUT)
         On entry, the M-by-N matrix to be factored.
         On exit, the tile factors L and U from the factorization.

L        float* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         required by PLASMA_sgetrs to solve the system of equations.

IPIV     int* (OUT)
         The pivot indices that define the permutations (not equivalent to LAPACK).
Return Value:
          = 0: successful exit
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, and division by zero will occur
               if it is used to solve a system of equations.
C Bindings
int PLASMA_sgetrf_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV)
Fortran Bindings
void PLASMA_SGETRF_TILE(long long int *A, long long int *L, int **IPIVH, int *INFO)
Online Browsing

Dive into PLASMA_sgetrf_Tile

PLASMA_sgetrs

Purpose

PLASMA_sgetrs - Solves a system of linear equations A * X = B, with a general N-by-N matrix A using the tile LU factorization computed by PLASMA_sgetrf.

Arguments
trans    PLASMA_enum (IN)
         Intended to specify the the form of the system of equations:
         = PlasmaNoTrans:   A * X = B     (No transpose)
         = PlasmaTrans:     A**T * X = B  (Transpose)
         = PlasmaTrans: A**T * X = B  (Conjugate transpose)
         Currently only PlasmaNoTrans is supported.

N        int (IN)
         The order of the matrix A.  N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        float* (IN)
         The tile factors L and U from the factorization, computed by PLASMA_sgetrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        float* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_sgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_sgetrf (not equivalent to LAPACK).

B        float* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, the solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_sgetrs(PLASMA_enum uplo, int N, int NRHS, float *A, int LDA, float *L, int *IPIV, float *B, int LDB)
Fortran Bindings
void PLASMA_SGETRS(PLASMA_enum *uplo, int *N, int *NRHS, float *A, int *LDA, float **LH, int **IPIVH, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_sgetrs

PLASMA_sgetrs_Tile

Purpose

PLASMA_sgetrs_Tile - Solves a system of linear equations A * X = B, with a general N-by-N matrix A using the tile LU factorization computed by PLASMA_sgetrf. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (IN)
         The tile factors L and U from the factorization, computed by PLASMA_sgetrf.

L        float* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_sgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_sgetrf (not equivalent to LAPACK).

B        float* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, the solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_sgetrs_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_SGETRS_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_sgetrs_Tile

PLASMA_sposv

Purpose

PLASMA_sposv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N symmetric positive definite (or Hermitian positive definite in the complex case) matrix and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.

Arguments
uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        float* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_sposv(PLASMA_enum uplo, int N, int NRHS, float *A, int LDA, float *B, int LDB)
Fortran Bindings
void PLASMA_SPOSV(PLASMA_enum *uplo, int *N, int *NRHS, float *A, int *LDA, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_sposv

PLASMA_sposv_Tile

Purpose

PLASMA_sposv_Tile - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N symmetric positive definite (or Hermitian positive definite in the complex case) matrix and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        float* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_sposv_Tile(PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_SPOSV_TILE(PLASMA_enum *uplo, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_sposv_Tile

PLASMA_spotrf

Purpose

PLASMA_spotrf - Computes the Cholesky factorization of a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A. The factorization has the form

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The order of the matrix A. N >= 0.

A        float* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_spotrf(PLASMA_enum uplo, int N, float *A, int LDA)
Fortran Bindings
void PLASMA_SPOTRF(PLASMA_enum *uplo, int *N, float *A, int *LDA, int *INFO)
Online Browsing

Dive into PLASMA_spotrf

PLASMA_spotrf_Tile

Purpose

PLASMA_spotrf_Tile - Computes the Cholesky factorization of a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A. The factorization has the form

A = U**T * U, if uplo = PlasmaUpper, or
A = L * L**T, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        float* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**T*U or A = L*L**T.
Return Value:
          = 0: successful exit
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_spotrf_Tile(PLASMA_enum uplo, PLASMA_desc *A)
Fortran Bindings
void PLASMA_SPOTRF_TILE(PLASMA_enum *uplo, long long int *A, int *INFO)
Online Browsing

Dive into PLASMA_spotrf_Tile

PLASMA_spotrs

Purpose

PLASMA_spotrs - Solves a system of linear equations A * X = B with a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A using the Cholesky factorization A = UT*U or A = L*LT computed by PLASMA_spotrf.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        float* (IN)
         The triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T,
         computed by PLASMA_spotrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_spotrs(PLASMA_enum uplo, int N, int NRHS, float *A, int LDA, float *B, int LDB)
Fortran Bindings
void PLASMA_SPOTRS(PLASMA_enum *uplo, int *N, int *NRHS, float *A, int *LDA, float *B, int* LDB, int * INFO)
Online Browsing

Dive into PLASMA_spotrs

PLASMA_spotrs_Tile

Purpose

PLASMA_spotrs_Tile - Solves a system of linear equations A * X = B with a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A using the Cholesky factorization A = UT*U or A = L*LT computed by PLASMA_spotrf. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        float* (IN)
         The triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T,
         computed by PLASMA_spotrf.

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_spotrs_Tile(PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_SPOTRS_TILE(PLASMA_enum *uplo, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_spotrs_Tile

PLASMA_strsm

Purpose

PLASMA_strsm - Computes triangular solve A*X = B or X*A = B

Arguments
side     PLASMA_enum (IN)
         Specifies whether A appears on the left or on the right of X:
         = PlasmaLeft:  A*X = B
         = PlasmaRight: X*A = B

uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

transA   PLASMA_enum (IN)
         Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
         = PlasmaNoTrans:   A is transposed;
         = PlasmaTrans:     A is not transposed;
         = PlasmaTrans: A is conjugate transposed.

diag     PLASMA_enum (IN)
         Specifies whether or not A is unit triangular:
         = PlasmaNonUnit: A is non unit;
         = PlasmaUnit:    A us unit.

N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        float* (IN)
         The triangular matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular
         part of the array A contains the upper triangular matrix, and the strictly lower
         triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N
         lower triangular part of the array A contains the lower triangular matrix, and the
         strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the
         diagonal elements of A are also not referenced and are assumed to be 1.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      float* (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_strsm(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, float *A, int LDA, float *B, int LDB)
Fortran Bindings
void PLASMA_STRSM(PLASMA_enum *side, PLASMA_enum *uplo, PLASMA_enum *transA, PLASMA_enum *diag, int *N, int *NRHS, float *A, int *LDA, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_strsm

PLASMA_strsm_Tile

Purpose

PLASMA_strsm_Tile - Computes triangular solve A*X = B or X*A = B All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
side     PLASMA_enum (IN)
         Specifies whether A appears on the left or on the right of X:
         = PlasmaLeft:  A*X = B
         = PlasmaRight: X*A = B

uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

transA   PLASMA_enum (IN)
         Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
         = PlasmaNoTrans:   A is transposed;
         = PlasmaTrans:     A is not transposed;
         = PlasmaTrans: A is conjugate transposed.

diag     PLASMA_enum (IN)
         Specifies whether or not A is unit triangular:
         = PlasmaNonUnit: A is non unit;
         = PlasmaUnit:    A us unit.

A        float* (IN)
         The triangular matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular
         part of the array A contains the upper triangular matrix, and the strictly lower
         triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N
         lower triangular part of the array A contains the lower triangular matrix, and the
         strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the
         diagonal elements of A are also not referenced and are assumed to be 1.

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_strsm_Tile(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_STRSM_TILE(PLASMA_enum *side, PLASMA_enum *uplo, PLASMA_enum *transA, PLASMA_enum *diag, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_strsm_Tile

PLASMA_strsmpl

Purpose

PLASMA_strsmpl - Performs the forward substitution step of solving a system of linear equations after the tile LU factorization of the matrix.

Arguments
N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        float* (IN)
         The tile factor L from the factorization, computed by PLASMA_sgetrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        float* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_sgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_sgetrf (not equivalent to LAPACK).

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      float* (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_strsmpl(int N, int NRHS, float *A, int LDA, float *L, int *IPIV, float *B, int LDB)
Fortran Bindings
void PLASMA_STRSMPL(int *N, int *NRHS, float *A, int *LDA, float **LH, int **IPIVH, float *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_strsmpl

PLASMA_strsmpl_Tile

Purpose

PLASMA_strsmpl_Tile - Performs the forward substitution step of solving a system of linear equations after the tile LU factorization of the matrix. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        float* (IN)
         The tile factor L from the factorization, computed by PLASMA_sgetrf.

L        float* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_sgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_sgetrf (not equivalent to LAPACK).

B        float* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_strsmpl_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_STRSMPL_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_strsmpl_Tile

PLASMA_zcgesv

Purpose

PLASMA_zcgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B.

IMPORTANT NOTICE: in its current state, this routine only intends to be a proof-of-concept. There are still some costly serial parts and one may NOT expect to achieve high performance.

PLASMA_zcgesv first attempts to factorize the matrix in COMPLEX and use this factorization within an iterative refinement procedure to produce a solution with COMPLEX*16 normwise backward error quality (see below). If the approach fails the method switches to a COMPLEX*16 factorization and solve.

The iterative refinement is not going to be a winning strategy if the ratio COMPLEX performance over COMPLEX*16 performance is too small. A reasonable strategy should take the number of right-hand sides and the size of the matrix into account. This might be done with a call to ILAENV in the future. Up to now, we always try iterative refinement.

The iterative refinement process is stopped if ITER > ITERMAX or for all the RHS we have: RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX where

The values ITERMAX and BWDMAX are fixed to 30 and 1.0D+00 respectively.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (IN)
         The N-by-NRHS matrix of right hand side matrix B.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).

X        PLASMA_Complex64_t* (OUT)
         If return value = 0, the N-by-NRHS solution matrix X.

LDX      int (IN)
         The leading dimension of the array B. LDX >= max(1,N).

ITER     int* (OUT)is the number of the current iteration in the iterative refinement process

Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_zcgesv(int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *L, int *IPIV, PLASMA_Complex64_t *B, int LDB, PLASMA_Complex64_t *X, int LDX, int *ITER)
Fortran Bindings
void PLASMA_ZCGESV(int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **LH, int **IPIVH, PLASMA_Complex64_t *B, int *LDB, PLASMA_Complex64_t *X, int *LDX, int *ITER, int *INFO)
Online Browsing

Dive into PLASMA_zcgesv

PLASMA_zcgesv_Tile

Purpose

PLASMA_zcgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

IMPORTANT NOTICE: in its current state, this routine only intends to be a proof-of-concept. There are still some costly serial parts and one may NOT expect to achieve high performance.

PLASMA_zcgesv first attempts to factorize the matrix in COMPLEX and use this factorization within an iterative refinement procedure to produce a solution with COMPLEX*16 normwise backward error quality (see below). If the approach fails the method switches to a COMPLEX*16 factorization and solve.

The iterative refinement is not going to be a winning strategy if the ratio COMPLEX performance over COMPLEX*16 performance is too small. A reasonable strategy should take the number of right-hand sides and the size of the matrix into account. This might be done with a call to ILAENV in the future. Up to now, we always try iterative refinement.

The iterative refinement process is stopped if ITER > ITERMAX or for all the RHS we have: RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX where

The values ITERMAX and BWDMAX are fixed to 30 and 1.0D+00 respectively.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (IN)
         The N-by-NRHS matrix of right hand side matrix B.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).

X        PLASMA_Complex64_t* (OUT)
         If return value = 0, the N-by-NRHS solution matrix X.

LDX      int (IN)
         The leading dimension of the array B. LDX >= max(1,N).

ITER     int* (OUT)is the number of the current iteration in the iterative refinement process

Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_zcgesv_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B, PLASMA_desc *X, int *ITER)
Fortran Bindings
void PLASMA_ZCGESV_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, long long *X, int *ITER, int *INFO)
Online Browsing

Dive into PLASMA_zcgesv_Tile

PLASMA_zgelqf

Purpose

PLASMA_zgelqf - Computes the tile LQ factorization of a complex M-by-N matrix A: A = L * Q.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and below the diagonal of the array contain the m-by-min(M,N)
         lower trapezoidal matrix L (L is lower triangular if M <= N); the elements above the
         diagonal represent the unitary matrix Q as a product of elementary reflectors, stored
         by tiles.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_zgelqs to solve the system
         of equations.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zgelqf(int M, int N, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T)
Fortran Bindings
void PLASMA_ZGELQF(int *M, int *N, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, int *INFO)
Online Browsing

Dive into PLASMA_zgelqf

PLASMA_zgelqf_Tile

Purpose

PLASMA_zgelqf_Tile - Computes the tile LQ factorization of a complex M-by-N matrix A: A = L * Q. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and below the diagonal of the array contain the m-by-min(M,N)
         lower trapezoidal matrix L (L is lower triangular if M <= N); the elements above the
         diagonal represent the unitary matrix Q as a product of elementary reflectors, stored
         by tiles.

T        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_zgelqs to solve the system
         of equations.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zgelqf_Tile(PLASMA_desc *A, PLASMA_desc *T)
Fortran Bindings
void PLASMA_ZGELQF_TILE(long long int *A, long long int *T,int *INFO)
Online Browsing

Dive into PLASMA_zgelqf_Tile

PLASMA_zgelqs

Purpose

PLASMA_zgelqs - Compute a minimum-norm solution min || A*X - B || using the LQ factorization A = L*Q computed by PLASMA_zgelqf.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= M >= 0.

NRHS     int (IN)
         The number of columns of B. NRHS >= 0.

A        PLASMA_Complex64_t* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_zgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= M.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgelqf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-NRHS right hand side matrix B.
         On exit, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= N.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zgelqs(int M, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZGELQS(int *M, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zgelqs

PLASMA_zgelqs_Tile

Purpose

PLASMA_zgelqs_Tile - Compute a minimum-norm solution min || A*X - B || using the LQ factorization A = L*Q computed by PLASMA_zgelqf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_zgelqf.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgelqf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-NRHS right hand side matrix B.
         On exit, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zgelqs_Tile(PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_ZGELQS_TILE(long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_zgelqs_Tile

PLASMA_zgels

Purpose

PLASMA_zgels - solves overdetermined or underdetermined linear systems involving an M-by-N matrix A using the QR or the LQ factorization of A. It is assumed that A has full rank. The following options are provided:

  1. trans = PlasmaNoTrans and M >= N: find the least squares solution of an overdetermined system, i.e., solve the least squares problem: minimize || B - A*X ||.

  2. trans = PlasmaNoTrans and M < N: find the minimum norm solution of an underdetermined system A * X = B.

Several right hand side vectors B and solution vectors X can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X.

Arguments
trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   the linear system involves A;
         = PlasmaConjTrans: the linear system involves A**H.
         Currently only PlasmaNoTrans is supported.

M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrices B and X.
         NRHS >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix A.
         On exit,
         if M >= N, A is overwritten by details of its QR factorization as returned by
                    PLASMA_zgeqrf;
         if M < N, A is overwritten by details of its LQ factorization as returned by
                     PLASMA_zgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-NRHS matrix B of right hand side vectors, stored columnwise;
         On exit, if return value = 0, B is overwritten by the solution vectors, stored
         columnwise:
         if M >= N, rows 1 to N of B contain the least squares solution vectors; the residual
         sum of squares for the solution in each column is given by the sum of squares of the
         modulus of elements N+1 to M in that column;
         if M < N, rows 1 to N of B contain the minimum norm solution vectors;

LDB      int (IN)
         The leading dimension of the array B. LDB >= MAX(1,M,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zgels(PLASMA_enum trans, int M, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZGELS(PLASMA_enum *trans, int *M, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zgels

PLASMA_zgels_Tile

Purpose

PLASMA_zgels_Tile - solves overdetermined or underdetermined linear systems involving an M-by-N matrix A using the QR or the LQ factorization of A. It is assumed that A has full rank. The following options are provided:

  1. trans = PlasmaNoTrans and M >= N: find the least squares solution of an overdetermined system, i.e., solve the least squares problem: minimize || B - A*X ||.

  2. trans = PlasmaNoTrans and M < N: find the minimum norm solution of an underdetermined system A * X = B.

Several right hand side vectors B and solution vectors X can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   the linear system involves A;
         = PlasmaConjTrans: the linear system involves A**H.
         Currently only PlasmaNoTrans is supported.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix A.
         On exit,
         if M >= N, A is overwritten by details of its QR factorization as returned by
                    PLASMA_zgeqrf;
         if M < N, A is overwritten by details of its LQ factorization as returned by
                     PLASMA_zgelqf.

T        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-NRHS matrix B of right hand side vectors, stored columnwise;
         On exit, if return value = 0, B is overwritten by the solution vectors, stored
         columnwise:
         if M >= N, rows 1 to N of B contain the least squares solution vectors; the residual
         sum of squares for the solution in each column is given by the sum of squares of the
         modulus of elements N+1 to M in that column;
         if M < N, rows 1 to N of B contain the minimum norm solution vectors;
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zgels_Tile(PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_ZGELS_TILE(PLASMA_enum *trans, long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_zgels_Tile

PLASMA_zgeqrf

Purpose

PLASMA_zgeqrf - Computes the tile QR factorization of a complex M-by-N matrix A: A = Q * R.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A.  N >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N
         upper trapezoidal matrix R (R is upper triangular if M >= N); the elements below the
         diagonal represent the unitary matrix Q as a product of elementary reflectors stored
         by tiles.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_zgeqrs to solve the system
         of equations.
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zgeqrf(int M, int N, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T)
Fortran Bindings
void PLASMA_ZGEQRF(int *M, int *N, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, int *INFO)
Online Browsing

Dive into PLASMA_zgeqrf

PLASMA_zgeqrf_Tile

Purpose

PLASMA_zgeqrf_Tile - Computes the tile QR factorization of a complex M-by-N matrix A: A = Q * R. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix A.
         On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N
         upper trapezoidal matrix R (R is upper triangular if M >= N); the elements below the
         diagonal represent the unitary matrix Q as a product of elementary reflectors stored
         by tiles.

T        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, required by PLASMA_zgeqrs to solve the system
         of equations.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zgeqrf_Tile(PLASMA_desc *A, PLASMA_desc *T)
Fortran Bindings
void PLASMA_ZGEQRF_TILE(long long int *A, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_zgeqrf_Tile

PLASMA_zgeqrs

Purpose

PLASMA_zgeqrs - Compute a minimum-norm solution min || A*X - B || using the RQ factorization A = R*Q computed by PLASMA_zgeqrf.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= M >= 0.

NRHS     int (IN)
         The number of columns of B. NRHS >= 0.

A        PLASMA_Complex64_t* (INOUT)
         Details of the QR factorization of the original matrix A as returned by PLASMA_zgeqrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= M.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgeqrf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the m-by-nrhs right hand side matrix B.
         On exit, the n-by-nrhs solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zgeqrs(int M, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZGEQRS(int *M, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zgeqrs

PLASMA_zgeqrs_Tile

Purpose

PLASMA_zgeqrs_Tile - Compute a minimum-norm solution min || A*X - B || using the RQ factorization A = R*Q computed by PLASMA_zgeqrf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (INOUT)
         Details of the QR factorization of the original matrix A as returned by PLASMA_zgeqrf.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgeqrf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the m-by-nrhs right hand side matrix B.
         On exit, the n-by-nrhs solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zgeqrs_Tile(PLASMA_desc *A, PLASMA_desc *B, PLASMA_desc *T)
Fortran Bindings
void PLASMA_ZGEQRS_TILE(long long int *A, long long int *B, long long int *T, int *INFO)
Online Browsing

Dive into PLASMA_zgeqrs_Tile

PLASMA_zgesv

Purpose

PLASMA_zgesv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B.

Arguments
N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_zgesv(int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *L, int *IPIV, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZGESV(int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **LH, int **IPIVH, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zgesv

PLASMA_zgesv_Tile

Purpose

PLASMA_zgesv_Tile - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices. The tile LU decomposition with partial tile pivoting and row interchanges is used to factor A. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-N coefficient matrix A.
         On exit, the tile L and U factors from the factorization (not equivalent to LAPACK).

L        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         necessary to solve the system of equations.

IPIV     int* (OUT)
         On exit, the pivot indices that define the permutations (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, so the solution could not be computed.
C Bindings
int PLASMA_zgesv_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZGESV_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zgesv_Tile

PLASMA_zgetrf

Purpose

PLASMA_zgetrf - Computes an LU factorization of a general M-by-N matrix A using the tile LU algorithm with partial tile pivoting with row interchanges.

Arguments
M        int (IN)
         The number of rows of the matrix A. M >= 0.

N        int (IN)
         The number of columns of the matrix A. N >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix to be factored.
         On exit, the tile factors L and U from the factorization.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

L        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         required by PLASMA_zgetrs to solve the system of equations.

IPIV     int* (OUT)
         The pivot indices that define the permutations (not equivalent to LAPACK).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, and division by zero will occur
               if it is used to solve a system of equations.
C Bindings
int PLASMA_zgetrf(int M, int N, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *L, int *IPIV)
Fortran Bindings
void PLASMA_ZGETRF(int *M, int *N, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **LH, int **IPIVH, int *INFO)
Online Browsing

Dive into PLASMA_zgetrf

PLASMA_zgetrf_Tile

Purpose

PLASMA_zgetrf_Tile - Computes an LU factorization of a general M-by-N matrix A using the tile LU algorithm with partial tile pivoting with row interchanges. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix to be factored.
         On exit, the tile factors L and U from the factorization.

L        PLASMA_Complex64_t* (OUT)
         On exit, auxiliary factorization data, related to the tile L factor,
         required by PLASMA_zgetrs to solve the system of equations.

IPIV     int* (OUT)
         The pivot indices that define the permutations (not equivalent to LAPACK).
Return Value:
          = 0: successful exit
          > 0: if i, U(i,i) is exactly zero. The factorization has been completed,
               but the factor U is exactly singular, and division by zero will occur
               if it is used to solve a system of equations.
C Bindings
int PLASMA_zgetrf_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV)
Fortran Bindings
void PLASMA_ZGETRF_TILE(long long int *A, long long int *L, int **IPIVH, int *INFO)
Online Browsing

Dive into PLASMA_zgetrf_Tile

PLASMA_zgetrs

Purpose

PLASMA_zgetrs - Solves a system of linear equations A * X = B, with a general N-by-N matrix A using the tile LU factorization computed by PLASMA_zgetrf.

Arguments
trans    PLASMA_enum (IN)
         Intended to specify the the form of the system of equations:
         = PlasmaNoTrans:   A * X = B     (No transpose)
         = PlasmaTrans:     A**T * X = B  (Transpose)
         = PlasmaConjTrans: A**H * X = B  (Conjugate transpose)
         Currently only PlasmaNoTrans is supported.

N        int (IN)
         The order of the matrix A.  N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B.
         NRHS >= 0.

A        PLASMA_Complex64_t* (IN)
         The tile factors L and U from the factorization, computed by PLASMA_zgetrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_zgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_zgetrf (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, the solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zgetrs(PLASMA_enum uplo, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *L, int *IPIV, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZGETRS(PLASMA_enum *uplo, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **LH, int **IPIVH, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zgetrs

PLASMA_zgetrs_Tile

Purpose

PLASMA_zgetrs_Tile - Solves a system of linear equations A * X = B, with a general N-by-N matrix A using the tile LU factorization computed by PLASMA_zgetrf. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (IN)
         The tile factors L and U from the factorization, computed by PLASMA_zgetrf.

L        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_zgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_zgetrf (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS matrix of right hand side matrix B.
         On exit, the solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zgetrs_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZGETRS_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zgetrs_Tile

PLASMA_zposv

Purpose

PLASMA_zposv - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N symmetric positive definite (or Hermitian positive definite in the complex case) matrix and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as

A = U**H * U, if uplo = PlasmaUpper, or
A = L * L**H, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.

Arguments
uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**H*U or A = L*L**H.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_zposv(PLASMA_enum uplo, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZPOSV(PLASMA_enum *uplo, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zposv

PLASMA_zposv_Tile

Purpose

PLASMA_zposv_Tile - Computes the solution to a system of linear equations A * X = B, where A is an N-by-N symmetric positive definite (or Hermitian positive definite in the complex case) matrix and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as

A = U**H * U, if uplo = PlasmaUpper, or
A = L * L**H, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**H*U or A = L*L**H.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_zposv_Tile(PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZPOSV_TILE(PLASMA_enum *uplo, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zposv_Tile

PLASMA_zpotrf

Purpose

PLASMA_zpotrf - Computes the Cholesky factorization of a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A. The factorization has the form

A = U**H * U, if uplo = PlasmaUpper, or
A = L * L**H, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The order of the matrix A. N >= 0.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**H*U or A = L*L**H.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_zpotrf(PLASMA_enum uplo, int N, PLASMA_Complex64_t *A, int LDA)
Fortran Bindings
void PLASMA_ZPOTRF(PLASMA_enum *uplo, int *N, PLASMA_Complex64_t *A, int *LDA, int *INFO)
Online Browsing

Dive into PLASMA_zpotrf

PLASMA_zpotrf_Tile

Purpose

PLASMA_zpotrf_Tile - Computes the Cholesky factorization of a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A. The factorization has the form

A = U**H * U, if uplo = PlasmaUpper, or
A = L * L**H, if uplo =  PlasmaLower,

where U is an upper triangular matrix and L is a lower triangular matrix. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        PLASMA_Complex64_t* (INOUT)
         On entry, the symmetric positive definite (or Hermitian) matrix A.
         If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A
         contains the upper triangular part of the matrix A, and the strictly lower triangular
         part of A is not referenced.
         If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower
         triangular part of the matrix A, and the strictly upper triangular part of A is not
         referenced.
         On exit, if return value = 0, the factor U or L from the Cholesky factorization
         A = U**H*U or A = L*L**H.
Return Value:
          = 0: successful exit
          > 0: if i, the leading minor of order i of A is not positive definite, so the
               factorization could not be completed, and the solution has not been computed.
C Bindings
int PLASMA_zpotrf_Tile(PLASMA_enum uplo, PLASMA_desc *A)
Fortran Bindings
void PLASMA_ZPOTRF_TILE(PLASMA_enum *uplo, long long int *A, int *INFO)
Online Browsing

Dive into PLASMA_zpotrf_Tile

PLASMA_zpotrs

Purpose

PLASMA_zpotrs - Solves a system of linear equations A * X = B with a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A using the Cholesky factorization A = UH*U or A = L*LH computed by PLASMA_zpotrf.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        PLASMA_Complex64_t* (IN)
         The triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H,
         computed by PLASMA_zpotrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zpotrs(PLASMA_enum uplo, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZPOTRS(PLASMA_enum *uplo, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t *B, int* LDB, int * INFO)
Online Browsing

Dive into PLASMA_zpotrs

PLASMA_zpotrs_Tile

Purpose

PLASMA_zpotrs_Tile - Solves a system of linear equations A * X = B with a symmetric positive definite (or Hermitian positive definite in the complex case) matrix A using the Cholesky factorization A = UH*U or A = L*LH computed by PLASMA_zpotrf. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
uplo     PLASMA_enum (IN)
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

A        PLASMA_Complex64_t* (IN)
         The triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H,
         computed by PLASMA_zpotrf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zpotrs_Tile(PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZPOTRS_TILE(PLASMA_enum *uplo, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zpotrs_Tile

PLASMA_ztrsm

Purpose

PLASMA_ztrsm - Computes triangular solve A*X = B or X*A = B

Arguments
side     PLASMA_enum (IN)
         Specifies whether A appears on the left or on the right of X:
         = PlasmaLeft:  A*X = B
         = PlasmaRight: X*A = B

uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

transA   PLASMA_enum (IN)
         Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
         = PlasmaNoTrans:   A is transposed;
         = PlasmaTrans:     A is not transposed;
         = PlasmaConjTrans: A is conjugate transposed.

diag     PLASMA_enum (IN)
         Specifies whether or not A is unit triangular:
         = PlasmaNonUnit: A is non unit;
         = PlasmaUnit:    A us unit.

N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        PLASMA_Complex64_t* (IN)
         The triangular matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular
         part of the array A contains the upper triangular matrix, and the strictly lower
         triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N
         lower triangular part of the array A contains the lower triangular matrix, and the
         strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the
         diagonal elements of A are also not referenced and are assumed to be 1.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      PLASMA_Complex64_t* (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_ztrsm(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZTRSM(PLASMA_enum *side, PLASMA_enum *uplo, PLASMA_enum *transA, PLASMA_enum *diag, int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_ztrsm

PLASMA_ztrsm_Tile

Purpose

PLASMA_ztrsm_Tile - Computes triangular solve A*X = B or X*A = B All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
side     PLASMA_enum (IN)
         Specifies whether A appears on the left or on the right of X:
         = PlasmaLeft:  A*X = B
         = PlasmaRight: X*A = B

uplo     PLASMA_enum (IN)
         Specifies whether the matrix A is upper triangular or lower triangular:
         = PlasmaUpper: Upper triangle of A is stored;
         = PlasmaLower: Lower triangle of A is stored.

transA   PLASMA_enum (IN)
         Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
         = PlasmaNoTrans:   A is transposed;
         = PlasmaTrans:     A is not transposed;
         = PlasmaConjTrans: A is conjugate transposed.

diag     PLASMA_enum (IN)
         Specifies whether or not A is unit triangular:
         = PlasmaNonUnit: A is non unit;
         = PlasmaUnit:    A us unit.

A        PLASMA_Complex64_t* (IN)
         The triangular matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular
         part of the array A contains the upper triangular matrix, and the strictly lower
         triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N
         lower triangular part of the array A contains the lower triangular matrix, and the
         strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the
         diagonal elements of A are also not referenced and are assumed to be 1.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_ztrsm_Tile(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, PLASMA_desc *A, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZTRSM_TILE(PLASMA_enum *side, PLASMA_enum *uplo, PLASMA_enum *transA, PLASMA_enum *diag, long long int *A, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_ztrsm_Tile

PLASMA_ztrsmpl

Purpose

PLASMA_ztrsmpl - Performs the forward substitution step of solving a system of linear equations after the tile LU factorization of the matrix.

Arguments
N        int (IN)
         The order of the matrix A. N >= 0.

NRHS     int (IN)
         The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.

A        PLASMA_Complex64_t* (IN)
         The tile factor L from the factorization, computed by PLASMA_zgetrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,N).

L        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_zgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_zgetrf (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.

LDB      PLASMA_Complex64_t* (IN)
         The leading dimension of the array B. LDB >= max(1,N).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_ztrsmpl(int N, int NRHS, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *L, int *IPIV, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZTRSMPL(int *N, int *NRHS, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **LH, int **IPIVH, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_ztrsmpl

PLASMA_ztrsmpl_Tile

Purpose

PLASMA_ztrsmpl_Tile - Performs the forward substitution step of solving a system of linear equations after the tile LU factorization of the matrix. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (IN)
         The tile factor L from the factorization, computed by PLASMA_zgetrf.

L        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, related to the tile L factor, computed by PLASMA_zgetrf.

IPIV     int* (IN)
         The pivot indices from PLASMA_zgetrf (not equivalent to LAPACK).

B        PLASMA_Complex64_t* (INOUT)
         On entry, the N-by-NRHS right hand side matrix B.
         On exit, if return value = 0, the N-by-NRHS solution matrix X.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_ztrsmpl_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZTRSMPL_TILE(long long int *A, long long int *L, int **IPIVH, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_ztrsmpl_Tile

PLASMA_zunglq

Purpose

PLASMA_zunglq - Generates an M-by-N matrix Q with orthonormal rows, which is defined as the first M rows of a product of the elementary reflectors returned by PLASMA_zgelqf.

Arguments
M        int (IN)
         The number of rows of the matrix Q. M >= 0.

N        int (IN)
         The number of columns of the matrix Q. N >= M.

K        int (IN)
         The number of rows of elementary tile reflectors whose product defines the matrix Q.
         M >= K >= 0.

A        PLASMA_Complex64_t* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_zgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgelqf.

B        PLASMA_Complex64_t* (OUT)
         On exit, the M-by-N matrix Q.

LDA      int (IN)
         The leading dimension of the array B. LDB >= max(1,M).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zunglq(int M, int N, int K, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZUNGLQ(int *M, int *N, int *K, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zunglq

PLASMA_zunglq_Tile

Purpose

PLASMA_zunglq_Tile - Generates an M-by-N matrix Q with orthonormal rows, which is defined as the first M rows of a product of the elementary reflectors returned by PLASMA_zgelqf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_zgelqf.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgelqf.

B        PLASMA_Complex64_t* (OUT)
         On exit, the M-by-N matrix Q.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zunglq_Tile(PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
Fortran Bindings
Online Browsing

Dive into PLASMA_zunglq_Tile

PLASMA_zungqr

Purpose

PLASMA_zungqr - Generates an M-by-N matrix Q with orthonormal columns, which is defined as the first N columns of a product of the elementary reflectors returned by PLASMA_zgeqrf.

Arguments
M        int (IN)
         The number of rows of the matrix Q. M >= 0.

N        int (IN)
         The number of columns of the matrix Q. N >= M.

K        int (IN)
         The number of columns of elementary tile reflectors whose product defines the matrix Q.
         M >= K >= 0.

A        PLASMA_Complex64_t* (IN)
         Details of the QR factorization of the original matrix A as returned by PLASMA_zgeqrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M).

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgeqrf.

B        PLASMA_Complex64_t* (OUT)
         On exit, the M-by-N matrix Q.

LDB      int (IN)
         The leading dimension of the array B. LDB >= max(1,M).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zungqr(int M, int N, int K, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZUNGQR(int *M, int *N, int *K, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zungqr

PLASMA_zungqr_Tile

Purpose

PLASMA_zungqr_Tile - Generates an M-by-N matrix Q with orthonormal columns, which is defined as the first N columns of a product of the elementary reflectors returned by PLASMA_zgeqrf_Tile. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
A        PLASMA_Complex64_t* (IN)
         Details of the QR factorization of the original matrix A as returned by PLASMA_zgeqrf.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgeqrf.

B        PLASMA_Complex64_t* (OUT)
         On exit, the M-by-N matrix Q.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zungqr_Tile(PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZUNGQR_TILE(long long int *A, long long int *T, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zungqr_Tile

PLASMA_zunmlq

Purpose

PLASMA_zunmlq - overwrites the general M-by-N matrix C with Q*C, where Q is an orthogonal matrix (unitary in the complex case) defined as the product of elementary reflectors returned by PLASMA_zgelqf. Q is of order M.

Arguments
side     PLASMA_enum (IN)
         Intended usage:
         = PlasmaLeft:  apply Q or Q**H from the left;
         = PlasmaRight: apply Q or Q**H from the right.
         Currently only PlasmaLeft is supported.

trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   no transpose, apply Q;
         = PlasmaConjTrans: conjugate transpose, apply Q**H.
         Currently only PlasmaConjTrans is supported.

M        int (IN)
         The number of rows of the matrix C. M >= 0.

N        int (IN)
         The number of columns of the matrix C. N >= 0.

K        int (IN)
         The number of rows of elementary tile reflectors whose product defines the matrix Q.
         M >= K >= 0.

A        PLASMA_Complex64_t* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_zgelqf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,K).

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgelqf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix B.
         On exit, B is overwritten by Q*B or Q**H*B.

LDB      int (IN)
         The leading dimension of the array C. LDC >= max(1,M).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zunmlq(PLASMA_enum side, PLASMA_enum trans, int M, int N, int K, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZUNMLQ(PLASMA_enum *side, PLASMA_enum *trans, int *M, int *N, int *K, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zunmlq

PLASMA_zunmlq_Tile

Purpose

PLASMA_zunmlq_Tile - overwrites the general M-by-N matrix C with Q*C, where Q is an orthogonal matrix (unitary in the complex case) defined as the product of elementary reflectors returned by PLASMA_zgelqf_Tile Q is of order M. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
side     PLASMA_enum (IN)
         Intended usage:
         = PlasmaLeft:  apply Q or Q**H from the left;
         = PlasmaRight: apply Q or Q**H from the right.
         Currently only PlasmaLeft is supported.

trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   no transpose, apply Q;
         = PlasmaConjTrans: conjugate transpose, apply Q**H.
         Currently only PlasmaConjTrans is supported.

A        PLASMA_Complex64_t* (IN)
         Details of the LQ factorization of the original matrix A as returned by PLASMA_zgelqf.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgelqf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix B.
         On exit, B is overwritten by Q*B or Q**H*B.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zunmlq_Tile(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZUNMLQ_TILE(PLASMA_enum *side, PLASMA_enum *trans, long long int *A, long long int *T, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zunmlq_Tile

PLASMA_zunmqr

Purpose

PLASMA_zunmqr - overwrites the general M-by-N matrix C with Q*C, where Q is an orthogonal matrix (unitary in the complex case) defined as the product of elementary reflectors returned by PLASMA_zgeqrf. Q is of order M.

Arguments
side     PLASMA_enum (IN)
         Intended usage:
         = PlasmaLeft:  apply Q or Q**H from the left;
         = PlasmaRight: apply Q or Q**H from the right.
         Currently only PlasmaLeft is supported.

trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   no transpose, apply Q;
         = PlasmaConjTrans: conjugate transpose, apply Q**H.
         Currently only PlasmaConjTrans is supported.

M        int (IN)
         The number of rows of the matrix C. M >= 0.

N        int (IN)
         The number of columns of the matrix C. N >= 0.

K        int (IN)
         The number of columns of elementary tile reflectors whose product defines the matrix Q.
         M >= K >= 0.

A        PLASMA_Complex64_t* (IN)
         Details of the QR factorization of the original matrix A as returned by PLASMA_zgeqrf.

LDA      int (IN)
         The leading dimension of the array A. LDA >= max(1,M);

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgeqrf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix B.
         On exit, B is overwritten by Q*B or Q**H*B.

LDB      int (IN)
         The leading dimension of the array C. LDC >= max(1,M).
Return Value:
          = 0: successful exit
          < 0: if -i, the i-th argument had an illegal value
C Bindings
int PLASMA_zunmqr(PLASMA_enum side, PLASMA_enum trans, int M, int N, int K, PLASMA_Complex64_t *A, int LDA, PLASMA_Complex64_t *T, PLASMA_Complex64_t *B, int LDB)
Fortran Bindings
void PLASMA_ZUNMQR(PLASMA_enum *side, PLASMA_enum *trans, int *M, int *N, int *K, PLASMA_Complex64_t *A, int *LDA, PLASMA_Complex64_t **T, PLASMA_Complex64_t *B, int *LDB, int *INFO)
Online Browsing

Dive into PLASMA_zunmqr

PLASMA_zunmqr_Tile

Purpose

PLASMA_zunmqr_Tile - overwrites the general M-by-N matrix C with Q*C, where Q is an orthogonal matrix (unitary in the complex case) defined as the product of elementary reflectors returned by PLASMA_zgeqrf_Tile Q is of order M. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Arguments
side     PLASMA_enum (IN)
         Intended usage:
         = PlasmaLeft:  apply Q or Q**H from the left;
         = PlasmaRight: apply Q or Q**H from the right.
         Currently only PlasmaLeft is supported.

trans    PLASMA_enum (IN)
         Intended usage:
         = PlasmaNoTrans:   no transpose, apply Q;
         = PlasmaConjTrans: conjugate transpose, apply Q**H.
         Currently only PlasmaConjTrans is supported.

A        PLASMA_Complex64_t* (IN)
         Details of the QR factorization of the original matrix A as returned by PLASMA_zgeqrf.

T        PLASMA_Complex64_t* (IN)
         Auxiliary factorization data, computed by PLASMA_zgeqrf.

B        PLASMA_Complex64_t* (INOUT)
         On entry, the M-by-N matrix B.
         On exit, B is overwritten by Q*B or Q**H*B.
Return Value:
          = 0: successful exit
C Bindings
int PLASMA_zunmqr_Tile(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc *A, PLASMA_desc *T, PLASMA_desc *B)
Fortran Bindings
void PLASMA_ZUNMQR_TILE(PLASMA_enum *side, PLASMA_enum *trans, long long int *A, long long int *T, long long int *B, int *INFO)
Online Browsing

Dive into PLASMA_zunmqr_Tile