Macaulay2 » Documentation
Packages » FastMinors :: getSubmatrixOfRank
next | previous | forward | backward | up | index | toc

getSubmatrixOfRank -- tries to find a submatrix of the given rank

Synopsis

Description

This function looks at submatrices of the given matrix, and tries to find one of the specified rank. If it succeeds, it returns a list of two lists. The first is the list of row indices, the second is the list of columns, of the desired rank submatrix. If it fails to find such a matrix, the function returns null. The option MaxMinors is used to control how many minors to consider. If left null, the number considered is based on the size of the matrix.

i1 : R = QQ[x,y];
i2 : M = matrix{{x,y,2,0,2*x+y}, {0,0,1,0,x}, {x,y,0,0,y}};

             3      5
o2 : Matrix R  <-- R
i3 : l = getSubmatrixOfRank(2, M)

o3 = {{1, 2}, {2, 1}}

o3 : List
i4 : (M^(l#0))_(l#1)

o4 = | 1 0 |
     | 0 y |

             2      2
o4 : Matrix R  <-- R
i5 : l = getSubmatrixOfRank(2, M)

o5 = {{1, 0}, {2, 1}}

o5 : List
i6 : (M^(l#0))_(l#1)

o6 = | 1 0 |
     | 2 y |

             2      2
o6 : Matrix R  <-- R
i7 : getSubmatrixOfRank(3, M)

The option Strategy is used to used to control how the function computes the rank of the submatrices considered. See getSubmatrixOfRank(...,Strategy=>...). In the future, we hope to speed up the function to use multiple threads of execution, in which case the threading would be controlled by the option Threads.

See also

Ways to use getSubmatrixOfRank :

For the programmer

The object getSubmatrixOfRank is a method function with options.