Developer docs

ARSampling.AllocFreeWeightsType
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

ARSampling.__sample!Method
__sample!(rng::AbstractRNG, out::AbstractVector{T}, s::ARSampler{T}, add_segments::Bool, max_segments) where {T<:AbstractFloat}

All other __sample! methods call this one.

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

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

ARSampling.exp_integral_lineMethod
exp_integral_line(slope, intercept, x1, x2)

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

ARSampling.intersectionMethod

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

ARSampling.lineMethod

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