M4RIE
0.20120415
|
Functions | |
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. | |
static void | mzd_slice_row_swap (mzd_slice_t *A, const rci_t rowa, const rci_t rowb) |
Swap the two rows rowa and rowb. | |
static void | mzd_slice_copy_row (mzd_slice_t *B, size_t i, const mzd_slice_t *A, size_t j) |
copy row j from A to row i from B. | |
static void | mzd_slice_col_swap (mzd_slice_t *A, const rci_t cola, const rci_t colb) |
Swap the two columns cola and colb. | |
static void | mzd_slice_row_add (mzd_slice_t *A, const rci_t sourcerow, const rci_t destrow) |
Add the rows sourcerow and destrow and stores the total in the row destrow. | |
static void | mzd_slice_row_clear_offset (mzd_slice_t *A, const rci_t row, const rci_t coloffset) |
Clear the given row, but only begins at the column coloffset. | |
void | mzed_add_multiple_of_row (mzed_t *A, rci_t ar, const mzed_t *B, rci_t br, word *X, rci_t start_col) |
static void | mzed_add_row (mzed_t *A, rci_t ar, const mzed_t *B, rci_t br, rci_t start_col) |
static void | mzed_rescale_row (mzed_t *A, rci_t r, rci_t start_col, const word *X) |
Rescale the row r in A by X starting c. | |
static void | mzed_row_swap (mzed_t *M, const rci_t rowa, const rci_t rowb) |
Swap the two rows rowa and rowb. | |
static void | mzed_copy_row (mzed_t *B, rci_t i, const mzed_t *A, rci_t j) |
copy row j from A to row i from B. | |
static void | mzed_col_swap (mzed_t *M, const rci_t cola, const rci_t colb) |
Swap the two columns cola and colb. | |
static void | mzed_col_swap_in_rows (mzed_t *A, const rci_t cola, const rci_t colb, const rci_t start_row, rci_t stop_row) |
Swap the two columns cola and colb but only between start_row and stop_row. | |
static void | mzed_row_add (mzed_t *M, const rci_t sourcerow, const rci_t destrow) |
Add the rows sourcerow and destrow and stores the total in the row destrow. | |
static rci_t | mzed_first_zero_row (mzed_t *A) |
Return the first row with all zero entries. | |
static void | mzed_row_clear_offset (mzed_t *M, const rci_t row, const rci_t coloffset) |
Clear the given row, but only begins at the column coloffset. | |
static void | mzed_process_rows (mzed_t *M, const rci_t startrow, const rci_t endrow, rci_t startcol, const njt_mzed_t *T) |
The function looks up 6 entries from position i,startcol in each row and adds the appropriate row from T to the row i. | |
static void | mzed_process_rows2 (mzed_t *M, const rci_t startrow, const rci_t endrow, const rci_t startcol, const njt_mzed_t *T0, const njt_mzed_t *T1) |
Same as mzed_process_rows but works with two Newton-John tables in parallel. | |
static void | mzed_process_rows3 (mzed_t *M, const rci_t startrow, const rci_t endrow, const rci_t startcol, const njt_mzed_t *T0, const njt_mzed_t *T1, const njt_mzed_t *T2) |
Same as mzed_process_rows but works with three Newton-John tables in parallel. | |
static void | mzed_process_rows4 (mzed_t *M, const rci_t startrow, const rci_t endrow, const rci_t startcol, const njt_mzed_t *T0, const njt_mzed_t *T1, const njt_mzed_t *T2, const njt_mzed_t *T3) |
Same as mzed_process_rows but works with four Newton-John tables in parallel. | |
static void | mzed_process_rows5 (mzed_t *M, const rci_t startrow, const rci_t endrow, const rci_t startcol, const njt_mzed_t *T0, const njt_mzed_t *T1, const njt_mzed_t *T2, const njt_mzed_t *T3, const njt_mzed_t *T4) |
Same as mzed_process_rows but works with five Newton-John tables in parallel. | |
static void | mzed_process_rows6 (mzed_t *M, const rci_t startrow, const rci_t endrow, const rci_t startcol, const njt_mzed_t *T0, const njt_mzed_t *T1, const njt_mzed_t *T2, const njt_mzed_t *T3, const njt_mzed_t *T4, const njt_mzed_t *T5) |
Same as mzed_process_rows but works with six Newton-John tables in parallel. |
static void mzd_slice_col_swap | ( | mzd_slice_t * | A, |
const rci_t | cola, | ||
const rci_t | colb | ||
) | [inline, static] |
Swap the two columns cola and colb.
A | Matrix. |
cola | Column index. |
colb | Column index. |
static void mzd_slice_copy_row | ( | mzd_slice_t * | B, |
size_t | i, | ||
const mzd_slice_t * | A, | ||
size_t | j | ||
) | [inline, static] |
copy row j from A to row i from B.
The offsets of A and B must match and the number of columns of A must be less than or equal to the number of columns of B.
B | Target matrix. |
i | Target row index. |
A | Source matrix. |
j | Source row index. |
static void mzd_slice_rescale_row | ( | mzd_slice_t * | A, |
rci_t | r, | ||
rci_t | c, | ||
word * | X | ||
) | [inline, static] |
Recale the row r in A by X starting c.
A | Matrix |
r | Row index. |
c | Column index. |
X | Multiplier |
static void mzd_slice_row_add | ( | mzd_slice_t * | A, |
const rci_t | sourcerow, | ||
const rci_t | destrow | ||
) | [inline, static] |
Add the rows sourcerow and destrow and stores the total in the row destrow.
A | Matrix |
sourcerow | Index of source row |
destrow | Index of target row |
static void mzd_slice_row_clear_offset | ( | mzd_slice_t * | A, |
const rci_t | row, | ||
const rci_t | coloffset | ||
) | [inline, static] |
Clear the given row, but only begins at the column coloffset.
A | Matrix |
row | Index of row |
coloffset | Column offset |
static void mzd_slice_row_swap | ( | mzd_slice_t * | A, |
const rci_t | rowa, | ||
const rci_t | rowb | ||
) | [inline, static] |
Swap the two rows rowa and rowb.
A | Matrix |
rowa | Row index. |
rowb | Row index. |
void mzed_add_multiple_of_row | ( | mzed_t * | A, |
rci_t | ar, | ||
const mzed_t * | B, | ||
rci_t | br, | ||
word * | X, | ||
rci_t | start_col | ||
) |
A[ar,c] = A[ar,c] + X*B[br,c] for all c >= startcol.
A | Matrix. |
ar | Row index in A. |
B | Matrix. |
br | Row index in B. |
X | Lookup table for multiplication with some finite field element x. |
start_col | Column index. |
static void mzed_add_row | ( | mzed_t * | A, |
rci_t | ar, | ||
const mzed_t * | B, | ||
rci_t | br, | ||
rci_t | start_col | ||
) | [inline, static] |
A[ar,c] = A[ar,c] + B[br,c] for all c >= startcol.
A | Matrix. |
ar | Row index in A. |
B | Matrix. |
br | Row index in B. |
start_col | Column index. |
static void mzed_col_swap | ( | mzed_t * | M, |
const rci_t | cola, | ||
const rci_t | colb | ||
) | [inline, static] |
Swap the two columns cola and colb.
M | Matrix. |
cola | Column index. |
colb | Column index. |
static void mzed_col_swap_in_rows | ( | mzed_t * | A, |
const rci_t | cola, | ||
const rci_t | colb, | ||
const rci_t | start_row, | ||
rci_t | stop_row | ||
) | [inline, static] |
Swap the two columns cola and colb but only between start_row and stop_row.
A | Matrix. |
cola | Column index. |
colb | Column index. |
start_row | Row index. |
stop_row | Row index (exclusive). |
static void mzed_copy_row | ( | mzed_t * | B, |
rci_t | i, | ||
const mzed_t * | A, | ||
rci_t | j | ||
) | [inline, static] |
copy row j from A to row i from B.
The offsets of A and B must match and the number of columns of A must be less than or equal to the number of columns of B.
B | Target matrix. |
i | Target row index. |
A | Source matrix. |
j | Source row index. |
static rci_t mzed_first_zero_row | ( | mzed_t * | A | ) | [inline, static] |
Return the first row with all zero entries.
If no such row can be found returns nrows.
A | Matrix |
static void mzed_process_rows | ( | mzed_t * | M, |
const rci_t | startrow, | ||
const rci_t | endrow, | ||
rci_t | startcol, | ||
const njt_mzed_t * | T | ||
) | [inline, static] |
The function looks up 6 entries from position i,startcol in each row and adds the appropriate row from T to the row i.
This process is iterated for i from startrow to stoprow (exclusive).
M | Matrix to operate on |
startrow | top row which is operated on |
endrow | bottom row which is operated on |
startcol | Starting column for addition |
T | Newton-John table |
static void mzed_process_rows2 | ( | mzed_t * | M, |
const rci_t | startrow, | ||
const rci_t | endrow, | ||
const rci_t | startcol, | ||
const njt_mzed_t * | T0, | ||
const njt_mzed_t * | T1 | ||
) | [inline, static] |
Same as mzed_process_rows but works with two Newton-John tables in parallel.
M | Matrix to operate on |
startrow | top row which is operated on |
endrow | bottom row which is operated on |
startcol | Starting column for addition |
T0 | Newton-John table |
T1 | Newton-John table |
static void mzed_process_rows3 | ( | mzed_t * | M, |
const rci_t | startrow, | ||
const rci_t | endrow, | ||
const rci_t | startcol, | ||
const njt_mzed_t * | T0, | ||
const njt_mzed_t * | T1, | ||
const njt_mzed_t * | T2 | ||
) | [inline, static] |
Same as mzed_process_rows but works with three Newton-John tables in parallel.
M | Matrix to operate on |
startrow | top row which is operated on |
endrow | bottom row which is operated on |
startcol | Starting column for addition |
T0 | Newton-John table |
T1 | Newton-John table |
T2 | Newton-John table |
static void mzed_process_rows4 | ( | mzed_t * | M, |
const rci_t | startrow, | ||
const rci_t | endrow, | ||
const rci_t | startcol, | ||
const njt_mzed_t * | T0, | ||
const njt_mzed_t * | T1, | ||
const njt_mzed_t * | T2, | ||
const njt_mzed_t * | T3 | ||
) | [inline, static] |
Same as mzed_process_rows but works with four Newton-John tables in parallel.
M | Matrix to operate on |
startrow | top row which is operated on |
endrow | bottom row which is operated on |
startcol | Starting column for addition |
T0 | Newton-John table |
T1 | Newton-John table |
T2 | Newton-John table |
T3 | Newton-John table |
static void mzed_process_rows5 | ( | mzed_t * | M, |
const rci_t | startrow, | ||
const rci_t | endrow, | ||
const rci_t | startcol, | ||
const njt_mzed_t * | T0, | ||
const njt_mzed_t * | T1, | ||
const njt_mzed_t * | T2, | ||
const njt_mzed_t * | T3, | ||
const njt_mzed_t * | T4 | ||
) | [inline, static] |
Same as mzed_process_rows but works with five Newton-John tables in parallel.
M | Matrix to operate on |
startrow | top row which is operated on |
endrow | bottom row which is operated on |
startcol | Starting column for addition |
T0 | Newton-John table |
T1 | Newton-John table |
T2 | Newton-John table |
T3 | Newton-John table |
T4 | Newton-John table |
static void mzed_process_rows6 | ( | mzed_t * | M, |
const rci_t | startrow, | ||
const rci_t | endrow, | ||
const rci_t | startcol, | ||
const njt_mzed_t * | T0, | ||
const njt_mzed_t * | T1, | ||
const njt_mzed_t * | T2, | ||
const njt_mzed_t * | T3, | ||
const njt_mzed_t * | T4, | ||
const njt_mzed_t * | T5 | ||
) | [inline, static] |
Same as mzed_process_rows but works with six Newton-John tables in parallel.
M | Matrix to operate on |
startrow | top row which is operated on |
endrow | bottom row which is operated on |
startcol | Starting column for addition |
T0 | Newton-John table |
T1 | Newton-John table |
T2 | Newton-John table |
T3 | Newton-John table |
T4 | Newton-John table |
T5 | Newton-John table |
static void mzed_rescale_row | ( | mzed_t * | A, |
rci_t | r, | ||
rci_t | start_col, | ||
const word * | X | ||
) | [inline, static] |
Rescale the row r in A by X starting c.
A | Matrix |
r | Row index. |
start_col | Column index. |
X | Multiplier |
static void mzed_row_add | ( | mzed_t * | M, |
const rci_t | sourcerow, | ||
const rci_t | destrow | ||
) | [inline, static] |
Add the rows sourcerow and destrow and stores the total in the row destrow.
M | Matrix |
sourcerow | Index of source row |
destrow | Index of target row |
static void mzed_row_clear_offset | ( | mzed_t * | M, |
const rci_t | row, | ||
const rci_t | coloffset | ||
) | [inline, static] |
Clear the given row, but only begins at the column coloffset.
M | Matrix |
row | Index of row |
coloffset | Column offset |
static void mzed_row_swap | ( | mzed_t * | M, |
const rci_t | rowa, | ||
const rci_t | rowb | ||
) | [inline, static] |
Swap the two rows rowa and rowb.
M | Matrix |
rowa | Row index. |
rowb | Row index. |