Developer docs

ARS.AllocFreeWeights — Type
struct AllocFreeWeights{S<:Real, T<:Number, V<:AbstractArray{T<:Number, 1}} <: StatsBase.AbstractWeights{S<:Real, T<:Number, V<:AbstractArray{T<:Number, 1}}

Non-mutable weights used in the sample function in this package in order to avoid allocations.

  • values::AbstractVector{T} where T<:Number

  • sum::Real

ARS.__sample! — Method
__sample!(rng::AbstractRNG, out::Vector{T}, s::ARSampler{T}, add_segments::Bool) where {T<:AbstractFloat}

All other __sample! methods call this one.

ARS.add_segment! — Method
add_segment!(
    s::ARS.ARSampler{T<:AbstractFloat},
    x::AbstractFloat
)

Modifies the hulls of s, adding a segment with at x.

ARS.exp_integral_line — Method
exp_integral_line(slope, intercept, x1, x2)

Calculate the integral of exp(slope * x + intercept) between x1 and x2. Handles a slope of 0.

ARS.intersection — Method

Returns the intersection abscissa between 2 lines as defined by their slopes and intercepts. Returns NaN if the lines are paralell.

ARS.line — Method

Get line i from the hull. Returns a tuple consisting of (slope, intercept).