docs: private boolean isSolvable(int method) throws NullPointerException {
      if(solved) {
        return solvable;
      }
  
      if(!reducedRowEchelonForm) {
        reducedRowEchelonForm(method);
      }
  
      // test if rank(coeff) == rank(coeff|rhs)
      for(int i = rank; i < rhs.length; i++) {
        if(Math.abs(rhs[row[i]]) > DELTA) {
          solvable = false;
          return false; // not solvable
        }
      }
  
      solvable = true;
      return true;
    }