M4RIE  0.20111004
 All Data Structures Files Functions Variables Typedefs Macros Groups Pages
Functions
Operations on rows

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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static void mzed_row_swap (mzed_t *M, const rci_t rowa, const rci_t rowb)
 Swap the two rows rowa and rowb. More...
 
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. More...
 
static void mzed_col_swap (mzed_t *M, const rci_t cola, const rci_t colb)
 Swap the two columns cola and colb. More...
 
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. More...
 
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. More...
 
static rci_t mzed_first_zero_row (mzed_t *A)
 Return the first row with all zero entries. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Detailed Description

Function Documentation

static void mzd_slice_col_swap ( mzd_slice_t A,
const rci_t  cola,
const rci_t  colb 
)
inlinestatic

Swap the two columns cola and colb.

Parameters
AMatrix.
colaColumn index.
colbColumn index.
static void mzd_slice_copy_row ( mzd_slice_t B,
size_t  i,
const mzd_slice_t A,
size_t  j 
)
inlinestatic

copy row j from A to row i from B.

The number of columns of A must be less than or equal to the number of columns of B.

Parameters
BTarget matrix.
iTarget row index.
ASource matrix.
jSource row index.
static void mzd_slice_rescale_row ( mzd_slice_t A,
rci_t  r,
rci_t  c,
word  x 
)
inlinestatic

Recale the row r in A by X starting c.

Parameters
AMatrix
rRow index.
cColumn index.
xMultiplier
static void mzd_slice_row_add ( mzd_slice_t A,
const rci_t  sourcerow,
const rci_t  destrow 
)
inlinestatic

Add the rows sourcerow and destrow and stores the total in the row destrow.

Parameters
AMatrix
sourcerowIndex of source row
destrowIndex of target row
Note
this can be done much faster with mzd_combine.
static void mzd_slice_row_swap ( mzd_slice_t A,
const rci_t  rowa,
const rci_t  rowb 
)
inlinestatic

Swap the two rows rowa and rowb.

Parameters
AMatrix
rowaRow index.
rowbRow 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.

Parameters
AMatrix.
arRow index in A.
BMatrix.
brRow index in B.
xFinite field element.
start_colColumn index.
static void mzed_add_row ( mzed_t A,
rci_t  ar,
const mzed_t B,
rci_t  br,
rci_t  start_col 
)
inlinestatic

A[ar,c] = A[ar,c] + B[br,c] for all c >= startcol.

Parameters
AMatrix.
arRow index in A.
BMatrix.
brRow index in B.
start_colColumn index.
static void mzed_col_swap ( mzed_t M,
const rci_t  cola,
const rci_t  colb 
)
inlinestatic

Swap the two columns cola and colb.

Parameters
MMatrix.
colaColumn index.
colbColumn 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 
)
inlinestatic

Swap the two columns cola and colb but only between start_row and stop_row.

Parameters
AMatrix.
colaColumn index.
colbColumn index.
start_rowRow index.
stop_rowRow index (exclusive).
static void mzed_copy_row ( mzed_t B,
rci_t  i,
const mzed_t A,
rci_t  j 
)
inlinestatic

copy row j from A to row i from B.

The the number of columns of A must be less than or equal to the number of columns of B.

Parameters
BTarget matrix.
iTarget row index.
ASource matrix.
jSource row index.
static rci_t mzed_first_zero_row ( mzed_t A)
inlinestatic

Return the first row with all zero entries.

If no such row can be found returns nrows.

Parameters
AMatrix
static void mzed_process_rows ( mzed_t M,
const rci_t  startrow,
const rci_t  endrow,
rci_t  startcol,
const njt_mzed_t T 
)
inlinestatic

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

Parameters
MMatrix to operate on
startrowtop row which is operated on
endrowbottom row which is operated on
startcolStarting column for addition
TNewton-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 
)
inlinestatic

Same as mzed_process_rows but works with two Newton-John tables in parallel.

Parameters
MMatrix to operate on
startrowtop row which is operated on
endrowbottom row which is operated on
startcolStarting column for addition
T0Newton-John table
T1Newton-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 
)
inlinestatic

Same as mzed_process_rows but works with three Newton-John tables in parallel.

Parameters
MMatrix to operate on
startrowtop row which is operated on
endrowbottom row which is operated on
startcolStarting column for addition
T0Newton-John table
T1Newton-John table
T2Newton-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 
)
inlinestatic

Same as mzed_process_rows but works with four Newton-John tables in parallel.

Parameters
MMatrix to operate on
startrowtop row which is operated on
endrowbottom row which is operated on
startcolStarting column for addition
T0Newton-John table
T1Newton-John table
T2Newton-John table
T3Newton-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 
)
inlinestatic

Same as mzed_process_rows but works with five Newton-John tables in parallel.

Parameters
MMatrix to operate on
startrowtop row which is operated on
endrowbottom row which is operated on
startcolStarting column for addition
T0Newton-John table
T1Newton-John table
T2Newton-John table
T3Newton-John table
T4Newton-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 
)
inlinestatic

Same as mzed_process_rows but works with six Newton-John tables in parallel.

Parameters
MMatrix to operate on
startrowtop row which is operated on
endrowbottom row which is operated on
startcolStarting column for addition
T0Newton-John table
T1Newton-John table
T2Newton-John table
T3Newton-John table
T4Newton-John table
T5Newton-John table
static void mzed_rescale_row ( mzed_t A,
rci_t  r,
rci_t  start_col,
const word  x 
)
inlinestatic

Rescale the row r in A by X starting c.

Parameters
AMatrix
rRow index.
start_colColumn index.
xMultiplier
static void mzed_row_add ( mzed_t M,
const rci_t  sourcerow,
const rci_t  destrow 
)
inlinestatic

Add the rows sourcerow and destrow and stores the total in the row destrow.

Parameters
MMatrix
sourcerowIndex of source row
destrowIndex of target row
Note
this can be done much faster with mzed_combine.
static void mzed_row_swap ( mzed_t M,
const rci_t  rowa,
const rci_t  rowb 
)
inlinestatic

Swap the two rows rowa and rowb.

Parameters
MMatrix
rowaRow index.
rowbRow index.