Documentation for AdaptEllipticalSliceSampler.jl
AdaptEllipticalSliceSampler.AGESS — FunctionAGESS(log_posterior, n_MCMC, P; μ_0, Σ_0, init_x, t_dist, ν, burnin, ϵ, single_step_prop, β)Performs adaptive generalized elliptical slice sampling.
Performs AGESS on a target distribution specified by log_posterior. The target distribution is of dimension P and n_MCMC iterations of Markov chain Monte Carlo will be performed using the AGESS transition scheme.
Arguments
log_posterior::Function: a function evaluating the posterior log pdf with only the state (or variables) as the inputn_MCMC::Integer: the number of iterations to run the Markov chain forP::Integer: the dimension of the target distribution
Keyword Arguments
μ_0::Union{AbstractVector{<:AbstractFloat}, AbstractFloat} = 0.0: a vector (or number which will be multiplied by the one vector) containing the initial (or prior) mean of adaptive distributionΣ_0::Union{AbstractMatrix{<:AbstractFloat}, AbstractFloat} = 1.0: a matrix (or number which will be multiplied by I) containing the initial (or prior) scale of adaptive distributioninit_x::Union{AbstractVector{<:AbstractFloat}, AbstractFloat} = 0.0: a vector (or number which will be multiplied by the one vector) containing the initial starting location of the Markov chaint_dist::Bool = true: a Boolean variable indicating whether to use a t-distribution (true) or normal distribution (false) for elliptical slice sampling (Note: should almost always use t-distribution)ν::AbstractFloat = 6.0: the degrees of freedom of the t-distributionburnin::AbstractFloat = 0.25: the proportion of chain used for burninϵ::AbstractFloat = 0.05: the proportion of non-adaptive transitionssingle_step_prop::AbstractFloat = 0.05: the proportion of transitions where we perform one-dimensional updated (P >= 10)β::AbstractFloat = 0.5: the rate at which the adaptation diminishesparam_names: optional vector of parameter names (dimension P)blocks::Union{Vector{AGESSBlock}, Nothing} = nothing: optional partition of1:PintoAGESSBlocks for the 1-d update phase (seeAGESSBlock's docstring);nothinguses the default per-coordinate updates
Returns
output: a struct of type MCMCChains.Chains:
value: AnAxisArrayobject with axesiter×var×chainslogevidence: A field containing the logevidence.name_map: ANamedTuplemapping each variable to a section.info: ANamedTuplecontaining miscellaneous information relevant to the chain.
Examples
For examples, please view the Tutorials section of the documentation.
References
N. Marco and S. T. Tokdar. Adaptive generalized elliptical slice sampling. arXiv preprint arXiv:2605.21659, 2026.
AdaptEllipticalSliceSampler.AGESS_single_step! — FunctionAGESS_single_step!(x, z, params, ph, μ_adapt, Σ_chol_adapt, i)Performs one iteration of adaptive generalized elliptical slice sampling.
Performs an in-place update of the Markov chain using AGESS. This function should only be used for custom (advanced) sampling schemes (see AGESS for general use). The matrix x contains the Markov chain, while z is an auxiliary variable for constructing the ellipse. ph is a vector used for intermediate calculations of same dimension of z (i.e. dimension of the target distribution). params contains all the information of the Markov chain, including log pdf of target distribution. μ_adapt and Σ_chol_adapt contain information about the mean and scale parameters of the adapted distribution, while i contains the current state of the Markov chain. The current state of X should be populated with the last state of the Markov chain.
Arguments
x_current::AbstractVector{<:AbstractFloat}: a vector containing the current state of the Markov Chainx_next::AbstractVector{<:AbstractFloat}: a vector which will contain the next state of the Markov Chainz::AbstractVector{<:AbstractFloat}: a vector used to create the ellipse (dim = P)log_posterior::Function: a function evaluating the log posterior pdf with a vector of parameters as the only inputt_dist::Bool: a Boolean containing whether to use the T-distribution to generate ellipsesν::AbstractFloat: the user-specified degrees of freedomP::Integer: the dimension of the target distributionph::AbstractVector{<:AbstractFloat}: a vector used for intermediate calculations (dim = P)μ_adapt::AbstractVector{<:AbstractFloat}: a vector containing the mean parameter of adapted distribution (dim = P)Σ_chol_adapt::LowerTriangular{<:AbstractFloat, <:AbstractMatrix{<:AbstractFloat}}: a lower triangular matrix containing the cholesky decomposition of the scale parameter of the adapted matrixl_pdf::AbstractFloat: the log posterior density of current staterng::Random.AbstractRNG = Random.default_rng(): random number generator
Examples
For examples, please view the Tutorials section of the documentation.
References
N. Marco and S. T. Tokdar. Adaptive generalized elliptical slice sampling. arXiv preprint arXiv:2605.21659, 2026.
AdaptEllipticalSliceSampler.AGESS_single_step_1d! — FunctionAGESS_single_step_1d!(x, params, μ_adapt, Σ_chol_adapt, i)Performs one iteration of adaptive generalized elliptical slice sampling in each dimension.
Performs an in-place update of the Markov chain using one-dimensional AGESS updates. This function should only be used for custom (advanced) sampling schemes (see AGESS for general use). The matrix x contains the Markov chain. params contains all the information of the Markov chain, including log pdf of target distribution. μ_adapt and Σ_chol_adapt contain information about the mean and scale parameters of the adapted distribution, while i contains the current state of the Markov chain. The current state of X should be populated with the last state of the Markov chain.
Arguments
x_current::AbstractVector{<:AbstractFloat}: a vector containing the current state of the Markov Chainx_next::AbstractVector{<:AbstractFloat}: a vector which will contain the next state of the Markov Chainlog_posterior::Function: a function evaluating the log posterior pdf with a vector of parameters as the only inputt_dist::Bool: a Boolean containing whether to use the T-distribution to generate ellipsesν::AbstractFloat: the user-specified degrees of freedomμ_adapt::AbstractVector{<:AbstractFloat}: a vector containing the mean parameter of adapted distribution (dim = P)Σ_chol_adapt::LowerTriangular{<:AbstractFloat, <:AbstractMatrix{<:AbstractFloat}}: a lower triangular matrix containing the cholesky decomposition of the scale parameter of the adapted matrixl_pdf::AbstractFloat: the log posterior density of current stateperm::AbstractVector{<:Integer}: a vector containing a placeholder for the permutation of indicesrng::Random.AbstractRNG = Random.default_rng(): random number generator
Examples
For examples, please view the Tutorials section of the documentation.
References
N. Marco and S. T. Tokdar. Adaptive generalized elliptical slice sampling. arXiv preprint arXiv:2605.21659, 2026.
AdaptEllipticalSliceSampler.AGESSSampler — TypeAGESSSampler(P, n_MCMC; μ_0, Σ_0, init_x, t_dist, ν, burnin, ϵ, single_step_prop, β)An AbstractMCMC.AbstractSampler implementing adaptive generalized elliptical slice sampling (AGESS).
Arguments
P::Integer: the dimension of the target distributionn_MCMC::Integer: the total number of iterations the sampler is planned to run for (used to schedule burn-in)
Keyword Arguments
μ_0::Union{AbstractVector{<:AbstractFloat}, AbstractFloat} = 0.0: a vector (or number which will be multiplied by the one vector) containing the initial (or prior) mean of adaptive distributionΣ_0::Union{AbstractMatrix{<:AbstractFloat}, AbstractFloat} = 1.0: a matrix (or number which will be multiplied by I) containing the initial (or prior) scale of adaptive distributioninit_x::Union{AbstractVector{<:AbstractFloat}, AbstractFloat} = 0.0: a vector (or number which will be multiplied by the one vector) containing the initial starting location of the Markov chaint_dist::Bool = true: a Boolean variable indicating whether to use a t-distribution (true) or normal distribution (false) for elliptical slice sampling (Note: should almost always use t-distribution)ν::AbstractFloat = 6.0: the degrees of freedom of the t-distributionburnin::AbstractFloat = 0.5: the proportion of chain used for burninϵ::AbstractFloat = 0.05: the proportion of non-adaptive transitionssingle_step_prop::AbstractFloat = 0.05: the proportion of transitions where we perform one-dimensional updates (P >= 10)β::AbstractFloat = 0.5: the rate at which the adaptation diminishesblocks::Union{Vector{AGESSBlock}, Nothing}= vector of AGESSBlocks used to speed up 1-D updates in warm-up and for singlestepprop iterations
References
N. Marco and S. T. Tokdar. Adaptive generalized elliptical slice sampling. arXiv preprint arXiv:2605.21659, 2026.
AdaptEllipticalSliceSampler.AGESSModel — TypeAGESSModel(log_posterior, P)A lightweight AbstractMCMC.AbstractModel wrapping a log-posterior function directly, for users who do not want to depend on the LogDensityProblems interface. Also supported: AbstractMCMC.LogDensityModel wrapping any LogDensityProblems-compliant object, for interoperability with the wider Turing ecosystem.
Arguments
log_posterior::Function: a function evaluating the log posterior pdf with a vector of parameters as the only inputP::Integer: the dimension of the target distribution
AdaptEllipticalSliceSampler.AGESSState — TypeAGESSStateHolds the mutable state of an AGESS Markov chain between calls to AbstractMCMC.step.
AdaptEllipticalSliceSampler.AGESSTransition — TypeAGESSTransitionThe sample returned by AbstractMCMC.step for AGESS: the state of the Markov chain and its log posterior density.