本文整理汇总了C++中MatrixView::lowerTri方法的典型用法代码示例。如果您正苦于以下问题:C++ MatrixView::lowerTri方法的具体用法?C++ MatrixView::lowerTri怎么用?C++ MatrixView::lowerTri使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MatrixView
的用法示例。
在下文中一共展示了MatrixView::lowerTri方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TMVAssert
void LUDiv<T>::doMakeInverseATA(MatrixView<T> ata) const
{
TMVAssert(ata.colsize() == pimpl->LUx.colsize());
TMVAssert(ata.rowsize() == pimpl->LUx.colsize());
// (At A)^-1 = A^-1 (A^-1)t
// = (U^-1 L^-1 Pt) (P L^-1t U^-1t)
// = U^-1 L^-1 L^-1t U^-1t
//
// if PLU is really AT, then
// A^-1 = P L^-1T U^-1T
// (At A)^-1 = P L^-1T U^-1T U^-1* L^-1* Pt
LowerTriMatrixView<T> L = pimpl->LUx.lowerTri(UnitDiag);
UpperTriMatrixView<T> U = pimpl->LUx.upperTri();
if (pimpl->istrans) {
UpperTriMatrixView<T> uinv = ata.upperTri();
uinv = U.inverse();
ata = uinv.transpose() * uinv.conjugate();
ata /= L.transpose();
ata %= L.conjugate();
ata.reversePermuteCols(pimpl->P.getValues());
ata.reversePermuteRows(pimpl->P.getValues());
} else {
LowerTriMatrixView<T> linv = ata.lowerTri(UnitDiag);
linv = L.inverse();
ata = linv * linv.adjoint();
ata /= U;
ata %= U.adjoint();
}
}
示例2: T
void SymBandSVDiv<T>::doMakeInverse(MatrixView<T1> minv) const
{
CallSymSV_Inverse(
T(),pimpl->U,pimpl->S,pimpl->Vt,pimpl->kmax,
SymMatrixViewOf(minv,Upper));
if (pimpl->S.size() > 1)
minv.lowerTri().offDiag() = minv.upperTri().offDiag().transpose();
}