M4RI  1.0.1
Functions
xor.h File Reference

Functions for adding vectors. More...

#include <m4ri/m4ri_config.h>
#include <m4ri/misc.h>

Go to the source code of this file.

Functions

static void _mzd_combine8 (word *c, word const *t1, word const *t2, word const *t3, word const *t4, word const *t5, word const *t6, word const *t7, word const *t8, wi_t wide_in)
 
static void _mzd_combine6 (word *c, word const *t1, word const *t2, word const *t3, word const *t4, word const *t5, word const *t6, wi_t wide_in)
 
static void _mzd_combine5 (word *c, word const *t1, word const *t2, word const *t3, word const *t4, word const *t5, wi_t wide_in)
 
static void _mzd_combine4 (word *c, word const *t1, word const *t2, word const *t3, word const *t4, wi_t wide_in)
 
static void _mzd_combine3 (word *c, word const *t1, word const *t2, word const *t3, wi_t wide_in)
 
static void _mzd_combine2 (word *c, word const *t1, word const *t2, wi_t wide_in)
 
static void _mzd_combine (word *c, word const *t1, wi_t wide_in)
 

Detailed Description

Functions for adding vectors.

Author
Martin Albrecht marti.nosp@m.nral.nosp@m.brech.nosp@m.t@go.nosp@m.oglem.nosp@m.ail..nosp@m.com
Todo:
start counting at 0!

Function Documentation

static void _mzd_combine ( word c,
word const *  t1,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] for 0 <= i < wide

static void _mzd_combine2 ( word c,
word const *  t1,
word const *  t2,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] + t2[i] for 0 <= i < wide

static void _mzd_combine3 ( word c,
word const *  t1,
word const *  t2,
word const *  t3,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] + t2[i] + t3[i] for 0 <= i < wide

static void _mzd_combine4 ( word c,
word const *  t1,
word const *  t2,
word const *  t3,
word const *  t4,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] + t2[i] + t3[i] + t4[i] for 0 <= i < wide

static void _mzd_combine5 ( word c,
word const *  t1,
word const *  t2,
word const *  t3,
word const *  t4,
word const *  t5,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] + t2[i] + t3[i] + t4[i] + t5[i] for 0 <= i < wide

static void _mzd_combine6 ( word c,
word const *  t1,
word const *  t2,
word const *  t3,
word const *  t4,
word const *  t5,
word const *  t6,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] + t2[i] + t3[i] + t4[i] + t5[i] + t6[i] for 0 <= i < wide

static void _mzd_combine8 ( word c,
word const *  t1,
word const *  t2,
word const *  t3,
word const *  t4,
word const *  t5,
word const *  t6,
word const *  t7,
word const *  t8,
wi_t  wide_in 
)
inlinestatic

Compute c[i] += t1[i] + t2[i] + t3[i] + t4[i] + t5[i] + t6[i] + t7[i] + t8[i] for 0 <= i < wide

Todo:
the non SSE2 version of this code is slow, replace by code from mzd_process_rows8