PLASMA
Parallel Linear Algebra Software for Multicore Architectures

\( B = \alpha A + \beta B \) More...

Functions

int plasma_cgeadd (plasma_enum_t transa, int m, int n, plasma_complex32_t alpha, plasma_complex32_t *pA, int lda, plasma_complex32_t beta, plasma_complex32_t *pB, int ldb)
 
void plasma_omp_cgeadd (plasma_enum_t transa, plasma_complex32_t alpha, plasma_desc_t A, plasma_complex32_t beta, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_dgeadd (plasma_enum_t transa, int m, int n, double alpha, double *pA, int lda, double beta, double *pB, int ldb)
 
void plasma_omp_dgeadd (plasma_enum_t transa, double alpha, plasma_desc_t A, double beta, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_sgeadd (plasma_enum_t transa, int m, int n, float alpha, float *pA, int lda, float beta, float *pB, int ldb)
 
void plasma_omp_sgeadd (plasma_enum_t transa, float alpha, plasma_desc_t A, float beta, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_zgeadd (plasma_enum_t transa, int m, int n, plasma_complex64_t alpha, plasma_complex64_t *pA, int lda, plasma_complex64_t beta, plasma_complex64_t *pB, int ldb)
 
void plasma_omp_zgeadd (plasma_enum_t transa, plasma_complex64_t alpha, plasma_desc_t A, plasma_complex64_t beta, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request)
 

Detailed Description

\( B = \alpha A + \beta B \)

Function Documentation

int plasma_cgeadd ( plasma_enum_t  transa,
int  m,
int  n,
plasma_complex32_t  alpha,
plasma_complex32_t *  pA,
int  lda,
plasma_complex32_t  beta,
plasma_complex32_t *  pB,
int  ldb 
)

Performs an addition of two general rectangular matrices similarly to the 'pctradd()' function from the PBLAS library:

\[ B = \alpha * op( A ) + \beta * B, \]

where op( X ) is one of:

\[ op( X ) = X, \]

\[ op( X ) = X^T, \]

\[ op( X ) = X^H, \]

alpha and beta are scalars and A, B are matrices with op( A ) an m-by-n or n-by-m matrix depending on the value of transa and B an m-by-n matrix.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^H
[in]mNumber of rows of the matrices op( A ) and B. m >= 0.
[in]nNumber of columns of the matrices op( A ) and B. n >= 0.
[in]alphaScalar factor of A.
[in]pAMatrix of size lda-by-k, where k is n when transa == PlasmaNoTrans and m otherwise.
[in]ldaLeading dimension of the array A. lda >= max(1,l), where l is m when transa = PlasmaNoTrans and n otherwise.
[in]betaScalar factor of B.
[in,out]pBMatrix of size ldb-by-n. On exit, B = alpha * op( A ) + beta * B
[in]ldbLeading dimension of the array B. ldb >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
See also
plasma_omp_cgeadd
plasma_cgeadd
plasma_dgeadd
plasma_sgeadd
void plasma_omp_cgeadd ( plasma_enum_t  transa,
plasma_complex32_t  alpha,
plasma_desc_t  A,
plasma_complex32_t  beta,
plasma_desc_t  B,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Performs an addition of two general rectangular matrices similarly to the 'pctradd()' function from the PBLAS library. Non-blocking tile version of plasma_cgeadd(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^H
[in]alphaThe scalar alpha.
[in]ADescriptor of matrix A.
[in]betaThe scalar beta.
[in,out]BDescriptor of matrix B.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_cgeadd
plasma_omp_cgeadd
plasma_omp_dgeadd
plasma_omp_sgeadd
int plasma_dgeadd ( plasma_enum_t  transa,
int  m,
int  n,
double  alpha,
double *  pA,
int  lda,
double  beta,
double *  pB,
int  ldb 
)

Performs an addition of two general rectangular matrices similarly to the 'pdtradd()' function from the PBLAS library:

\[ B = \alpha * op( A ) + \beta * B, \]

where op( X ) is one of:

\[ op( X ) = X, \]

\[ op( X ) = X^T, \]

\[ op( X ) = X^T, \]

alpha and beta are scalars and A, B are matrices with op( A ) an m-by-n or n-by-m matrix depending on the value of transa and B an m-by-n matrix.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^T
[in]mNumber of rows of the matrices op( A ) and B. m >= 0.
[in]nNumber of columns of the matrices op( A ) and B. n >= 0.
[in]alphaScalar factor of A.
[in]pAMatrix of size lda-by-k, where k is n when transa == PlasmaNoTrans and m otherwise.
[in]ldaLeading dimension of the array A. lda >= max(1,l), where l is m when transa = PlasmaNoTrans and n otherwise.
[in]betaScalar factor of B.
[in,out]pBMatrix of size ldb-by-n. On exit, B = alpha * op( A ) + beta * B
[in]ldbLeading dimension of the array B. ldb >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
See also
plasma_omp_dgeadd
plasma_cgeadd
plasma_dgeadd
plasma_sgeadd
void plasma_omp_dgeadd ( plasma_enum_t  transa,
double  alpha,
plasma_desc_t  A,
double  beta,
plasma_desc_t  B,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Performs an addition of two general rectangular matrices similarly to the 'pdtradd()' function from the PBLAS library. Non-blocking tile version of plasma_dgeadd(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^T
[in]alphaThe scalar alpha.
[in]ADescriptor of matrix A.
[in]betaThe scalar beta.
[in,out]BDescriptor of matrix B.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_dgeadd
plasma_omp_cgeadd
plasma_omp_dgeadd
plasma_omp_sgeadd
int plasma_sgeadd ( plasma_enum_t  transa,
int  m,
int  n,
float  alpha,
float *  pA,
int  lda,
float  beta,
float *  pB,
int  ldb 
)

Performs an addition of two general rectangular matrices similarly to the 'pstradd()' function from the PBLAS library:

\[ B = \alpha * op( A ) + \beta * B, \]

where op( X ) is one of:

\[ op( X ) = X, \]

\[ op( X ) = X^T, \]

\[ op( X ) = X^T, \]

alpha and beta are scalars and A, B are matrices with op( A ) an m-by-n or n-by-m matrix depending on the value of transa and B an m-by-n matrix.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^T
[in]mNumber of rows of the matrices op( A ) and B. m >= 0.
[in]nNumber of columns of the matrices op( A ) and B. n >= 0.
[in]alphaScalar factor of A.
[in]pAMatrix of size lda-by-k, where k is n when transa == PlasmaNoTrans and m otherwise.
[in]ldaLeading dimension of the array A. lda >= max(1,l), where l is m when transa = PlasmaNoTrans and n otherwise.
[in]betaScalar factor of B.
[in,out]pBMatrix of size ldb-by-n. On exit, B = alpha * op( A ) + beta * B
[in]ldbLeading dimension of the array B. ldb >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
See also
plasma_omp_sgeadd
plasma_cgeadd
plasma_dgeadd
plasma_sgeadd
void plasma_omp_sgeadd ( plasma_enum_t  transa,
float  alpha,
plasma_desc_t  A,
float  beta,
plasma_desc_t  B,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Performs an addition of two general rectangular matrices similarly to the 'pstradd()' function from the PBLAS library. Non-blocking tile version of plasma_sgeadd(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^T
[in]alphaThe scalar alpha.
[in]ADescriptor of matrix A.
[in]betaThe scalar beta.
[in,out]BDescriptor of matrix B.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_sgeadd
plasma_omp_cgeadd
plasma_omp_dgeadd
plasma_omp_sgeadd
int plasma_zgeadd ( plasma_enum_t  transa,
int  m,
int  n,
plasma_complex64_t  alpha,
plasma_complex64_t *  pA,
int  lda,
plasma_complex64_t  beta,
plasma_complex64_t *  pB,
int  ldb 
)

Performs an addition of two general rectangular matrices similarly to the 'pztradd()' function from the PBLAS library:

\[ B = \alpha * op( A ) + \beta * B, \]

where op( X ) is one of:

\[ op( X ) = X, \]

\[ op( X ) = X^T, \]

\[ op( X ) = X^H, \]

alpha and beta are scalars and A, B are matrices with op( A ) an m-by-n or n-by-m matrix depending on the value of transa and B an m-by-n matrix.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^H
[in]mNumber of rows of the matrices op( A ) and B. m >= 0.
[in]nNumber of columns of the matrices op( A ) and B. n >= 0.
[in]alphaScalar factor of A.
[in]pAMatrix of size lda-by-k, where k is n when transa == PlasmaNoTrans and m otherwise.
[in]ldaLeading dimension of the array A. lda >= max(1,l), where l is m when transa = PlasmaNoTrans and n otherwise.
[in]betaScalar factor of B.
[in,out]pBMatrix of size ldb-by-n. On exit, B = alpha * op( A ) + beta * B
[in]ldbLeading dimension of the array B. ldb >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
See also
plasma_omp_zgeadd
plasma_cgeadd
plasma_dgeadd
plasma_sgeadd
void plasma_omp_zgeadd ( plasma_enum_t  transa,
plasma_complex64_t  alpha,
plasma_desc_t  A,
plasma_complex64_t  beta,
plasma_desc_t  B,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Performs an addition of two general rectangular matrices similarly to the 'pztradd()' function from the PBLAS library. Non-blocking tile version of plasma_zgeadd(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.

Parameters
[in]transaSpecifies whether the matrix A is non-transposed, transposed, or conjugate transposed
  • PlasmaNoTrans: op( A ) = A
  • PlasmaTrans: op( A ) = A^T
  • PlasmaConjTrans: op( A ) = A^H
[in]alphaThe scalar alpha.
[in]ADescriptor of matrix A.
[in]betaThe scalar beta.
[in,out]BDescriptor of matrix B.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_zgeadd
plasma_omp_cgeadd
plasma_omp_dgeadd
plasma_omp_sgeadd