mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-14 20:56:00 +08:00
Reduce explicit zeros when applying SparseQR's matrix Q
(grafted from 00dc45d0f912407366b20e132df76cffbbf22449 )
This commit is contained in:
parent
2a0ca0131d
commit
945b0802c9
@ -572,6 +572,7 @@ struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived
|
|||||||
{
|
{
|
||||||
Scalar tau = Scalar(0);
|
Scalar tau = Scalar(0);
|
||||||
tau = m_qr.m_Q.col(k).dot(res.col(j));
|
tau = m_qr.m_Q.col(k).dot(res.col(j));
|
||||||
|
if(tau==Scalar(0)) continue;
|
||||||
tau = tau * m_qr.m_hcoeffs(k);
|
tau = tau * m_qr.m_hcoeffs(k);
|
||||||
res.col(j) -= tau * m_qr.m_Q.col(k);
|
res.col(j) -= tau * m_qr.m_Q.col(k);
|
||||||
}
|
}
|
||||||
@ -587,6 +588,7 @@ struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived
|
|||||||
{
|
{
|
||||||
Scalar tau = Scalar(0);
|
Scalar tau = Scalar(0);
|
||||||
tau = m_qr.m_Q.col(k).dot(res.col(j));
|
tau = m_qr.m_Q.col(k).dot(res.col(j));
|
||||||
|
if(tau==Scalar(0)) continue;
|
||||||
tau = tau * m_qr.m_hcoeffs(k);
|
tau = tau * m_qr.m_hcoeffs(k);
|
||||||
res.col(j) -= tau * m_qr.m_Q.col(k);
|
res.col(j) -= tau * m_qr.m_Q.col(k);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user