M4RI  1.0.1
Data Fields
mzd_t Struct Reference

Dense matrices over GF(2). More...

#include <packedmatrix.h>

Data Fields

rci_t nrows
rci_t ncols
wi_t width
wi_t rowstride
wi_t offset_vector
wi_t row_offset
uint16_t offset
uint8_t flags
uint8_t blockrows_log
word high_bitmask
word low_bitmask
mzd_block_tblocks
word ** rows

Detailed Description

Dense matrices over GF(2).

The most fundamental data type in this library.

Examples:

testsuite/bench_elimination.c, testsuite/test_elimination.c, testsuite/test_multiplication.c, and testsuite/test_pluq.c.


Field Documentation

blockrows_log = log2(blockrows); where blockrows is the number of rows in one block, which is a power of 2.

Contains pointers to the actual blocks of memory containing the values packed into words of size m4ri_radix.

uint8_t mzd_t::flags

Booleans to speed up things.

The bits have the following meaning:

0: Has non-zero offset (and thus is windowed). 1: Has non-zero excess. 2: Is windowed, but has zero offset. 3: Is windowed, but has zero excess. 4: Is windowed, but owns the blocks allocations. 5: Spans more than 1 block.

Mask for valid bits in the word with the highest index (width - 1).

Mask for valid bits in the word with the lowest index (0).

Number of columns.

Examples:
testsuite/bench_elimination.c.

Number of rows.

Examples:
testsuite/bench_elimination.c.
uint16_t mzd_t::offset

column offset of the first column.

Offset in words from start of block to first word.

rows[0] = blocks[0].begin + offset_vector; This, together with rowstride, makes the rows array obsolete.

Number of rows to the first row counting from the start of the first block.

Address of first word in each row, so the first word of row i is is m->rows[i]

Offset in words between rows.

rowstride = (width < mzd_paddingwidth || (width & 1) == 0) ? width : width + 1; where width is the width of the underlying non-windowed matrix.

Number of words with valid bits.

width = ceil((ncols + offset) / m4ri_radix)


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