template<typename NewtonStateT , typename LLFun , typename LLTupleArgs , typename CovarMat >
| void stan::math::internal::CholeskyKSolver::solve_step |
( |
NewtonStateT & |
state, |
|
|
const LLFun & |
ll_fun, |
|
|
const LLTupleArgs & |
ll_args, |
|
|
const CovarMat & |
covariance, |
|
|
int |
hessian_block_size, |
|
|
std::ostream * |
msgs |
|
) |
| |
|
inline |
Perform one Newton step using covariance Cholesky solver.
Computes the block diagonal Hessian, forms B = I + K_root^T * W * K_root, performs Cholesky factorization, and solves for the new a vector using triangular solves.
- Template Parameters
-
| NewtonStateT | Type of the Newton state |
| LLFun | Type of the log-likelihood functor |
| LLTupleArgs | Type of the likelihood arguments tuple |
| CovarMat | Type of the covariance matrix |
- Parameters
-
| [in] | state | Shared Newton state (modified: B, b, curr().a()) |
| [in] | ll_fun | Log-likelihood functor |
| [in] | ll_args | Additional arguments for the likelihood |
| [in] | covariance | Prior covariance matrix Sigma |
| [in] | hessian_block_size | Size of each Hessian block |
| [in,out] | msgs | Output stream for diagnostic messages (may be nullptr) |
- Exceptions
-
| std::domain_error | If Cholesky factorization fails |
Definition at line 752 of file laplace_marginal_density_estimator.hpp.