code: public double rcond(Matrix A, Norm norm) {
          if (norm != Norm.One && norm != Norm.Infinity)
              throw new IllegalArgumentException(
                      "Only the 1 or the Infinity norms are supported");
          if (A.numRows() != n)
              throw new IllegalArgumentException("A.numRows() != n");
          if (!A.isSquare())
              throw new IllegalArgumentException("!A.isSquare()");
  
          double anorm = A.norm(norm);
  
          double[] work = new double[3 * n];
          int[] lwork = new int[n];
  
          intW info = new intW(0);
          doubleW rcond = new doubleW(0);
          LAPACK.getInstance().dgbcon(norm.netlib(), n, kl, ku, LU.getData(),
                  Matrices.ld(2 * kl + ku + 1), ipiv, anorm, rcond, work, lwork,
                  info);
  
          if (info.val < 0)
              throw new IllegalArgumentException();
  
          return rcond.val;
      }
docs: Computes the reciprocal condition number, using either the infinity norm
  of the 1 norm.
  
  @param A
  The matrix this is a decomposition of
  @param norm
  Either <code>Norm.One</code> or <code>Norm.Infinity</code>
  @return The reciprocal condition number. Values close to unity indicate a
  well-conditioned system, while numbers close to zero do not.