Lines Matching +full:- +full:workspace
25 …* acts on the whole space, the second Householder reflection leaves the one-dimensional subspace s…
26 …* the first unit vector invariant, the third Householder reflection leaves the two-dimensional sub…
34 …* form \f$ H = \prod_{i=0}^{n-1} H_i \f$ where the i-th Householder reflection is \f$ H_i = I - h_…
35 …* v_i^* \f$. The i-th Householder coefficient \f$ h_i \f$ is a scalar and the i-th Householder vec…
38 …* v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbi…
40 …* The last \f$ n-i \f$ entries of \f$ v_i \f$ are called the essential part of the Householder vec…
93 return Block<const VectorsType,Dynamic,1>(h.m_vectors, start, k, h.rows()-start, 1);
105 return Block<const VectorsType,1,Dynamic>(h.m_vectors, k, start, 1, h.rows()-start).transpose();
148 … * i-th Householder coefficient \f$ h_i \f$ is given by \p h(i) and the essential part of the i-th
150 …* i-th column). If \p v has fewer columns than rows, then the Householder sequence contains as many
190 * \returns Vector containing non-trivial entries of k-th Householder vector
193 * length \f$ n-i \f$ containing the last \f$ n-i \f$ entries of the vector
195 …* v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbi…
197 … * The index \f$ i \f$ equals \p k + shift(), corresponding to the k-th column of the matrix \p v
236 AutoAlign|ColMajor, DestType::MaxRowsAtCompileTime, 1> workspace(rows());
237 evalTo(dst, workspace);
241 template<typename Dest, typename Workspace>
242 void evalTo(Dest& dst, Workspace& workspace) const
244 workspace.resize(rows());
248 // in-place
251 for(Index k = vecs-1; k >= 0; --k)
253 Index cornerSize = rows() - k - m_shift;
256 .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), workspace.data());
259 .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), workspace.data());
262 dst.col(k).tail(rows()-k-1).setZero();
265 for(Index k = 0; k<cols()-vecs ; ++k)
266 dst.col(k).tail(rows()-k-1).setZero();
271 for(Index k = vecs-1; k >= 0; --k)
273 Index cornerSize = rows() - k - m_shift;
276 … .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
279 … .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
287 …Matrix<Scalar,1,Dest::RowsAtCompileTime,RowMajor,1,Dest::MaxRowsAtCompileTime> workspace(dst.rows(…
288 applyThisOnTheRight(dst, workspace);
292 template<typename Dest, typename Workspace>
293 inline void applyThisOnTheRight(Dest& dst, Workspace& workspace) const
295 workspace.resize(dst.rows());
298 Index actual_k = m_trans ? m_length-k-1 : k;
299 dst.rightCols(rows()-m_shift-actual_k)
300 ….applyHouseholderOnTheRight(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
307 Matrix<Scalar,1,Dest::ColsAtCompileTime,RowMajor,1,Dest::MaxColsAtCompileTime> workspace;
308 applyThisOnTheLeft(dst, workspace);
312 template<typename Dest, typename Workspace>
313 inline void applyThisOnTheLeft(Dest& dst, Workspace& workspace) const
321 Index end = m_trans ? (std::min)(m_length,i+BlockSize) : m_length-i;
322 Index k = m_trans ? i : (std::max)(Index(0),end-BlockSize);
323 Index bs = end-k;
329 … Side==OnTheRight ? bs : m_vectors.rows()-start,
330 … Side==OnTheRight ? m_vectors.cols()-start : bs);
332 …Block<Dest,Dynamic,Dynamic> sub_dst(dst,dst.rows()-rows()+m_shift+k,0, rows()-m_shift-k,dst.cols()…
338 workspace.resize(dst.cols());
341 Index actual_k = m_trans ? k : m_length-k-1;
342 dst.bottomRows(rows()-m_shift-actual_k)
343 … .applyHouseholderOnTheLeft(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
369 …* By default, the length \f$ n \f$ of the Householder sequence \f$ H = H_0 H_1 \ldots H_{n-1} \f$ …
384 …y default, a %HouseholderSequence object represents \f$ H = H_0 H_1 \ldots H_{n-1} \f$ and the i-th
385 * column of the matrix \p v passed to the constructor corresponds to the i-th Householder
387 …* H_{\mathrm{shift}+1} \ldots H_{n-1} \f$ and the i-th column of \p v corresponds to the (shift+i)…
410 * \f$ H^T = H_{n-1}^T \ldots H_1^T H_0^T \f$ instead of \f$ H = H_0 H_1 \ldots H_{n-1} \f$.