在本征,如果我们有对称正定矩阵A那么我们就可以计算出的逆A由
A.inverse();
Run Code Online (Sandbox Code Playgroud)
或者
A.llt().solve(I);
Run Code Online (Sandbox Code Playgroud)
其中I是与 大小相同的单位矩阵A。但是有没有更有效的方法来计算对称正定矩阵的逆矩阵?  
例如,如果我们写出Aas的 Cholesky 分解A = LL^{T},则L^{-T} L^{-1}是Asince的逆A L^{-T} L^{-1} = LL^{T} L^{-T} L^{-1} = I(并且 whereL^{-T}表示 的转置的逆L)。
所以我们可以得到 的 Cholesky 分解A,计算它的逆,然后得到逆的叉积来找到 的逆A。但我的直觉是,计算这些显式步骤会比使用A.llt().solve(I)上述方法慢。
在有人问之前,我确实需要一个显式逆 - 它是 Gibbs 采样器的一部分的计算。
在第57页的Koenig和Moo的Accelerated C++一书中,它们提供了如下所示的函数,它返回in.这样做的原因是指示尝试输入是否成功(第55页).但是,in作为函数的参数之一被引用传递.那么你不能通过查看原始对象来获得istream的状态吗?
// read homework grades from an input stream into a `vector<double>'
istream& read_hw(istream& in, vector<double>& hw)
{
    if (in) {
        // get rid of previous contents
        hw.clear();
        // read homework grades
        double x;
        while (in >> x)
            hw.push_back(x);
        // clear the stream so that input will work for the next student
        in.clear();
    }
    return in;
}
Run Code Online (Sandbox Code Playgroud)