![]() |
Millepede-II
V04-08-03
|
QL decompostion. More...
Go to the source code of this file.
Modules | |
module | mpqldec |
QL data. | |
Functions/Subroutines | |
subroutine | qlini (n, m, l, k) |
Initialize QL decomposition. More... | |
subroutine | qldec (a) |
QL decomposition (as single block). More... | |
subroutine | qldecb (a, bpar, bcon) |
QL decomposition (for disjoint block matrix). More... | |
subroutine | qlmlq (x, m, t) |
Multiply left by Q(t) (per block). More... | |
subroutine | qlmrq (x, m, t) |
Multiply right by Q(t). More... | |
subroutine | qlsmq (x, t) |
Similarity transformation by Q(t). More... | |
subroutine | qlssq (aprod, A, t) |
Similarity transformation by Q(t). More... | |
subroutine | qlpssq (aprod, B, m, t) |
Partial similarity transformation by Q(t). More... | |
subroutine | qlgete (emin, emax) |
Get eigenvalues. More... | |
subroutine | qlbsub (d, y) |
Backward substitution (per block). More... | |
subroutine | qlsetb (ib) |
Set block. More... | |
subroutine | qldump () |
Print statistics. More... | |
Variables | |
integer(mpi) | mpqldec::npar |
number of parameters More... | |
integer(mpi) | mpqldec::ncon |
number of constraints More... | |
integer(mpi) | mpqldec::nblock |
number of blocks More... | |
integer(mpi) | mpqldec::iblock |
active block More... | |
integer(mpi) | mpqldec::monpg |
flag for progress monitoring More... | |
integer(mpi), dimension(:), allocatable | mpqldec::sparsev |
sparsity structure matV More... | |
real(mpd), dimension(:), allocatable | mpqldec::matv |
unit normals (v_i) of Householder reflectors More... | |
real(mpd), dimension(:), allocatable | mpqldec::matl |
lower diagonal matrix L More... | |
real(mpd), dimension(:), allocatable | mpqldec::vecn |
normal vector More... | |
integer(mpi), dimension(:), allocatable | mpqldec::nparblock |
number of parameters in block More... | |
integer(mpi), dimension(:), allocatable | mpqldec::ioffblock |
block offset (1. More... | |
QL decompostion.
QL decomposition of constraints matrix by Householder transformations for solution by elimination. Optionally split into disjoint blocks.
Definition in file mpqldec.f90.
subroutine qlbsub | ( | real(mpd), dimension(*), intent(in) | d, |
real(mpd), dimension(*), intent(out) | y | ||
) |
Backward substitution (per block).
Get y from L^t*y=d.
[in] | d | Ncon vector, resdiduals |
[out] | y | Ncon vector, solution |
Definition at line 750 of file mpqldec.f90.
References mpqldec::iblock, mpqldec::ioffblock, mpqldec::matl, and mpqldec::ncon.
Referenced by mchdec(), mdiags(), minver(), mminrs(), and mminrsqlp().
subroutine qldec | ( | real(mpd), dimension(*), intent(in) | a | ) |
QL decomposition (as single block).
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 104 of file mpqldec.f90.
References mpqldec::ioffblock, mpqldec::matl, mpqldec::matv, mpqldec::monpg, monpgs(), mpqldec::nblock, mpqldec::ncon, mpqldec::npar, mpqldec::nparblock, mpqldec::sparsev, and mpqldec::vecn.
subroutine qldecb | ( | real(mpd), dimension(*), intent(in) | a, |
integer(mpi), dimension(2,*), intent(in) | bpar, | ||
integer(mpi), dimension(3,*), intent(in) | bcon | ||
) |
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] | bpar | 2-by-NparBlock+1 matrix (with parameter block definition) |
[in] | bcon | 3-by-NconBlock+1 matrix (with constraint block definition) |
Definition at line 194 of file mpqldec.f90.
References mpqldec::ioffblock, mpqldec::matl, mpqldec::matv, mpqldec::monpg, monpgs(), mpqldec::nblock, mpqldec::ncon, mpqldec::npar, mpqldec::nparblock, mpqldec::sparsev, and mpqldec::vecn.
Referenced by feasma().
subroutine qldump |
Print statistics.
Definition at line 789 of file mpqldec.f90.
References mpqldec::matl, mpqldec::matv, mpqldec::ncon, and mpqldec::npar.
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 714 of file mpqldec.f90.
References mpqldec::ioffblock, mpqldec::matl, mpqldec::nblock, and mpqldec::ncon.
Referenced by feasma().
subroutine qlini | ( | integer(mpi), intent(in) | n, |
integer(mpi), intent(in) | m, | ||
integer(mpi), intent(in) | l, | ||
integer(mpi), intent(in) | k | ||
) |
Initialize QL decomposition.
[in] | n | number of rows (parameters) |
[in] | m | number of columns (constraints) |
[in] | l | number of disjoint blocks |
[in] | k | flag for progress monitoring |
Definition at line 52 of file mpqldec.f90.
References mpqldec::iblock, mpqldec::ioffblock, mpqldec::matl, mpqldec::matv, mpqldec::monpg, mpqldec::nblock, mpqldec::ncon, mpqldec::npar, mpqldec::nparblock, mpqldec::sparsev, and mpqldec::vecn.
Referenced by feasma().
subroutine qlmlq | ( | real(mpd), dimension(*), intent(inout) | x, |
integer(mpi), intent(in) | m, | ||
logical, intent(in) | t | ||
) |
Multiply left by Q(t) (per block).
Multiply left by Q(t) from QL decomposition.
[in,out] | x | NparBlock-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 340 of file mpqldec.f90.
References mpqldec::iblock, mpqldec::ioffblock, mpqldec::matv, mpqldec::npar, and mpqldec::nparblock.
Referenced by avprod(), mchdec(), mdiags(), minver(), mminrs(), mminrsqlp(), and zdiags().
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 392 of file mpqldec.f90.
References mpqldec::matv, mpqldec::ncon, and mpqldec::npar.
subroutine qlpssq | ( | 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 585 of file mpqldec.f90.
References mpqldec::matv, mpqldec::monpg, monpgs(), mpqldec::ncon, mpqldec::npar, and mpqldec::sparsev.
Referenced by mminrs(), and mminrsqlp().
subroutine qlsetb | ( | integer(mpi), intent(in) | ib | ) |
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 434 of file mpqldec.f90.
References mpqldec::matv, mpqldec::monpg, monpgs(), mpqldec::ncon, and mpqldec::npar.
subroutine qlssq | ( | 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 487 of file mpqldec.f90.
References mpqldec::ioffblock, mpqldec::matv, mpqldec::monpg, monpgs(), mpqldec::nblock, mpqldec::npar, and mpqldec::nparblock.