findPivotRow = function(n, mat, pivotRow, variables, k){ for (i in 1:n){ #finding the pivot row if(is.na(pivotRow)){ print("PIVOT ROW IS NULL") pivotRow = i }else{ if(mat[pivotRow, k] == 0){ cat("Pivot element is zero! Trying to swap column with non-zero element...\n") nearestNonZeroColumn = findNearestNonZeroColumn(mat, pivotRow) cat("nonZeroCol") print(nearestNonZeroColumn) cat("BEFORE SWAP: \n") print(mat) cat("AFTER SWAP: \n") #Swapping the columns temp = mat[, k] mat[, k] = mat[, nearestNonZeroColumn] mat[, nearestNonZeroColumn] = temp #Swapping indexes of concerned variables in swapping temp = variables[k] variables[k] = variables[nearestNonZeroColumn] variables[nearestNonZeroColumn] = temp print(variables) print(mat) } if(mat[pivotRow, k] < mat[i, k]){ pivotRow = i } } print(paste("Iteration: ", i)) print(mat) print("Pivot row:") print(mat[pivotRow,]) cat("\n") } return(pivotRow) }