linalg 1.8.2
A linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines.
Loading...
Searching...
No Matches
linalg::mtx_mult Interface Reference

Performs the matrix operation: \( C = \alpha op(A) op(B) + \beta C \). More...

Public Member Functions

 mtx_mult_mtx
 
 mtx_mult_vec
 
 cmtx_mult_mtx
 
 cmtx_mult_vec
 

Detailed Description

Performs the matrix operation: \( C = \alpha op(A) op(B) + \beta C \).

Syntax 1
subroutine mtx_mult(logical transa, logical transb, real(real64) alpha, real(real64) a(:,:), real(real64) b(:,:), real(real64) beta, real(real64) c(:,:), optional class(errors) err)
subroutine mtx_mult(integer(int32) transa, integer(int32) transb, complex(real64) alpha, complex(real64) a(:,:), complex(real64) b(:,:), complex(real64) beta, complex(real64) c(:,:), optional class(errors) err)
Parameters
[in]transaSet to true if \( op(A) = A^T \); else, set to false for \( op(A) = A\). In the complex case set to LA_TRANSPOSE if \( op(A) = A^T \), set to LA_HERMITIAN_TRANSPOSE if \( op(A) = A^H \), otherwise set to LA_NO_OPERATION if \( op(A) = A \).
[in]transbSet to true if \( op(B) = B^T \); else, set to false for \( op(B) = B\). In the complex case set to LA_TRANSPOSE if \( op(B) = B^T \), set to LA_HERMITIAN_TRANSPOSE if \( op(B) = B^H \), otherwise set to LA_NO_OPERATION if \( op(B) = B \).
[in]alphaA scalar multiplier.
[in]aIf transa is set to true, an K-by-M matrix; else, if transa is set to false, an M-by-K matrix.
[in]bIf transb is set to true, an N-by-K matrix; else, if transb is set to false, a K-by-N matrix.
[in]betaA scalar multiplier.
[in,out]cOn input, the M-by-N matrix C. On output, the M-by-N result.
[in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
  • LA_ARRAY_SIZE_ERROR: Occurs if any of the input array sizes are incorrect.
Syntax 2
subroutine mtx_mult(logical trans, real(real64) alpha, real(real64) a(:,:), real(real64) b(:), real(real64) beta, real(real64) c(:))
subroutine mtx_mult(logical trans, complex(real64) alpha, complex(real64) a(:,:), complex(real64) b(:), complex(real64) beta, complex(real64) c(:))
Parameters
[in]transSet to true if \( op(A) = A^T \); else, set to false for \( op(A) = A\). In the complex case set to LA_TRANSPOSE if \( op(A) = A^T \), set to LA_HERMITIAN_TRANSPOSE if \( op(A) = A^H \), otherwise set to LA_NO_OPERATION if \( op(A) = A \).
[in]alphaA scalar multiplier.
[in]aThe M-by-N matrix A.
[in]bIf trans is set to true, an M-element array; else, if trans is set to false, an N-element array.
[in]betaA scalar multiplier.
[in,out]cOn input, if trans is set to true, an N-element array; else, if trans is set to false, an M-element array. On output, the results of the operation.
[in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
  • LA_ARRAY_SIZE_ERROR: Occurs if any of the input array sizes are incorrect.
Notes
This routine utilizes the BLAS routines DGEMM, ZGEMM, DGEMV, or ZGEMV.

Definition at line 361 of file linalg.f90.


The documentation for this interface was generated from the following file: