49#define M4RI_DJB_BASE_SIZE 64
61 if (m == NULL) m4ri_die(
"malloc failed.\n");
71 if (m->
target == NULL || m->
source == NULL || m->
srctyp == NULL) m4ri_die(
"malloc failed.\n");
98 assert((target < z->nrows) && ((source < z->ncols) | (srctyp != source_source)) &&
99 ((source < z->nrows) | (srctyp != source_target)));
138 printf(
"%d x %d linear map in %d xors (cost: %.5f)\n", z->
nrows, z->
ncols, z->
length, save);
static void djb_push_back(djb_t *z, rci_t target, rci_t source, srctyp_t srctyp)
Definition djb.h:97
static void djb_free(djb_t *m)
Definition djb.h:81
void djb_apply_mzd(djb_t *z, mzd_t *W, const mzd_t *V)
W = m*V.
Definition djb.c:142
srctyp_t
Specify source type of addition.
Definition djb.h:26
djb_t * djb_compile(mzd_t *A)
Definition djb.c:110
#define M4RI_DJB_BASE_SIZE
Definition djb.h:49
static djb_t * djb_init(rci_t nrows, rci_t ncols)
Definition djb.h:58
static void djb_info(const djb_t *z)
Definition djb.h:136
int rci_t
Type of row and column indexes.
Definition misc.h:72
int64_t wi_t
Type of word indexes.
Definition misc.h:81
Dense matrices over GF(2) represented as a bit field.
DJB's optimized linear maps mod 2.
Definition djb.h:35
rci_t length
Definition djb.h:41
rci_t ncols
Definition djb.h:37
rci_t nrows
Definition djb.h:36
wi_t allocated
Definition djb.h:42
srctyp_t * srctyp
Definition djb.h:40
rci_t * source
Definition djb.h:39
rci_t * target
Definition djb.h:38
Dense matrices over GF(2).
Definition mzd.h:68