Bit field counters. More...
Go to the source code of this file.
Data Types | |
module | mpbits |
Bit field data. More... | |
Functions/Subroutines | |
subroutine | inbits (im, jm, inc) |
Fill bit fields (counters). | |
subroutine | clbits (in, idimb, iencdb, jbfw) |
Calculate bit (field) array size, encoding. | |
subroutine | ndbits (ndims, ncmprs, nsparr, mnpair, ihst, jcmprs) |
Analyze bit fields. | |
subroutine | ckbits (ndims, mnpair, jcmprs) |
Check sparsity of matrix. | |
subroutine | spbits (nsparr, nsparc, ncmprs) |
Create sparsity information. |
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 32bit words). Rare elements may be stored in single precision.
Definition in file mpbits.f90.
subroutine ckbits | ( | INTEGER(KIND=large), dimension(4), intent(out) | ndims, |
INTEGER, intent(in) | mnpair, | ||
INTEGER, intent(in) | jcmprs | ||
) |
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; |
[in] | mnpair | min. entries for pair |
[in] | jcmprs | <>0: compress row information (column indices) |
Definition at line 395 of file mpbits.f90.
Referenced by loop2().
subroutine clbits | ( | INTEGER, intent(in) | in, |
INTEGER(KIND=large), intent(out) | idimb, | ||
INTEGER, intent(out) | iencdb, | ||
INTEGER, intent(in) | jbfw | ||
) |
Calculate bit (field) array size, encoding.
[in] | in | matrix size |
[out] | idimb | dimension for bit (field) array |
[out] | iencdb | number of bits for encoding column counter |
[in] | jbfw | bit field width |
Definition at line 112 of file mpbits.f90.
Referenced by loop2().
subroutine inbits | ( | INTEGER, intent(in) | im, |
INTEGER, intent(in) | jm, | ||
INTEGER, intent(in) | inc | ||
) |
Fill bit fields (counters).
[in] | im | first index |
[in] | jm | second index |
[in] | inc | increment (usually 1) |
Definition at line 35 of file mpbits.f90.
Referenced by loop2().
subroutine ndbits | ( | INTEGER(KIND=large), dimension(4), intent(out) | ndims, |
INTEGER, dimension(:), intent(out) | ncmprs, | ||
INTEGER(KIND=large), dimension(:,:), intent(out) | nsparr, | ||
INTEGER, intent(in) | mnpair, | ||
INTEGER, intent(in) | ihst, | ||
INTEGER, intent(in) | jcmprs | ||
) |
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] | mnpair | min. entries for pair |
[in] | ihst | >0: histogram number |
[in] | jcmprs | <>0: compress row information (column indices) |
Definition at line 167 of file mpbits.f90.
Referenced by loop2().
subroutine spbits | ( | INTEGER(KIND=large), dimension(:,:), intent(in) | nsparr, |
INTEGER, dimension(:), intent(out) | nsparc, | ||
INTEGER, dimension(:), intent(in) | ncmprs | ||
) |
Create sparsity information.
[in] | nsparr | row offsets |
[out] | nsparc | column indices |
[in] | ncmprs | compression info (per row) |
Definition at line 494 of file mpbits.f90.
Referenced by loop2().