                 reservedCols.insert(j)
                 
                 if !isPivotRow && a.isInvertible {
-                    setPivot(i, j)
+                    setPivot(i, j, a)
                     isPivotRow = true
                 }
             }

                queue.append(j)
            } else if a.isInvertible {
                candidates.insert(j)
            }
        }
        

    // Faugère-Lachartre pivot search
    private func findFLPivots() {
        let n = size.rows
        var pivots: [Int : ColComponent<R>] = [:] // col -> row
        
        for i in 0 ..< n {
            let row = self.row(i)
