1 #ifndef STAN_MATH_PRIM_MAT_FUN_CHOL2INV_HPP 2 #define STAN_MATH_PRIM_MAT_FUN_CHOL2INV_HPP 24 Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>
chol2inv(
25 const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& L) {
29 typedef Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> matrix_t;
39 for (
int k = 0; k < K; ++k) {
40 X.coeffRef(k, k) =
dot_self(L_inv.col(k).tail(K - k).eval());
41 for (
int j = k + 1; j < K; ++j) {
44 L_inv.col(k).tail(Kmj).eval(), L_inv.col(j).tail(Kmj).eval());
void check_lower_triangular(const char *function, const char *name, const Eigen::Matrix< T_y, Eigen::Dynamic, Eigen::Dynamic > &y)
Check if the specified matrix is lower triangular.
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > chol2inv(const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &L)
Returns the inverse of the matrix whose Cholesky factor is L.
void check_square(const char *function, const char *name, const matrix_cl &y)
Check if the matrix_cl is square.
fvar< T > dot_self(const Eigen::Matrix< fvar< T >, R, C > &v)
fvar< T > dot_product(const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2)
fvar< T > inv_square(const fvar< T > &x)
Eigen::Matrix< fvar< T >, R1, C1 > mdivide_left_tri_low(const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b)