docs: public void addRow(DMatrixRMaj Q , DMatrixRMaj R , double []row , int rowIndex , boolean resizeR ) {
          // memory management and check precoditions
          setQR(Q,R,1);
          m_m = m+1;
  
          if( Q.data.length < m_m*m_m )
              throw new IllegalArgumentException("Q matrix does not have enough data to grow");
  
          if( resizeR && R.data.length < m_m*n )
              throw new IllegalArgumentException("R matrix does not have enough data to grow");
  
          if( resizeR )
              R.reshape(m_m,n, false);
  
          U_tran.reshape(m_m,m_m, false);
  
          // apply givens rotation to the first two rows of the augmented R matrix
          applyFirstGivens(row);
          applyLaterGivens();
          // compute new Q matrix
          updateInsertQ(rowIndex);
  
          // discard the reference since it is no longer needed
          this.Q = this.R = null;
      }