docs: public static double[][] inverse(double[][] A) {
      final int rows = A.length, cols = A[0].length;
      return rows == cols //
          ? (new LUDecomposition(A, rows, cols)).inverse() //
          : (new QRDecomposition(A, rows, cols)).inverse();
    }