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_mtx_mult Interface Reference

Multiplies a banded matrix, A, by a vector x such that alpha * op(A) * x + beta * y = y. More...

Public Member Functions

 band_mtx_vec_mult_dbl
 
 band_mtx_vec_mult_cmplx
 

Detailed Description

Multiplies a banded matrix, A, by a vector x such that alpha * op(A) * x + beta * y = y.

Syntax 1
subroutine band_mtx_mult( &
logical trans, &
integer(int32) kl, &
integer(int32) ku, &
real(real64) a(:,:), &
real(real64) x(:), &
real(real64) beta, &
real(real64) y(:), &
optional class(errors) err &
)
Parameters
[in]transSet to true for op(A) == A**T; else, false for op(A) == A.
[in]klThe number of subdiagonals. Must be at least 0.
[in]kuThe number of superdiagonals. Must be at least 0.
[in]alphaA scalar multiplier.
[in]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]xIf trans is true, this is an M-element vector; else, if trans is false, this is an N-element vector.
[in]betaA scalar multiplier.
[in,out]yOn input, the vector Y. On output, the resulting vector. if trans is true, this vector is an N-element vector; else, it is an M-element vector.
[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 arrays are not sized appropriately.
  • LA_INVALID_INPUT_ERROR: Occurs if either ku or kl are not zero or greater.
Syntax 2
subroutine band_mtx_mult( &
integer(int32) trans, &
integer(int32) kl, &
integer(int32) ku, &
complex(real64) a(:,:), &
complex(real64) x(:), &
complex(real64) beta, &
complex(real64) y(:), &
optional class(errors) err &
)
Parameters
[in]transSet 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]klThe number of subdiagonals. Must be at least 0.
[in]kuThe number of superdiagonals. Must be at least 0.
[in]alphaA scalar multiplier.
[in]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]xIf trans is true, this is an M-element vector; else, if trans is false, this is an N-element vector.
[in]betaA scalar multiplier.
[in,out]yOn input, the vector Y. On output, the resulting vector. if trans is true, this vector is an N-element vector; else, it is an M-element vector.
[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 arrays are not sized appropriately.
  • LA_INVALID_INPUT_ERROR: Occurs if either ku or kl are not zero or greater.

Definition at line 4030 of file linalg.f90.


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