298 {
299 typedef typename MatrixQR::Scalar
Scalar;
300 typedef Block<MatrixQR,Dynamic,Dynamic> BlockType;
301
305
306 typedef Matrix<Scalar,Dynamic,1,ColMajor,MatrixQR::MaxColsAtCompileTime,1> TempType;
307 TempType tempVector;
308 if(tempData==0)
309 {
310 tempVector.resize(cols);
311 tempData = tempVector.data();
312 }
313
314 Index blockSize = (std::min)(maxBlockSize,size);
315
317 for (k = 0; k <
size; k += blockSize)
318 {
319 Index bs = (std::min)(size-k,blockSize);
322
323
324
325
326
327
328
329
330
331 BlockType A11_21 = mat.block(k,k,brows,bs);
332 Block<HCoeffs,Dynamic,1> hCoeffsSegment = hCoeffs.segment(k,bs);
333
335
336 if(tcols)
337 {
338 BlockType A21_22 = mat.block(k,k+bs,brows,tcols);
340 }
341 }
342 }
void householder_qr_inplace_unblocked(MatrixQR &mat, HCoeffs &hCoeffs, typename MatrixQR::Scalar *tempData=0)
Definition HouseholderQR.h:256
void apply_block_householder_on_the_left(MatrixType &mat, const VectorsType &vectors, const CoeffsType &hCoeffs, bool forward)
Definition BlockHouseholder.h:79
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:33
typename Traits< remove_cvref_t< L > >::Scalar Scalar
Definition Line.hpp:36
constexpr auto size(const C &c) -> decltype(c.size())
Definition span.hpp:183
size_t cols(const T &raster)
Definition MarchingSquares.hpp:60
size_t rows(const T &raster)
Definition MarchingSquares.hpp:55