private static IMatrix CalculateInvertedPseudoGaussian(IMatrix b, IVector s, IVector y) { var syNumber = s.Mul(y); var syNumberSqr = syNumber.Mul(syNumber); var yByNumber = y.Mul(b.Mul(y)); var ssMatrix = s.OuterMul(s); var second = ssMatrix.Mul(syNumber.Sum(yByNumber)).Div(syNumberSqr); var ysMatrix = y.OuterMul(s); var syMatrix = s.OuterMul(y); var third = b.Mul(ysMatrix).Sum(syMatrix.Mul(b)).Div(syNumber); return b.Sum(second).Sub(third); }