Lines Matching refs:Index
64 Index m_outerSize;
65 Index m_innerSize;
68 Index* m_colStartIndex;
69 Index* m_rowStartIndex;
74 inline Index rows() const {
78 inline Index cols() const {
82 inline Index innerSize() const {
86 inline Index outerSize() const {
90 inline Index upperNonZeros() const {
94 inline Index lowerNonZeros() const {
98 inline Index upperNonZeros(Index j) const {
102 inline Index lowerNonZeros(Index j) const {
130 inline const Index* _upperProfilePtr() const {
134 inline Index* _upperProfilePtr() {
138 inline const Index* _lowerProfilePtr() const {
142 inline Index* _lowerProfilePtr() {
146 inline Scalar coeff(Index row, Index col) const {
147 const Index outer = IsRowMajor ? row : col;
148 const Index inner = IsRowMajor ? col : row;
159 const Index minOuterIndex = inner - m_data.upperProfile(inner);
167 const Index minInnerIndex = outer - m_data.lowerProfile(outer);
177 const Index maxOuterIndex = inner + m_data.upperProfile(inner);
185 const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
195 inline Scalar& coeffRef(Index row, Index col) {
196 const Index outer = IsRowMajor ? row : col;
197 const Index inner = IsRowMajor ? col : row;
208 const Index minOuterIndex = inner - m_data.upperProfile(inner);
214 const Index minInnerIndex = outer - m_data.lowerProfile(outer);
221 const Index maxOuterIndex = inner + m_data.upperProfile(inner);
227 const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
234 inline Scalar coeffDiag(Index idx) const {
240 inline Scalar coeffLower(Index row, Index col) const {
241 const Index outer = IsRowMajor ? row : col;
242 const Index inner = IsRowMajor ? col : row;
249 const Index minInnerIndex = outer - m_data.lowerProfile(outer);
256 const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
264 inline Scalar coeffUpper(Index row, Index col) const {
265 const Index outer = IsRowMajor ? row : col;
266 const Index inner = IsRowMajor ? col : row;
273 const Index minOuterIndex = inner - m_data.upperProfile(inner);
279 const Index maxOuterIndex = inner + m_data.upperProfile(inner);
287 inline Scalar& coeffRefDiag(Index idx) {
293 inline Scalar& coeffRefLower(Index row, Index col) {
294 const Index outer = IsRowMajor ? row : col;
295 const Index inner = IsRowMajor ? col : row;
302 const Index minInnerIndex = outer - m_data.lowerProfile(outer);
306 const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
312 inline bool coeffExistLower(Index row, Index col) {
313 const Index outer = IsRowMajor ? row : col;
314 const Index inner = IsRowMajor ? col : row;
321 const Index minInnerIndex = outer - m_data.lowerProfile(outer);
324 const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
329 inline Scalar& coeffRefUpper(Index row, Index col) {
330 const Index outer = IsRowMajor ? row : col;
331 const Index inner = IsRowMajor ? col : row;
338 const Index minOuterIndex = inner - m_data.upperProfile(inner);
342 const Index maxOuterIndex = inner + m_data.upperProfile(inner);
348 inline bool coeffExistUpper(Index row, Index col) {
349 const Index outer = IsRowMajor ? row : col;
350 const Index inner = IsRowMajor ? col : row;
357 const Index minOuterIndex = inner - m_data.upperProfile(inner);
360 const Index maxOuterIndex = inner + m_data.upperProfile(inner);
378 memset(m_colStartIndex, 0, (m_outerSize + 1) * sizeof (Index));
379 memset(m_rowStartIndex, 0, (m_outerSize + 1) * sizeof (Index));
383 inline Index nonZeros() const {
388 inline void reserve(Index reserveSize, Index reserveUpperSize, Index reserveLowerSize) {
400 EIGEN_DONT_INLINE Scalar & insert(Index row, Index col) {
401 const Index outer = IsRowMajor ? row : col;
402 const Index inner = IsRowMajor ? col : row;
413 Index minOuterIndex = 0;
418 const Index previousProfile = m_data.upperProfile(inner);
423 const Index bandIncrement = m_data.upperProfile(inner) - previousProfile;
425 const Index stop = m_colStartIndex[cols()];
426 const Index start = m_colStartIndex[inner];
429 for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
433 for (Index innerIdx = cols(); innerIdx > inner; innerIdx--) {
448 const Index minInnerIndex = outer - m_data.lowerProfile(outer);
451 const Index previousProfile = m_data.lowerProfile(outer);
454 const Index bandIncrement = m_data.lowerProfile(outer) - previousProfile;
456 const Index stop = m_rowStartIndex[rows()];
457 const Index start = m_rowStartIndex[outer];
460 for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
464 for (Index innerIdx = rows(); innerIdx > outer; innerIdx--) {
478 const Index maxOuterIndex = inner + m_data.upperProfile(inner);
481 const Index previousProfile = m_data.upperProfile(inner);
484 const Index bandIncrement = m_data.upperProfile(inner) - previousProfile;
486 const Index stop = m_rowStartIndex[rows()];
487 const Index start = m_rowStartIndex[inner + 1];
489 for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
493 for (Index innerIdx = inner + 1; innerIdx < outerSize() + 1; innerIdx++) {
505 const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
508 const Index previousProfile = m_data.lowerProfile(outer);
511 const Index bandIncrement = m_data.lowerProfile(outer) - previousProfile;
513 const Index stop = m_colStartIndex[cols()];
514 const Index start = m_colStartIndex[outer + 1];
516 for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
520 for (Index innerIdx = outer + 1; innerIdx < outerSize() + 1; innerIdx++) {
544 // Index dataIdx = 0;
545 // for (Index row = 0; row < rows(); row++) {
547 // const Index nbLowerElts = m_rowStartIndex[row + 1] - m_rowStartIndex[row];
553 // const Index nbUpperElts = m_colStartIndex[row + 1] - m_colStartIndex[row];
587 * \sa resizeNonZeros(Index), reserve(), setZero()
590 const Index diagSize = rows > cols ? cols : rows;
596 const Index k = (diagSize - 1) / 2;
604 const Index k = diagSize / 2;
614 m_colStartIndex = new Index [cols + 1];
615 m_rowStartIndex = new Index [rows + 1];
622 memset(m_colStartIndex, 0, (cols + 1) * sizeof (Index));
623 memset(m_rowStartIndex, 0, (rows + 1) * sizeof (Index));
626 void resizeNonZeros(Index size) {
666 memcpy(m_colStartIndex, other.m_colStartIndex, (m_outerSize + 1) * sizeof (Index));
667 memcpy(m_rowStartIndex, other.m_rowStartIndex, (m_outerSize + 1) * sizeof (Index));
689 for (Index i = 0; i < m.m_data.upperSize(); i++)
693 for (Index i = 0; i < m.m_data.upperProfileSize(); i++)
697 for (Index i = 0; i < m.m_data.upperProfileSize(); i++)
703 for (Index i = 0; i < m.m_data.lowerSize(); i++)
707 for (Index i = 0; i < m.m_data.lowerProfileSize(); i++)
711 for (Index i = 0; i < m.m_data.lowerProfileSize(); i++)
715 for (Index rowIdx = 0; rowIdx < m.rows(); rowIdx++) {
716 for (Index colIdx = 0; colIdx < m.cols(); colIdx++) {
738 InnerUpperIterator(const SkylineMatrix& mat, Index outer)
750 inline InnerUpperIterator & operator+=(Index shift) {
767 inline Index index() const {
772 inline Index row() const {
773 return IsRowMajor ? index() : m_outer;
776 inline Index col() const {
777 return IsRowMajor ? m_outer : index();
790 const Index m_outer;
791 Index m_id;
792 const Index m_start;
793 const Index m_end;
800 InnerLowerIterator(const SkylineMatrix& mat, Index outer)
813 inline InnerLowerIterator & operator+=(Index shift) {
830 inline Index index() const {
836 inline Index row() const {
837 return IsRowMajor ? m_outer : index();
840 inline Index col() const {
841 return IsRowMajor ? index() : m_outer;
854 const Index m_outer;
855 Index m_id;
856 const Index m_start;
857 const Index m_end;