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::band_diag_mtx_mult Interface Reference

Multiplies a banded matrix, A, with a diagonal matrix, B, such that A = alpha * A * B, or A = alpha * B * A. More...

Public Member Functions

 band_diag_mtx_mult_dbl
 
 band_diag_mtx_mult_cmplx
 

Detailed Description

Multiplies a banded matrix, A, with a diagonal matrix, B, such that A = alpha * A * B, or A = alpha * B * A.

Syntax 1
subroutine band_diag_mtx_mult( &
logical left, &
integer(int32) m, &
integer(int32) kl, &
integer(int32) ku, &
real(real64) alpha, &
real(real64) a(:,:), &
real(real64) b(:), &
optional class(errors) err &
)
Syntax 2
subroutine band_diag_mtx_mult( &
logical left, &
integer(int32) m, &
integer(int32) kl, &
integer(int32) ku, &
complex(real64) alpha, &
complex(real64) a(:,:), &
complex(real64) b(:), &
optional class(errors) err &
)
Parameters
[in]leftSet to true to compute A = alpha * A * B; else, set to false to compute A = alpha * B * A.
[in]mThe number of rows in matrix A.
[in]klThe number of subdiagonals. Must be at least 0.
[in]kuThe number of superdiagonals. Must be at least 0.
[in]alphaThe scalar multiplier.
[in,out]aThe M-by-N matrix A storing the banded matrix in a compressed form supplied column by column. The following code segment transfers between a full matrix to the banded matrix storage scheme.
do j = 1, n
k = ku + 1 - j
do i = max(1, j - ku), min(m, j + kl)
a(k + i, j) = matrix(i, j)
end do
end do
[in]bAn array containing the diagonal elements of matrix B.
[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 a and b are not compatible in terms of internal dimensions.
  • LA_INVALID_INPUT_ERROR: Occurs if either ku or kl are not zero or greater.

Definition at line 4135 of file linalg.f90.


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