anchor.diff:              let sparseVector = SparseVector()
               for i=nnz-1 downto 0 do
                   if(not (A.SparseValues.[i+offset] = 0.0)) then
  -                    let entry = SparseEntry(A.SparseColumnValues.[i+offset], A.SparseValues.[i+offset])
  +                    let entry = (A.SparseColumnValues.[i+offset], A.SparseValues.[i+offset])
                       sparseVector.entries.Insert(0, entry)
               sparseVector
           
  
positive.code:         let QSeq = seq{ for row in Q do
                              x <- x+1
                              for entry in row.entries do
                                  yield(x, entry.index, float entry.value)}
  
          let QOut = Matrix.initSparse m n QSeq
          QOut, ROut
  
negative.code:                     s <- c * tau
  
              // rotate the start of each list
              x.Front <- (fst x.Front, c * a - s * b)
              y.PopFront |> ignore
      
              // Iterators
  