# Difference between revisions of "ApCoCoA-1:IML.REF"

Line 7: | Line 7: | ||

</syntax> | </syntax> | ||

<description> | <description> | ||

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

− | + | <par/> | |

This function allows you to compute a (reduced) row echelon form of <tt>M</tt> over a finite field. If you want to use the first version without the parameter <tt>P</tt>, the components of the input matrix <tt>M</tt> must be of type <tt>ZMOD</tt> and your current working ring must be the same ring over which <tt>M</tt> has been defined. The second version of this function lets you compute a (reduced) row echelon form of <tt>M</tt> mod <tt>P</tt> and the components of <tt>M</tt> must be of type <tt>INT</tt>. | This function allows you to compute a (reduced) row echelon form of <tt>M</tt> over a finite field. If you want to use the first version without the parameter <tt>P</tt>, the components of the input matrix <tt>M</tt> must be of type <tt>ZMOD</tt> and your current working ring must be the same ring over which <tt>M</tt> has been defined. The second version of this function lets you compute a (reduced) row echelon form of <tt>M</tt> mod <tt>P</tt> and the components of <tt>M</tt> must be of type <tt>INT</tt>. | ||

− | + | <par/> | |

The parameter <tt>CompRREF</tt> lets you specify if you want to compute a row echelon form or the reduced row echelon form of <tt>M</tt>. If <tt>CompRREF</tt> is set to <tt>TRUE</tt>, the reduced row echelon form will be computed, and if it is set to <tt>FALSE</tt>, a row echelon form where all pivot elements are equal to one will be computed. | The parameter <tt>CompRREF</tt> lets you specify if you want to compute a row echelon form or the reduced row echelon form of <tt>M</tt>. If <tt>CompRREF</tt> is set to <tt>TRUE</tt>, the reduced row echelon form will be computed, and if it is set to <tt>FALSE</tt>, a row echelon form where all pivot elements are equal to one will be computed. | ||

− | + | <par/> | |

The return value of both functions is the computed (reduced) row echelon form of <tt>M</tt>. | The return value of both functions is the computed (reduced) row echelon form of <tt>M</tt>. | ||

<itemize> | <itemize> |

## Revision as of 16:18, 23 April 2009

## IML.REF

Compute a row echelon form.

### Syntax

IML.REF(M:MAT, CompRREF:BOOL):MAT IML.REF(M:MAT, P:INT, CompRREF:BOOL):MAT

### 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 allows you to compute a (reduced) row echelon form of `M` over a finite field. If you want to use the first version without the parameter `P`, the components of the input matrix `M` must be of type `ZMOD` and your current working ring must be the same ring over which `M` has been defined. The second version of this function lets you compute a (reduced) row echelon form of `M` mod `P` and the components of `M` must be of type `INT`.

The parameter `CompRREF` lets you specify if you want to compute a row echelon form or the reduced row echelon form of `M`. If `CompRREF` is set to `TRUE`, the reduced row echelon form will be computed, and if it is set to `FALSE`, a row echelon form where all pivot elements are equal to one will be computed.

The return value of both functions is the computed (reduced) row echelon form of `M`.

@param

*M*A matrix whose (reduced) row echelon form to compute. If parameter P is given, the components of M must be of type INT. Otherwise, they must be of type ZMOD.@param

*P*An integer value. If P is specified, the (reduced) row echelon form computation will be carried out over the ring Z/pZ.@param

*CompRREF*Set to*TRUE*if you want to compute the reduced row echelon form of M or to`FALSE`otherwise.@return A (reduced) row echelon form of M.

#### Example

Use ZZ/(239)[x]; M := Mat([[1, 2, 3], [4, 5, 6], [7, 8, 9], [11, 12, 13]]); M; IML.REF(M, FALSE); Mat([ [1, 2, 3], [4, 5, 6], [7, 8, 9], [11, 12, 13] ]) ------------------------------- Mat([ [1 % 239, 2 % 239, 3 % 239], [0 % 239, 1 % 239, 2 % 239], [0 % 239, 0 % 239, 0 % 239], [0 % 239, 0 % 239, 0 % 239] ]) -------------------------------

#### Example

Use QQ[x,y]; M := Mat([[ 1, 1, 2], [200, 3000, 1], [2, 5, 17], [1, 1, 1]]); M; IML.REF(M, 17, TRUE); Mat([ [1, 1, 2], [200, 3000, 1], [2, 5, 17], [1, 1, 1] ]) ------------------------------- Mat([ [1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 0, 0] ]) -------------------------------