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

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

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 119 of file linalg_core.f90.


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