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. |
1.8.7