Conversion between mzed_t and mzd_slice_t. More...
#include <m4ri/m4ri.h>
#include <m4rie/mzed.h>
#include <m4rie/mzd_slice.h>
Go to the source code of this file.
Functions | |
mzed_t * | mzed_cling (mzed_t *A, const mzd_slice_t *Z) |
Pack a bitslice matrix into a packed represenation. More... | |
mzd_slice_t * | mzed_slice (mzd_slice_t *A, const mzed_t *Z) |
Unpack the matrix Z into bitslice representation. More... | |
mzd_slice_t * | _mzed_slice2 (mzd_slice_t *A, const mzed_t *Z) |
Unpack the matrix Z over GF(2^2) into bitslice representation. More... | |
mzd_slice_t * | _mzed_slice4 (mzd_slice_t *A, const mzed_t *Z) |
Unpack the matrix Z over \(\mathbb{F}_{2^e}\) into bitslice representation. More... | |
mzd_slice_t * | _mzed_slice8 (mzd_slice_t *A, const mzed_t *Z) |
Unpack the matrix Z over \(\mathbb{F}_{2^e}\) into bitslice representation. More... | |
mzd_slice_t * | _mzed_slice16 (mzd_slice_t *A, const mzed_t *Z) |
Unpack the matrix Z over \(\mathbb{F}_{2^e}\) into bitslice representation. More... | |
mzed_t * | _mzed_cling2 (mzed_t *A, const mzd_slice_t *Z) |
Pack a bitslice matrix into a classical represenation over GF(2^2). More... | |
mzed_t * | _mzed_cling4 (mzed_t *A, const mzd_slice_t *Z) |
Pack a bitslice matrix into a classical represenation over \(\mathbb{F}_{2^e}\) for 2 < e <= 4. More... | |
mzed_t * | _mzed_cling8 (mzed_t *A, const mzd_slice_t *Z) |
Pack a bitslice matrix into a classical represenation over \(\mathbb{F}_{2^e}\) for 4 < e <= 8. More... | |
mzed_t * | _mzed_cling16 (mzed_t *A, const mzd_slice_t *Z) |
Pack a bitslice matrix into a classical represenation over \(\mathbb{F}_{2^e}\) for 8 < e <= 16. More... | |
static mzed_t * | _mzed_addmul_karatsuba (mzed_t *C, const mzed_t *A, const mzed_t *B) |
Compute C += A*B using Karatsuba multiplication of polynomials over GF(2). More... | |
static mzed_t * | mzed_mul_karatsuba (mzed_t *C, const mzed_t *A, const mzed_t *B) |
Compute C = A*B. More... | |
static mzed_t * | mzed_addmul_karatsuba (mzed_t *C, const mzed_t *A, const mzed_t *B) |
Compute C += A*B. More... | |
static mzed_t * | _mzed_addmul_blm (mzed_t *C, const mzed_t *A, const mzed_t *B) |
Compute C += A*B using Bilinear Maps over GF(2). More... | |
static mzed_t * | mzed_mul_blm (mzed_t *C, const mzed_t *A, const mzed_t *B) |
Compute C = A*B. More... | |
static mzed_t * | mzed_addmul_blm (mzed_t *C, const mzed_t *A, const mzed_t *B) |
Compute C += A*B. More... | |
static void | mzd_slice_rescale_row (mzd_slice_t *A, rci_t r, rci_t c, word x) |
Recale the row r in A by X starting c. More... | |
Conversion between mzed_t and mzd_slice_t.
Compute C += A*B using Bilinear Maps over GF(2).
C | Preallocated return matrix, may be NULL for automatic creation. |
A | Input matrix A. |
B | Input matrix B. |
|
inlinestatic |
Compute C += A*B using Karatsuba multiplication of polynomials over GF(2).
C | Preallocated return matrix, may be NULL for automatic creation. |
A | Input matrix A. |
B | Input matrix B. |
mzed_t* _mzed_cling16 | ( | mzed_t * | A, |
const mzd_slice_t * | Z | ||
) |
Pack a bitslice matrix into a classical represenation over \(\mathbb{F}_{2^e}\) for 8 < e <= 16.
A | Matrix over \(\mathbb{F}_{2^e}\), must be zero |
Z | Bitslice matrix over \(\mathbb{F}_{2^e}\) |
mzed_t* _mzed_cling2 | ( | mzed_t * | A, |
const mzd_slice_t * | Z | ||
) |
Pack a bitslice matrix into a classical represenation over GF(2^2).
Elements in GF(2^2) can be represented as c_1*a + c_0 where a is a root of x^2 + x + 1. A1 contains the coefficients for c_1 while A0 contains the coefficients for c_0.
A | Matrix over GF(2^2), must be zero |
Z | Bitslice matrix over GF(2^2) |
mzed_t* _mzed_cling4 | ( | mzed_t * | A, |
const mzd_slice_t * | Z | ||
) |
Pack a bitslice matrix into a classical represenation over \(\mathbb{F}_{2^e}\) for 2 < e <= 4.
A | Matrix over \(\mathbb{F}_{2^e}\), must be zero |
Z | Bitslice matrix over \(\mathbb{F}_{2^e}\) |
mzed_t* _mzed_cling8 | ( | mzed_t * | A, |
const mzd_slice_t * | Z | ||
) |
Pack a bitslice matrix into a classical represenation over \(\mathbb{F}_{2^e}\) for 4 < e <= 8.
A | Matrix over \(\mathbb{F}_{2^e}\), must be zero |
Z | Bitslice matrix over \(\mathbb{F}_{2^e}\) |
mzd_slice_t* _mzed_slice16 | ( | mzd_slice_t * | A, |
const mzed_t * | Z | ||
) |
Unpack the matrix Z over \(\mathbb{F}_{2^e}\) into bitslice representation.
A | Zero bitslice matrix over \(\mathbb{F}_{2^e}\) |
Z | Matrix over \(\mathbb{F}_{2^e}\) |
mzd_slice_t* _mzed_slice2 | ( | mzd_slice_t * | A, |
const mzed_t * | Z | ||
) |
Unpack the matrix Z over GF(2^2) into bitslice representation.
Elements in GF(2^2) can be represented as x*a + y where a is a root of x^2 + x + 1. A0 contains the coefficients for x while A1 contains the coefficients for y.
A | Zero bitslice matrix over GF(2^2) |
Z | Matrix over GF(2^2) |
mzd_slice_t* _mzed_slice4 | ( | mzd_slice_t * | A, |
const mzed_t * | Z | ||
) |
Unpack the matrix Z over \(\mathbb{F}_{2^e}\) into bitslice representation.
A | Zero bitslice matrix over \(\mathbb{F}_{2^e}\) |
Z | Matrix over \(\mathbb{F}_{2^e}\) |
mzd_slice_t* _mzed_slice8 | ( | mzd_slice_t * | A, |
const mzed_t * | Z | ||
) |
Unpack the matrix Z over \(\mathbb{F}_{2^e}\) into bitslice representation.
A | Zero bitslice matrix over \(\mathbb{F}_{2^e}\) |
Z | Matrix over \(\mathbb{F}_{2^e}\) |
Compute C += A*B.
C | Preallocated return matrix. |
A | Input matrix A. |
B | Input matrix B. |
|
inlinestatic |
Compute C += A*B.
C | Preallocated return matrix. |
A | Input matrix A. |
B | Input matrix B. |
Compute C = A*B.
C | Preallocated return matrix, may be NULL for automatic creation. |
A | Input matrix A. |
B | Input matrix B. |
Compute C = A*B.
C | Preallocated return matrix, may be NULL for automatic creation. |
A | Input matrix A. |
B | Input matrix B. |