code: @Override
      public void invert(DMatrixRBlock A_inv) {
          int M = Math.min(QR.numRows,QR.numCols);
          if( A_inv.numRows != M || A_inv.numCols != M )
              throw new IllegalArgumentException("A_inv must be square an have dimension "+M);
  
  
          // Solve for A^-1
          // Q*R*A^-1 = I
  
          // Apply householder reflectors to the identity matrix
          // y = Q^T*I = Q^T
          MatrixOps_DDRB.setIdentity(A_inv);
          decomposer.applyQTran(A_inv);
  
          // Solve using upper triangular R matrix
          // R*A^-1 = y
          // A^-1 = R^-1*y
          TriangularSolver_DDRB.solve(QR.blockLength,true,
                  new DSubmatrixD1(QR,0,M,0,M),new DSubmatrixD1(A_inv),false);
      }
docs: Invert by solving for against an identity matrix.
  
  @param A_inv Where the inverted matrix saved. Modified.