code: public BandLU factor(BandMatrix A) {
          if (!(A.isSquare()))
              throw new IllegalArgumentException("!A.isSquare()");
          if (n != A.numRows())
              throw new IllegalArgumentException("n != A.numRows()");
          if (A.ku != ku + kl)
              throw new IllegalArgumentException("A.ku != ku + kl");
  
          singular = false;
  
          intW info = new intW(0);
          LAPACK.getInstance().dgbtrf(n, n, kl, ku, A.getData(), 2 * kl + ku + 1,
                  ipiv, info);
  
          if (info.val > 0)
              singular = true;
          else if (info.val < 0)
              throw new IllegalArgumentException();
  
          LU.set(A);
  
          return this;
      }
docs: Creates an LU decomposition of the given matrix
  
  @param A
  Matrix to decompose. It will be overwritten with the
  decomposition. Its number of superdiagonals must equal
  <code>kl+ku</code>
  @return The current decomposition