M4RI  20140914
Data Fields
mzd_t Struct Reference

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

#include <mzd.h>

Data Fields

rci_t nrows
 
rci_t ncols
 
wi_t width
 
wi_t rowstride
 
wi_t offset_vector
 
wi_t row_offset
 
uint8_t flags
 
uint8_t blockrows_log
 
uint8_t padding [62-2 *sizeof(rci_t)-4 *sizeof(wi_t)-sizeof(word)-2 *sizeof(void *)]
 
word high_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_ple.c.

Field Documentation

uint8_t mzd_t::blockrows_log

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

mzd_block_t* mzd_t::blocks

Pointers to the actual blocks of memory containing the values packed into words.

uint8_t mzd_t::flags

Booleans to speed up things.

The bits have the following meaning:

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.

word mzd_t::high_bitmask

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

rci_t mzd_t::ncols

Number of columns.

Examples:
testsuite/bench_elimination.c, and testsuite/test_ple.c.
rci_t mzd_t::nrows

Number of rows.

Examples:
testsuite/bench_elimination.c, and testsuite/test_ple.c.
wi_t mzd_t::offset_vector

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.

wi_t mzd_t::row_offset

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

word** mzd_t::rows

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

wi_t mzd_t::rowstride

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.

wi_t mzd_t::width

Number of words with valid bits: width = ceil(ncols / m4ri_radix)


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