SND@LHC Software
|
Bit field counters. More...
Go to the source code of this file.
Modules | |
module | mpbits |
Bit field data. | |
Functions/Subroutines | |
subroutine | inbits (im, jm, inc) |
Fill bit fields (counters). | |
subroutine | clbits (in, jreqpe, jhispe, jsngpe, jcmprs, jextnd, idimb, iencdb, ispc) |
Calculate bit (field) array size, encoding. | |
subroutine | ndbits (ndims, ncmprs, nsparr, ihst) |
Analyze bit fields. | |
subroutine | ckbits (ndims) |
Check sparsity of matrix. | |
subroutine | spbits (nsparr, nsparc, ncmprs) |
Create sparsity information. | |
subroutine | clbmap (in) |
Clear (additional) bit map. | |
subroutine | inbmap (im, jm) |
Fill bit map. | |
subroutine | gpbmap (npair) |
Get pairs (statistic) from map. | |
Variables | |
integer(mpl) | mpbits::ndimb |
dimension for bit (field) array | |
integer(mpl) | mpbits::ndimb2 |
dimension for bit map | |
integer(mpi) | mpbits::n |
matrix size (counters) | |
integer(mpi) | mpbits::n2 |
matrix size (map) | |
integer(mpi) | mpbits::ibfw |
bit field width | |
integer(mpi) | mpbits::ireqpe |
min number of pair entries | |
integer(mpi) | mpbits::isngpe |
upper bound for pair entry single precision storage | |
integer(mpi) | mpbits::icmprs |
compression flag for sparsity (column indices) | |
integer(mpi) | mpbits::iextnd |
flag for extended storage (both 'halves' of sym. mat. for improved access patterns) | |
integer(mpi) | mpbits::nspc |
number of precision for sparse global matrix (1=D, 2=D+f) | |
integer(mpi) | mpbits::mxcnt |
max value for bit field counters | |
integer(mpi) | mpbits::nencdm |
max value for column counter | |
integer(mpi) | mpbits::nencdb |
number of bits for encoding column counter | |
integer(mpi) | mpbits::nthrd |
number of threads | |
integer(mpi), dimension(:), allocatable | mpbits::bitfieldcounters |
fit field counters for global parameters pairs (tracks) | |
integer(mpi), dimension(:), allocatable | mpbits::bitmap |
fit field map for global parameters pairs (measurements) | |
integer(mpi), parameter | mpbits::bs = BIT_SIZE(1_mpi) |
number of bits in INTEGER(mpi) | |
Bit field counters.
Count pairs of global parameters for sparse storage of global matrix, apply pair entries cut and build (compressed) sparsity structure (row offsets, column lists).
In sparse storage mode for each row the list of column indices with non zero elements (and those elements) are stored. With compression this list is represented by the first column and their number for continous regions (encoded in single INTEGER(mpi) words). Rare elements may be stored in single precision.
An additional bit map is used to monitor the parameter pairs for measurements (or 'equations').
Definition in file mpbits.f90.
subroutine ckbits | ( | integer(mpl), dimension(4), intent(out) | ndims | ) |
Check sparsity of matrix.
[out] | ndims | (1): (reduced) size of bit array; (2): size of column lists; (3/4): number of (double/single precision) off diagonal elements; |
Definition at line 486 of file mpbits.f90.
subroutine clbits | ( | integer(mpi), intent(in) | in, |
integer(mpi), intent(in) | jreqpe, | ||
integer(mpi), intent(in) | jhispe, | ||
integer(mpi), intent(in) | jsngpe, | ||
integer(mpi), intent(in) | jcmprs, | ||
integer(mpi), intent(in) | jextnd, | ||
integer(mpl), intent(out) | idimb, | ||
integer(mpi), intent(out) | iencdb, | ||
integer(mpi), intent(out) | ispc | ||
) |
Calculate bit (field) array size, encoding.
[in] | in | matrix size |
[in] | jreqpe | min number of pair entries |
[in] | jhispe | mupper bound for pair entry histogrammimg |
[in] | jsngpe | upper bound for pair entry single precision storage |
[in] | jcmprs | compression flag for sparsity (column indices) |
[in] | jextnd | flag for extended storage |
[out] | idimb | dimension for bit (field) array |
[out] | iencdb | number of bits for encoding column counter |
[out] | ispc | number of precision for sparse global matrix |
Definition at line 147 of file mpbits.f90.
subroutine clbmap | ( | integer(mpi), intent(in) | in | ) |
Clear (additional) bit map.
[in] | in | matrix size |
Definition at line 729 of file mpbits.f90.
subroutine gpbmap | ( | integer(mpi), dimension(:), intent(out) | npair | ) |
Get pairs (statistic) from map.
[out] | npair | number of paired parameters |
Definition at line 791 of file mpbits.f90.
subroutine inbits | ( | integer(mpi), intent(in) | im, |
integer(mpi), intent(in) | jm, | ||
integer(mpi), intent(in) | inc | ||
) |
Fill bit fields (counters).
[in] | im | first index |
[in] | jm | second index |
[in] | inc | increment (usually 1) |
Definition at line 65 of file mpbits.f90.
subroutine inbmap | ( | integer(mpi), intent(in) | im, |
integer(mpi), intent(in) | jm | ||
) |
Fill bit map.
[in] | im | first index |
[in] | jm | second index |
Definition at line 760 of file mpbits.f90.
subroutine ndbits | ( | integer(mpl), dimension(4), intent(out) | ndims, |
integer(mpi), dimension(:), intent(out) | ncmprs, | ||
integer(mpl), dimension(:,:), intent(out) | nsparr, | ||
integer(mpi), intent(in) | ihst | ||
) |
Analyze bit fields.
[out] | ndims | (1): (reduced) size of bit array; (2): size of column lists; (3/4): number of (double/single precision) off diagonal elements; |
[out] | ncmprs | compression info (per row) |
[out] | nsparr | row offsets |
[in] | ihst | >0: histogram number |
Definition at line 224 of file mpbits.f90.
subroutine spbits | ( | integer(mpl), dimension(:,:), intent(in) | nsparr, |
integer(mpi), dimension(:), intent(out) | nsparc, | ||
integer(mpi), dimension(:), intent(inout) | ncmprs | ||
) |
Create sparsity information.
[in] | nsparr | row offsets |
[out] | nsparc | column indices |
[in,out] | ncmprs | compression info (per row, in: number of all regions, out: number of regions in 1st half (for accessing 2nd half)) |
Definition at line 581 of file mpbits.f90.