Automatic Differentiation
 
Loading...
Searching...
No Matches

◆ laplace_marginal_tol()

template<bool propto = false, typename LFun , typename LArgs , typename CovarFun , typename ThetaVec , typename CovarArgs , require_all_eigen_vector_t< ThetaVec > * = nullptr>
auto stan::math::laplace_marginal_tol ( LFun &&  L_f,
LArgs &&  l_args,
CovarFun &&  covariance_function,
CovarArgs &&  covar_args,
const ThetaVec &  theta_0,
double  tolerance,
int  max_num_steps,
const int  hessian_block_size,
const int  solver,
const int  max_steps_line_search,
std::ostream *  msgs 
)
inline

Wrapper function around the laplace_marginal_density function.

Returns the marginal density p(y|phi) by marginalizing out the latent gaussian variable theta, with a Laplace approximation. See the laplace_marginal function for more details. The data y is assumed to be real. The function is "overloaded" below for the int y and lpmf case.

Template Parameters
proptoIf FALSE, log density is computed up to an additive const.
LFunThe function which returns the log likelihood.
LArgsA tuple of arguments to the log likelihood.
EtaVecThe type of the parameter arguments for the likelihood fn.
CovarFunA functor with an operator()(CovarArgsElements..., {TrainTupleElements...| PredTupleElements...}) method. The operator() method should accept as arguments the inner elements of CovarArgs. The return type of the operator() method should be a type inheriting from Eigen::EigenBase with dynamic sized rows and columns.
CovarArgsA tuple of types to passed as the first arguments of CovarFun::operator()
Parameters
[in]L_fa function which returns the log likelihood.
[in]l_argsA tuple of arguments to pass to the log likelihood.
[in]covariance_functiona function which returns the prior covariance.
[in]covar_argsarguments for the covariance function.
[in]theta_0the initial guess for the Laplace approximation.
[in]tolerancecontrols the convergence criterion when finding the mode in the Laplace approximation.
[in]max_num_stepsmaximum number of steps before the Newton solver breaks and returns an error.
[in]hessian_block_sizeBlock size of Hessian of log likelihood w.r.t latent Gaussian variable theta.
[in]solverType of Newton solver. Each corresponds to a distinct choice of B matrix (i.e. application SWM formula): 1. computes square-root of negative Hessian. 2. computes square-root of covariance matrix. 3. computes no square-root and uses LU decomposition.
[in]max_steps_line_searchNumber of steps after which the algorithm gives up on doing a line search. If 0, no linesearch.
[in,out]msgsstream for messages from likelihood and covariance

Definition at line 31 of file laplace_marginal.hpp.