SND@LHC Software
|
QL decompostion. More...
Go to the source code of this file.
Modules | |
module | mpqldec |
QL data. | |
Functions/Subroutines | |
subroutine | qlini (n, m) |
Initialize QL decomposition. | |
subroutine | qldec (a) |
QL decomposition. | |
subroutine | qldecb (a, nb, b) |
QL decomposition (for disjoint block matrix). | |
subroutine | qlmlq (x, m, t) |
Multiply left by Q(t). | |
subroutine | qlmrq (x, m, t) |
Multiply right by Q(t). | |
subroutine | qlsmq (x, t) |
Similarity transformation by Q(t). | |
subroutine | qlssq (aprod, a, t) |
Similarity transformation by Q(t). | |
subroutine | qlpssq (aprod, b, m, t) |
Partial similarity transformation by Q(t). | |
subroutine | qlgete (emin, emax) |
Get eigenvalues. | |
subroutine | qlbsub (d, y) |
Backward substitution. | |
Variables | |
integer(mpi) | mpqldec::npar |
number of parameters | |
integer(mpi) | mpqldec::ncon |
number of constraints | |
real(mpd), dimension(:), allocatable | mpqldec::matv |
unit normals (v_i) of Householder reflectors | |
real(mpd), dimension(:), allocatable | mpqldec::matl |
lower diagonal matrix L | |
real(mpd), dimension(:), allocatable | mpqldec::vecn |
normal vector | |
QL decompostion.
QL decomposition of constraints matrix by Householder transformations for solution by elimination.
Definition in file mpqldec.f90.
subroutine qlbsub | ( | real(mpd), dimension(ncon), intent(in) | d, |
real(mpd), dimension(ncon), intent(out) | y | ||
) |
Backward substitution.
Get y from L^t*y=d.
[in] | d | Ncon vector, resdiduals |
[out] | y | Ncon vector, solution |
Definition at line 630 of file mpqldec.f90.
subroutine qldec | ( | real(mpd), dimension(*), intent(in) | a | ) |
QL decomposition.
QL decomposition with Householder transformations. Decompose N-By-M matrix A into orthogonal N-by-N matrix Q and a N-by-M matrix containing zeros except for a lower triangular M-by-M matrix L (at the bottom):
| 0 | A = Q * | | | L |
The decomposition is stored in a N-by-M matrix matV containing the unit normal vectors v_i of the hyperplanes (Householder reflectors) defining Q. The lower triangular matrix L is stored in the M-by-M matrix matL.
[in] | a | Npar-by-Ncon matrix |
Definition at line 83 of file mpqldec.f90.
subroutine qldecb | ( | real(mpd), dimension(*), intent(in) | a, |
integer(mpi), intent(in) | nb, | ||
integer(mpi), dimension(3,*), intent(in) | b | ||
) |
QL decomposition (for disjoint block matrix).
QL decomposition with Householder transformations. Decompose N-By-M matrix A into orthogonal N-by-N matrix Q and a N-by-M matrix containing zeros except for a lower triangular M-by-M matrix L (at the bottom):
| 0 | A = Q * | | | L |
The decomposition is stored in a N-by-M matrix matV containing the unit normal vectors v_i of the hyperplanes (Householder reflectors) defining Q. The lower triangular matrix L is stored in the M-by-M matrix matL.
[in] | a | block compressed Npar-by-Ncon matrix |
[in] | nb | number of blocks |
[in] | b | 3-by-Ncon+1 matrix (with block definition) |
Definition at line 162 of file mpqldec.f90.
subroutine qlgete | ( | real(mpd), intent(out) | emin, |
real(mpd), intent(out) | emax | ||
) |
Get eigenvalues.
Get smallest and largest |eigenvalue| of L.
[out] | emin | eigenvalue with smallest absolute value |
[out] | emax | eigenvalue with largest absolute value |
Definition at line 601 of file mpqldec.f90.
subroutine qlini | ( | integer(mpi), intent(in) | n, |
integer(mpi), intent(in) | m | ||
) |
Initialize QL decomposition.
[in] | n | number of rows (parameters) |
[in] | m | number of columns (constraints) |
Definition at line 44 of file mpqldec.f90.
subroutine qlmlq | ( | real(mpd), dimension(*), intent(inout) | x, |
integer(mpi), intent(in) | m, | ||
logical, intent(in) | t | ||
) |
Multiply left by Q(t).
Multiply left by Q(t) from QL decomposition.
[in,out] | x | Npar-by-M matrix, overwritten with Q*X (t=false) or Q^t*X (t=true) |
[in] | m | number of columns |
[in] | t | use transposed of Q |
Definition at line 282 of file mpqldec.f90.
subroutine qlmrq | ( | real(mpd), dimension(*), intent(inout) | x, |
integer(mpi), intent(in) | m, | ||
logical, intent(in) | t | ||
) |
Multiply right by Q(t).
Multiply right by Q(t) from QL decomposition.
[in,out] | x | M-by-Npar matrix, overwritten with X*Q (t=false) or X*Q^t (t=true) |
[in] | m | number of rows |
[in] | t | use transposed of Q |
Definition at line 326 of file mpqldec.f90.
subroutine qlpssq | ( | external subroutine(integer(mpi), intent(in) n, real(mpd), dimension(n), intent(in) x, real(mpd), dimension(n), intent(out) y) | aprod, |
real(mpd), dimension(*), intent(inout) | b, | ||
integer(mpi), intent(in) | m, | ||
logical, intent(in) | t | ||
) |
Partial similarity transformation by Q(t).
Partial similarity transformation for symmetric matrix by Q from QL decomposition. Calculate corrections to band part of matrix.
[in] | aprod | external procedure to calculate A*v |
[in,out] | B | band part of symmetric Npar-by-Npar matrix A in symmetric storage mode, overwritten with band part of Q^t*A*Q (t=false) or Q^t*A*Q (t=true) |
[in] | m | band width (including diagonal) |
[in] | t | use transposed of Q |
Definition at line 497 of file mpqldec.f90.
subroutine qlsmq | ( | real(mpd), dimension(*), intent(inout) | x, |
logical, intent(in) | t | ||
) |
Similarity transformation by Q(t).
Similarity transformation by Q from QL decomposition.
[in,out] | x | Npar-by-Npar matrix, overwritten with Q*X*Q^t (t=false) or Q^t*X*Q (t=true) |
[in] | t | use transposed of Q |
Definition at line 368 of file mpqldec.f90.
subroutine qlssq | ( | external subroutine(integer(mpi), intent(in) n, real(mpd), dimension(n), intent(in) x, real(mpd), dimension(n), intent(out) y) | aprod, |
real(mpd), dimension(*), intent(inout) | a, | ||
logical, intent(in) | t | ||
) |
Similarity transformation by Q(t).
Similarity transformation for symmetric matrix by Q from QL decomposition.
[in] | aprod | external procedure to calculate A*v |
[in,out] | A | symmetric Npar-by-Npar matrix A in symmetric storage mode (V(1) = V11, V(2) = V12, V(3) = V22, V(4) = V13, ...), overwritten with Q*A*Q^t (t=false) or Q^t*A*Q (t=true) |
[in] | t | use transposed of Q |
Definition at line 419 of file mpqldec.f90.