Difference between revisions of "ApCoCoA-1:LinAlg.EF"
m (insert version info) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{Version|1}} | ||
<command> | <command> | ||
<title>LinAlg.EF</title> | <title>LinAlg.EF</title> | ||
Line 72: | Line 73: | ||
</description> | </description> | ||
− | <see>Introduction to CoCoAServer</see> | + | <see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see> |
− | <see>IML.REF</see> | + | <see>ApCoCoA-1:IML.REF|IML.REF</see> |
− | <see>LinBox.REF</see> | + | <see>ApCoCoA-1:LinBox.REF|LinBox.REF</see> |
<types> | <types> | ||
<type>apcocoaserver</type> | <type>apcocoaserver</type> | ||
Line 82: | Line 83: | ||
<key>LinAlg.EF</key> | <key>LinAlg.EF</key> | ||
<key>row echelon form</key> | <key>row echelon form</key> | ||
− | <wiki-category>Package_linalg</wiki-category> | + | <wiki-category>ApCoCoA-1:Package_linalg</wiki-category> |
</command> | </command> |
Latest revision as of 10:10, 7 October 2020
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.