Transform M into row reduced echelon form (rref)

Gauss-Jordan Elimination

Mark first row (*) as next result row
M = * 00000000000000000000000000000001
      00000000000000000000011000000010
      00000000000000000001010000000100
      00000000000000000100100000001000
      00000000000000000101001100010000
      00000000000000000110111100100000
      00000000000000000011111101000000
Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M = * 00000000000000000000000000000001
      00000000000000000000011000000010
      00000000000000000001010000000100
      00000000000000000100100000001000
      00000000000000000101001100010000
      00000000000000000110111100100000
      00000000000000000011111101000000

Swap pivot row and next result row; Increment next result row.
M =   00000000000000000100100000001000
    * 00000000000000000000011000000010
      00000000000000000001010000000100
      00000000000000000000000000000001
      00000000000000000101001100010000
      00000000000000000110111100100000
      00000000000000000011111101000000

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100100000001000
    * 00000000000000000000011000000010
      00000000000000000001010000000100
      00000000000000000000000000000001
      00000000000000000001101100011000
      00000000000000000010011100101000
      00000000000000000011111101000000

Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M =   00000000000000000100100000001000
    * 00000000000000000000011000000010
      00000000000000000001010000000100
      00000000000000000000000000000001
      00000000000000000001101100011000
      00000000000000000010011100101000
      00000000000000000011111101000000

Swap pivot row and next result row; Increment next result row.
M =   00000000000000000100100000001000
      00000000000000000010011100101000
    * 00000000000000000001010000000100
      00000000000000000000000000000001
      00000000000000000001101100011000
      00000000000000000000011000000010
      00000000000000000011111101000000

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100100000001000
      00000000000000000010011100101000
    * 00000000000000000001010000000100
      00000000000000000000000000000001
      00000000000000000001101100011000
      00000000000000000000011000000010
      00000000000000000001100001101000

Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M =   00000000000000000100100000001000
      00000000000000000010011100101000
    * 00000000000000000001010000000100
      00000000000000000000000000000001
      00000000000000000001101100011000
      00000000000000000000011000000010
      00000000000000000001100001101000

Increment next result row.
M =   00000000000000000100100000001000
      00000000000000000010011100101000
      00000000000000000001010000000100
    * 00000000000000000000000000000001
      00000000000000000001101100011000
      00000000000000000000011000000010
      00000000000000000001100001101000

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100100000001000
      00000000000000000010011100101000
      00000000000000000001010000000100
    * 00000000000000000000000000000001
      00000000000000000000111100011100
      00000000000000000000011000000010
      00000000000000000000110001101100

Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M =   00000000000000000100100000001000
      00000000000000000010011100101000
      00000000000000000001010000000100
    * 00000000000000000000000000000001
      00000000000000000000111100011100
      00000000000000000000011000000010
      00000000000000000000110001101100

Swap pivot row and next result row; Increment next result row.
M =   00000000000000000100100000001000
      00000000000000000010011100101000
      00000000000000000001010000000100
      00000000000000000000111100011100
    * 00000000000000000000000000000001
      00000000000000000000011000000010
      00000000000000000000110001101100

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100011100010100
      00000000000000000010011100101000
      00000000000000000001010000000100
      00000000000000000000111100011100
    * 00000000000000000000000000000001
      00000000000000000000011000000010
      00000000000000000000001101110000

Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M =   00000000000000000100011100010100
      00000000000000000010011100101000
      00000000000000000001010000000100
      00000000000000000000111100011100
    * 00000000000000000000000000000001
      00000000000000000000011000000010
      00000000000000000000001101110000

Swap pivot row and next result row; Increment next result row.
M =   00000000000000000100011100010100
      00000000000000000010011100101000
      00000000000000000001010000000100
      00000000000000000000111100011100
      00000000000000000000011000000010
    * 00000000000000000000000000000001
      00000000000000000000001101110000

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001001000000110
      00000000000000000000100100011110
      00000000000000000000011000000010
    * 00000000000000000000000000000001
      00000000000000000000001101110000

Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001001000000110
      00000000000000000000100100011110
      00000000000000000000011000000010
    * 00000000000000000000000000000001
      00000000000000000000001101110000

Swap pivot row and next result row; Increment next result row.
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001001000000110
      00000000000000000000100100011110
      00000000000000000000011000000010
      00000000000000000000001101110000
    * 00000000000000000000000000000001

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001000101110110
      00000000000000000000100100011110
      00000000000000000000010101110010
      00000000000000000000001101110000
    * 00000000000000000000000000000001

Highlight next pivot row and column
Find first row with leftmost bit set starting from next result row.
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001000101110110
      00000000000000000000100100011110
      00000000000000000000010101110010
      00000000000000000000001101110000
    * 00000000000000000000000000000001

Increment next result row.
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001000101110110
      00000000000000000000100100011110
      00000000000000000000010101110010
      00000000000000000000001101110000
      00000000000000000000000000000001

Clear pivot column.
Add pivot row to all other rows with bit set in pivot column
M =   00000000000000000100000100010110
      00000000000000000010000100101010
      00000000000000000001000101110110
      00000000000000000000100100011110
      00000000000000000000010101110010
      00000000000000000000001101110000
      00000000000000000000000000000001

Done.
M = 00000000000000000100000100010110
    00000000000000000010000100101010
    00000000000000000001000101110110
    00000000000000000000100100011110
    00000000000000000000010101110010
    00000000000000000000001101110000
    00000000000000000000000000000001


See also: