# ApCoCoA-1:LinAlg.EF

This article is about a function from ApCoCoA-1. |

## LinAlg.EF

Computes a row echelon form of a matrix over `F_2` with record keeping.

### Syntax

LinAlg.EF(M:LIST, L1:LIST, L2:LIST):LIST

### Description

*Please note:* The function(s) explained on this page is/are using the *ApCoCoAServer*. You will have to start the ApCoCoAServer in order to use it/them.

This function computes a row echelon form of a matrix `M` defined over the field `F_2`. It allows to keep record of the order of rows inside the matrix using the parameter `L1`. If the matrix contains some rows which are already in echelon form then the parameter `L2` represent them with 0 and all others with 1.

@param

*M:*A List of Lists whose row echelon form to compute.@param

*L1:*List of integers. For example, the integers could represent the order of lists in the list M.@param

*L2:*List of integers. For example, the integers could be 0`-`1 to represent the lists already reduced(0) and to be reduced(1).@return A row echelon form of

`M`together with adjusted lists L1 and L2.

#### Example

Use ZZ/(2)[x,y]; M := [ [1, 1, 0, 1, 0], [0, 1, 1, 0, 1], [1, 0, 1, 0, 0], [1, 1, 1, 0, 1] ]; -- order of lists in M L1:=[1, 2, 3, 4]; -- 0 for lists which are already in echelon form and 1 for those to be reduced. L2:=[0, 0, 1, 1]; LinAlg.EF(M, L1, L2); -- CoCoAServer: computing Cpu Time = 0 ------------------------------- [ [[1, 1, 0, 1, 0], [0, 1, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]], [1, 2, 4, 3], [0, 0, 1, 1]] -- The last two lists represent the new order of lists in M.

#### Example

Use ZZ/(2)[x,y]; M := [ [0, 1, 0, 1, 0], [0, 1, 0, 0, 1], [1, 0, 1, 1, 0], [1, 1, 0, 0, 1] ]; -- order of lists in M L1:=[1, 2, 3, 4]; -- 0 for lists which are already in echelon form and 1 for those to be reduced. L2:=[0, 0, 1, 1]; LinAlg.EF(M, L1, L2); -- CoCoAServer: computing Cpu Time = 0.015 ------------------------------- [[[1, 0, 1, 1, 0], [0, 1, 0, 1, 0], [0, 0, 1, 0, 1], [0, 0, 0, 1, 1]], [3, 1, 4, 2], [1, 0, 1, 0]] ------------------------------- -- The last two lists represent the new order of lists in M.