Lines Matching refs:firstCol
199 void divide (Index firstCol, Index lastCol, Index firstRowW,
201 void deflation43(Index firstCol, Index shift, Index i, Index size);
203 …void deflation(Index firstCol, Index lastCol, Index k, Index firstRowW, Index firstColW, Index shi…
363 void BDCSVD<MatrixType>::divide (Index firstCol, Index lastCol, Index firstRowW, in divide() argument
370 const Index n = lastCol - firstCol + 1; in divide()
380 JacobiSVD<MatrixXr> b(m_computed.block(firstCol, firstCol, n + 1, n), in divide()
382 if (compU) m_naiveU.block(firstCol, firstCol, n + 1, n + 1).real() << b.matrixU(); in divide()
385 m_naiveU.row(0).segment(firstCol, n + 1).real() << b.matrixU().row(0); in divide()
386 m_naiveU.row(1).segment(firstCol, n + 1).real() << b.matrixU().row(n); in divide()
389 m_computed.block(firstCol + shift, firstCol + shift, n + 1, n).setZero(); in divide()
392 m_computed(firstCol + shift + i, firstCol + shift +i) = b.singularValues().coeffRef(i); in divide()
397 alphaK = m_computed(firstCol + k, firstCol + k); in divide()
398 betaK = m_computed(firstCol + k + 1, firstCol + k); in divide()
402 divide(k + 1 + firstCol, lastCol, k + 1 + firstRowW, k + 1 + firstColW, shift); in divide()
403 divide(firstCol, k - 1 + firstCol, firstRowW, firstColW + 1, shift + 1); in divide()
406 lambda = m_naiveU(firstCol + k, firstCol + k); in divide()
407 phi = m_naiveU(firstCol + k + 1, lastCol + 1); in divide()
411 lambda = m_naiveU(1, firstCol + k); in divide()
418 l = m_naiveU.row(firstCol + k).segment(firstCol, k); in divide()
419 f = m_naiveU.row(firstCol + k + 1).segment(firstCol + k + 1, n - k - 1); in divide()
423 l = m_naiveU.row(1).segment(firstCol, k); in divide()
424 f = m_naiveU.row(0).segment(firstCol + k + 1, n - k - 1); in divide()
439 MatrixXr q1 (m_naiveU.col(firstCol + k).segment(firstCol, k + 1)); in divide()
441 for (Index i = firstCol + k - 1; i >= firstCol; i--) in divide()
443 m_naiveU.col(i + 1).segment(firstCol, k + 1) << m_naiveU.col(i).segment(firstCol, k + 1); in divide()
446 m_naiveU.col(firstCol).segment( firstCol, k + 1) << (q1 * c0); in divide()
448 m_naiveU.col(lastCol + 1).segment(firstCol, k + 1) << (q1 * ( - s0)); in divide()
450 m_naiveU.col(firstCol).segment(firstCol + k + 1, n - k) << in divide()
451 m_naiveU.col(lastCol + 1).segment(firstCol + k + 1, n - k) *s0; in divide()
453 m_naiveU.col(lastCol + 1).segment(firstCol + k + 1, n - k) *= c0; in divide()
457 RealScalar q1 = (m_naiveU(0, firstCol + k)); in divide()
459 for (Index i = firstCol + k - 1; i >= firstCol; i--) in divide()
464 m_naiveU(0, firstCol) = (q1 * c0); in divide()
468 m_naiveU(1, firstCol) = m_naiveU(1, lastCol + 1) *s0; in divide()
471 m_naiveU.row(1).segment(firstCol + 1, k).setZero(); in divide()
472 m_naiveU.row(0).segment(firstCol + k + 1, n - k - 1).setZero(); in divide()
474 m_computed(firstCol + shift, firstCol + shift) = r0; in divide()
475 …m_computed.col(firstCol + shift).segment(firstCol + shift + 1, k) << alphaK * l.transpose().real(); in divide()
476 …m_computed.col(firstCol + shift).segment(firstCol + shift + k + 1, n - k - 1) << betaK * f.transpo… in divide()
483 deflation(firstCol, lastCol, k, firstRowW, firstColW, shift); in divide()
486 …JacobiSVD<MatrixXr> res= JacobiSVD<MatrixXr>(m_computed.block(firstCol + shift, firstCol +shift, n… in divide()
488 if (compU) m_naiveU.block(firstCol, firstCol, n + 1, n + 1) *= res.matrixU(); in divide()
489 else m_naiveU.block(0, firstCol, 2, n + 1) *= res.matrixU(); in divide()
492 m_computed.block(firstCol + shift, firstCol + shift, n, n) << MatrixXr::Zero(n, n); in divide()
494 m_computed(firstCol + shift + i, firstCol + shift +i) = res.singularValues().coeffRef(i); in divide()
505 void BDCSVD<MatrixType>::deflation43(Index firstCol, Index shift, Index i, Index size){ in deflation43() argument
509 RealScalar c = m_computed(firstCol + shift, firstCol + shift); in deflation43()
510 RealScalar s = m_computed(i, firstCol + shift); in deflation43()
518 m_computed(firstCol + shift, firstCol + shift) = r; in deflation43()
519 m_computed(i, firstCol + shift) = 0; in deflation43()
522 m_naiveU.col(firstCol).segment(firstCol,size) = in deflation43()
523 c * m_naiveU.col(firstCol).segment(firstCol, size) - in deflation43()
524 s * m_naiveU.col(i).segment(firstCol, size) ; in deflation43()
526 m_naiveU.col(i).segment(firstCol, size) = in deflation43()
527 (c + s*s/c) * m_naiveU.col(i).segment(firstCol, size) + in deflation43()
528 (s/c) * m_naiveU.col(firstCol).segment(firstCol,size); in deflation43()
577 void BDCSVD<MatrixType>::deflation(Index firstCol, Index lastCol, Index k, Index firstRowW, Index f… in deflation() argument
579 …N * (std::max<RealScalar>(m_computed(firstCol + shift + 1, firstCol + shift + 1), m_computed(first… in deflation()
580 const Index length = lastCol + 1 - firstCol; in deflation()
581 if (m_computed(firstCol + shift, firstCol + shift) < EPS){ in deflation()
582 m_computed(firstCol + shift, firstCol + shift) = EPS; in deflation()
585 for (Index i=firstCol + shift + 1;i<=lastCol + shift;i++){ in deflation()
586 if (std::abs(m_computed(i, firstCol + shift)) < EPS){ in deflation()
587 m_computed(i, firstCol + shift) = 0; in deflation()
592 for (Index i=firstCol + shift + 1;i<=lastCol + shift; i++){ in deflation()
594 deflation43(firstCol, shift, i, length); in deflation()
600 Index i=firstCol + shift + 1, j=firstCol + shift + k + 1; in deflation()
605 if (i> firstCol + shift + k){ in deflation()
633 realCol[pos] = pos + firstCol + shift; in deflation()
636 const Index Zero = firstCol + shift; in deflation()
656 temp = m_naiveU.col(I - shift).segment(firstCol, length + 1); in deflation()
657 m_naiveU.col(I - shift).segment(firstCol, length + 1) << in deflation()
658 m_naiveU.col(J - shift).segment(firstCol, length + 1); in deflation()
659 m_naiveU.col(J - shift).segment(firstCol, length + 1) << temp; in deflation()
682 for (Index i = firstCol + shift + 1; i<lastCol + shift;i++){ in deflation()
684 deflation44(firstCol , in deflation()
685 firstCol + shift, in deflation()