Skip to content

Instantly share code, notes, and snippets.

@sherjilozair
Created June 21, 2011 02:37
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sherjilozair/1037126 to your computer and use it in GitHub Desktop.
Save sherjilozair/1037126 to your computer and use it in GitHub Desktop.
In [40]: A = randLILMatrix(10,10); A.set_type(FF(2))
In [45]: A
Out[45]:
⎡1 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2⎤
⎢ ⎥
⎢0 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2⎥
⎢ ⎥
⎢1 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2⎥
⎢ ⎥
⎢1 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2⎥
⎢ ⎥
⎢1 mod 2 0 mod 2 1 mod 2 1 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 0 mod 2⎥
⎢ ⎥
⎢1 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 0 mod 2 0 mod 2⎥
⎢ ⎥
⎢0 mod 2 1 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2⎥
⎢ ⎥
⎢0 mod 2 1 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2⎥
⎢ ⎥
⎢0 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2⎥
⎢ ⎥
⎣0 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2⎦
In [46]: A.toMatrix().det()
Out[46]: -7
In [47]: A.inv_rref()
Out[47]:
⎡0 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2⎤
⎢ ⎥
⎢0 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2⎥
⎢ ⎥
⎢0 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 0 mod 2 1 mod 2⎥
⎢ ⎥
⎢1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 0 mod 2⎥
⎢ ⎥
⎢0 mod 2 1 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2⎥
⎢ ⎥
⎢0 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 0 mod 2 0 mod 2⎥
⎢ ⎥
⎢1 mod 2 0 mod 2 1 mod 2 0 mod 2 0 mod 2 0 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2⎥
⎢ ⎥
⎢0 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 1 mod 2 1 mod 2⎥
⎢ ⎥
⎢1 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 1 mod 2 0 mod 2 0 mod 2 1 mod 2⎥
⎢ ⎥
⎣1 mod 2 1 mod 2 1 mod 2 1 mod 2 1 mod 2 0 mod 2 0 mod 2 1 mod 2 0 mod 2 0 mod 2⎦
In [48]: A.toMatrix(), A.inv_rref().toMatrix()
Out[48]:
⎛⎡1 0 0 0 0 1 0 1 0 1⎤, ⎡0 1 1 0 1 1 1 0 1 1⎤⎞
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢0 1 1 1 0 0 1 0 1 1⎥ ⎢0 0 0 0 0 0 0 1 0 1⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢1 0 0 0 0 1 1 1 1 0⎥ ⎢0 0 0 0 1 1 1 0 0 1⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢1 0 0 0 1 1 1 0 1 0⎥ ⎢1 1 1 0 1 1 1 1 0 0⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢1 0 1 1 0 0 0 1 1 0⎥ ⎢0 1 0 0 1 1 0 1 1 1⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢1 1 0 1 1 1 1 0 0 0⎥ ⎢0 1 1 0 1 0 1 0 0 0⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢0 1 0 0 0 0 0 0 1 1⎥ ⎢1 0 1 0 0 0 1 1 0 1⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢0 1 0 0 1 1 1 1 0 1⎥ ⎢0 1 1 1 1 1 0 1 1 1⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎜⎢0 1 0 1 0 1 0 1 0 1⎥ ⎢1 1 1 1 1 0 1 0 0 1⎥⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎝⎣0 0 0 0 1 1 1 1 0 1⎦ ⎣1 1 1 1 1 0 0 1 0 0⎦⎠
In [49]: A.toMatrix()* A.inv_rref().toMatrix()
Out[49]:
⎡1 4 4 2 4 2 2 2 2 2⎤
⎢ ⎥
⎢4 3 4 2 4 2 4 4 0 4⎥
⎢ ⎥
⎢2 4 5 2 4 2 4 2 2 4⎥
⎢ ⎥
⎢2 4 4 1 4 2 4 2 2 4⎥
⎢ ⎥
⎢2 4 4 2 5 4 4 2 2 4⎥
⎢ ⎥
⎢2 4 4 0 4 3 4 4 2 4⎥
⎢ ⎥
⎢2 2 2 2 2 0 1 2 0 2⎥
⎢ ⎥
⎢2 4 4 2 4 2 2 5 2 4⎥
⎢ ⎥
⎢2 4 4 2 4 2 2 4 1 2⎥
⎢ ⎥
⎣2 4 4 2 4 2 2 4 2 3⎦
In [50]: C = _
In [51]: C.applyfunc(lambda i: i%2)
Out[51]:
⎡1 0 0 0 0 0 0 0 0 0⎤
⎢ ⎥
⎢0 1 0 0 0 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 1 0 0 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 1 0 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 1 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 1 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 1 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 0 1 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 0 0 1 0⎥
⎢ ⎥
⎣0 0 0 0 0 0 0 0 0 1⎦
EDIT:
Example for char F = 23
In [63]: GF = FF(23); A = randInvLILMatrix(10,10); A.set_type(GF)
In [64]: B = A.inv_rref()
0 21 mod 23
1 6 mod 23
2 22 mod 23
3 22 mod 23
4 15 mod 23
5 20 mod 23
6 5 mod 23
7 11 mod 23
8 19 mod 23
9 8 mod 23
In [65]: C = A.toMatrix() * B.toMatrix()
In [66]: C.applyfunc(lambda i: i % 23)
Out[66]:
⎡1 0 0 0 0 0 0 0 0 0⎤
⎢ ⎥
⎢0 1 0 0 0 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 1 0 0 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 1 0 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 1 0 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 1 0 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 1 0 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 0 1 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 0 0 1 0⎥
⎢ ⎥
⎣0 0 0 0 0 0 0 0 0 1⎦
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment