Lines Matching refs:Index
62 typedef typename MatrixType::Index Index;
81 PartialPivLU(Index size);
170 inline Index rows() const { return m_lu.rows(); }
171 inline Index cols() const { return m_lu.cols(); }
177 Index m_det_p;
192 PartialPivLU<MatrixType>::PartialPivLU(Index size)
227 typedef typename MatrixType::Index Index;
237 * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
239 static Index unblocked_lu(MatrixType& lu, PivIndex* row_transpositions, PivIndex& nb_transpositions)
241 const Index rows = lu.rows();
242 const Index cols = lu.cols();
243 const Index size = (std::min)(rows,cols);
246 for(Index k = 0; k < size; ++k)
248 Index rrows = rows-k-1;
249 Index rcols = cols-k-1;
251 Index row_of_biggest_in_col;
272 // the pivot is exactly zero, we record the index of the first pivot which is exactly 0,
292 * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
298 static Index blocked_lu(Index rows, Index cols, Scalar* lu_data, Index luStride, PivIndex* row_transpositions, PivIndex& nb_transpositions, Index maxBlockSize=256)
303 const Index size = (std::min)(rows,cols);
313 Index blockSize;
317 blockSize = (std::min)((std::max)(blockSize,Index(8)), maxBlockSize);
322 for(Index k = 0; k < size; k+=blockSize)
324 Index bs = (std::min)(size-k,blockSize); // actual size of the block
325 Index trows = rows - k - bs; // trailing rows
326 Index tsize = size - k - bs; // trailing size
342 Index ret = blocked_lu(trows+bs, bs, &lu.coeffRef(k,k), luStride,
349 for(Index i=k; i<k+bs; ++i)
351 Index piv = (row_transpositions[i] += k);
358 for(Index i=k;i<k+bs; ++i)
374 void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, typename TranspositionType::Index& nb_transpositions)
380 <typename MatrixType::Scalar, MatrixType::Flags&RowMajorBit?RowMajor:ColMajor, typename TranspositionType::Index>
392 const Index size = matrix.rows();
396 typename TranspositionType::Index nb_transpositions;