Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stack overflow in type inference of forcefold #2261

Open
mhauru opened this issue Jan 9, 2025 · 3 comments
Open

stack overflow in type inference of forcefold #2261

mhauru opened this issue Jan 9, 2025 · 3 comments

Comments

@mhauru
Copy link
Contributor

mhauru commented Jan 9, 2025

Working example (not claiming it's a minimal one):

module MWE

using Distributions
using Enzyme
using Turing
using Turing: DynamicPPL
using ADTypes
using Random
import LogDensityProblems
import LogDensityProblemsAD
import AdvancedHMC as AHMC

Random.seed!(23)

function data_poly(x)
    return hcat([x]...)
end

function model(__model__::DynamicPPL.Model, __varinfo__::DynamicPPL.AbstractVarInfo, __context__::DynamicPPL.AbstractContext, x::Any;)
    X = data_poly(x)
    var"##dist#228" = Normal(0, 1)
    var"##vn#225" = (DynamicPPL.resolve_varnames)((DynamicPPL.VarName){}(), var"##dist#228")
    var"##isassumption#226" = begin
        if (DynamicPPL.contextual_isassumption)(__context__, var"##vn#225")
            if !((DynamicPPL.inargnames)(var"##vn#225", __model__)) || (DynamicPPL.inmissings)(var"##vn#225", __model__)
                true
            else
                σ === missing
            end
        else
            false
        end
    end
    if (DynamicPPL.contextual_isfixed)(__context__, var"##vn#225")
        σ = (DynamicPPL.getfixed_nested)(__context__, var"##vn#225")
    elseif var"##isassumption#226"
        begin
            (var"##value#229", __varinfo__) = (DynamicPPL.tilde_assume!!)(__context__, (DynamicPPL.unwrap_right_vn)((DynamicPPL.check_tilde_rhs)(var"##dist#228"), var"##vn#225")..., __varinfo__)
            σ = var"##value#229"
            var"##value#229"
        end
    else
        if !((DynamicPPL.inargnames)(var"##vn#225", __model__))
            σ = (DynamicPPL.getconditioned_nested)(__context__, var"##vn#225")
        end
        (var"##value#227", __varinfo__) = (DynamicPPL.tilde_observe!!)(__context__, (DynamicPPL.check_tilde_rhs)(var"##dist#228"), σ, var"##vn#225", __varinfo__)
        var"##value#227"
    end
    var"##retval#231" = for i = 1:1000
        #= REPL[6]:7 =#
        mu = X[i, 1]
        #= REPL[6]:8 =#
        begin
            (var"##value#230", __varinfo__) = (DynamicPPL.tilde_observe!!)(__context__, (DynamicPPL.check_tilde_rhs)(Uniform(mu, mu + 1.0)), 0.0, __varinfo__)
            var"##value#230"
        end
        #= REPL[6]:9 =#
    end
    #= /Users/mhauru/.julia/packages/DynamicPPL/cvlfK/src/compiler.jl:585 =#
    return (var"##retval#231", __varinfo__)
end

function model(x::Any;)
    #= REPL[6]:1 =#
    return (DynamicPPL.Model)(model, NamedTuple{(:x,)}((x,));)
end

getmetricT(::Turing.NUTS{<:Any,<:Any,metricT}) where {metricT} = metricT

function make_ahmc_kernel(alg::NUTS, ϵ)
    return AHMC.HMCKernel(
        AHMC.Trajectory{AHMC.MultinomialTS}(
            AHMC.Leapfrog(ϵ), AHMC.GeneralisedNoUTurn(alg.max_depth, alg.Δ_max)
        ),
    )
end

function AHMCAdaptor(::Turing.Inference.Hamiltonian, ::AHMC.AbstractMetric; kwargs...)
    return AHMC.Adaptation.NoAdaptation()
end

function initialstep(
    rng,
    model,
    spl,
    vi_original;
    initial_params=nothing,
    nadapts=0,
    kwargs...,
)
    # Transform the samples to unconstrained space and compute the joint log probability.
    vi = DynamicPPL.link(vi_original, spl, model)

    # Extract parameters.
    theta = vi[spl]

    # Create a Hamiltonian.
    metricT = getmetricT(spl.alg)
    metric = metricT(length(theta))
    ℓ = LogDensityProblemsAD.ADgradient(
        Turing.LogDensityFunction(
            vi,
            model,
            # Use the leaf-context from the `model` in case the user has
            # contextualized the model with something like `PriorContext`
            # to sample from the prior.
            DynamicPPL.SamplingContext(rng, spl, DynamicPPL.leafcontext(model.context)),
        ),
    )
    logπ = Base.Fix1(LogDensityProblems.logdensity, ℓ)
    ∂logπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)
    hamiltonian = AHMC.Hamiltonian(metric, logπ, ∂logπ∂θ)

    # Compute phase point z.
    z = AHMC.phasepoint(rng, theta, hamiltonian)

    # Cache current log density.
    log_density_old = DynamicPPL.getlogp(vi)

    # Find good eps if not provided one
    if iszero(spl.alg.ϵ)
        ϵ = AHMC.find_good_stepsize(rng, hamiltonian, theta)
        @info "Found initial step size" ϵ
    else
        ϵ = spl.alg.ϵ
    end

    # Generate a kernel.
    kernel = make_ahmc_kernel(spl.alg, ϵ)

    # Create initial transition and state.
    # Already perform one step since otherwise we don't get any statistics.
    t = AHMC.transition(rng, hamiltonian, kernel, z)

    # Adaptation
    adaptor = AHMCAdaptor(spl.alg, hamiltonian.metric; ϵ=ϵ)

    # Update `vi` based on acceptance
    vi = DynamicPPL.unflatten(vi, spl, t.z.θ)
    vi = DynamicPPL.setlogp!!(vi, t.stat.log_density)

    state = Turing.Inference.HMCState(vi, 1, kernel, hamiltonian, t.z, adaptor)

    return state
end

function step(
    rng,
    model,
    spl,
    state
)
    hamiltonian = state.hamiltonian
    z = state.z
    # AHMC.transition(rng, hamiltonian, state.kernel, z)
    Enzyme.gradient(mode, hamiltonian.∂ℓπ∂θ, z.θ)

    # Update variables
    vi = state.vi
    vi = DynamicPPL.unflatten(vi, spl, [randn()])

    return state
end

x = rand(Normal(0, 1.5), 1000)

mode = Enzyme.set_runtime_activity(Enzyme.Reverse)
m = model(x)

# ldf = DynamicPPL.LogDensityFunction(m)
# f(x) = LogDensityProblems.logdensity(ldf, [x])
# for i in 1:1000
#     Enzyme.gradient(mode, f, randn())
# end

sampler = DynamicPPL.Sampler(NUTS(; adtype=AutoEnzyme(; mode=mode)))
# sample(m, sampler, 1000; initial_params=[0.0])

vi_original = Turing.TypedVarInfo(Turing.VarInfo(m))
state_initial = initialstep(
    Random.default_rng(),
    m,
    sampler,
    vi_original;
    initial_params=[0.0],
)

for _ in 1:1000
    state = state_initial
    state = step(
        Random.default_rng(),
        m,
        sampler,
        state
    )
end

end

Output:

Internal error: stack overflow in type inference of forcefold(Base.Val{Enzyme.Compiler.ActivityState(0x00000000)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}, Base.Val{Enzyme.Compiler.ActivityState(0x00000002)}).
This might be caused by recursion over very long tuples or argument lists.
ERROR: LoadError: Active return values with automatic pullback (differential return value) deduction only supported for floating-like values and not type Tuple{Float64, Vector{Float64}}. If mutable memory, please use Duplicated. Otherwise, you can explicitly specify a pullback by using split mode, e.g. autodiff_thunk(ReverseSplitWithPrimal, ...)
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] default_adjoint
   @ ~/.julia/packages/Enzyme/R6sE8/src/compiler.jl:4858 [inlined]
 [3] autodiff
   @ ~/.julia/packages/Enzyme/R6sE8/src/Enzyme.jl:501 [inlined]
 [4] autodiff
   @ ~/.julia/packages/Enzyme/R6sE8/src/Enzyme.jl:524 [inlined]
 [5] macro expansion
   @ ~/.julia/packages/Enzyme/R6sE8/src/sugar.jl:324 [inlined]
 [6] gradient(::EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, ::Main.MWE.var"#∂logπ∂θ#3"{LogDensityProblemsADEnzymeExt.EnzymeGradientLogDensity{DynamicPPL.LogDensityFunction{DynamicPPL.TypedVarInfo{@NamedTuple::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.SamplingContext{DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, DynamicPPL.DefaultContext, Random.TaskLocalRNG}}, EnzymeCore.ReverseMode{true, true, EnzymeCore.FFIABI, false, false}, Nothing}}, ::Vector{Float64})
   @ Enzyme ~/.julia/packages/Enzyme/R6sE8/src/sugar.jl:263
 [7] step(rng::Random.TaskLocalRNG, model::DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, spl::DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, state::Turing.Inference.HMCState{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, AdvancedHMC.HMCKernel{AdvancedHMC.FullMomentumRefreshment, AdvancedHMC.Trajectory{AdvancedHMC.MultinomialTS, AdvancedHMC.Leapfrog{Float64}, AdvancedHMC.GeneralisedNoUTurn{Float64}}}, AdvancedHMC.Hamiltonian{AdvancedHMC.DiagEuclideanMetric{Float64, Vector{Float64}}, AdvancedHMC.GaussianKinetic, Base.Fix1{typeof(LogDensityProblems.logdensity), LogDensityProblemsADEnzymeExt.EnzymeGradientLogDensity{DynamicPPL.LogDensityFunction{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.SamplingContext{DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, DynamicPPL.DefaultContext, Random.TaskLocalRNG}}, EnzymeCore.ReverseMode{true, true, EnzymeCore.FFIABI, false, false}, Nothing}}, Main.MWE.var"#∂logπ∂θ#3"{LogDensityProblemsADEnzymeExt.EnzymeGradientLogDensity{DynamicPPL.LogDensityFunction{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.SamplingContext{DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, DynamicPPL.DefaultContext, Random.TaskLocalRNG}}, EnzymeCore.ReverseMode{true, true, EnzymeCore.FFIABI, false, false}, Nothing}}}, AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, AdvancedHMC.Adaptation.NoAdaptation})
   @ Main.MWE ~/projects/Enzyme-mwes/2256/mwe.jl:156
 [8] top-level scope
   @ ~/projects/Enzyme-mwes/2256/mwe.jl:190
in expression starting at /Users/mhauru/projects/Enzyme-mwes/2256/mwe.jl:1

Enzyme v0.13.28, Julia v1.10.6.

This came up while minimising #2256. I would like to sort this one out first in case the two are related, given that minimising #2256 is quite laboursome. This one is hopefully easier given that at least the error is deterministic.

@wsmoses
Copy link
Member

wsmoses commented Jan 9, 2025

that seems unrelated (and appears to be ignored by Julia as a warning).

It looks like the real issue is

ERROR: LoadError: Active return values with automatic pullback (differential return value) deduction only supported for floating-like values and not type Tuple{Float64, Vector{Float64}}. If mutable memory, please use Duplicated. Otherwise, you can explicitly specify a pullback by using split mode, e.g. autodiff_thunk(ReverseSplitWithPrimal, ...)
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] default_adjoint
   @ ~/.julia/packages/Enzyme/R6sE8/src/compiler.jl:4858 [inlined]
 [3] autodiff
   @ ~/.julia/packages/Enzyme/R6sE8/src/Enzyme.jl:501 [inlined]
 [4] autodiff
   @ ~/.julia/packages/Enzyme/R6sE8/src/Enzyme.jl:524 [inlined]
 [5] macro expansion
   @ ~/.julia/packages/Enzyme/R6sE8/src/sugar.jl:324 [inlined]
 [6] gradient(::EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, ::Main.MWE.var"#∂logπ∂θ#3"{LogDensityProblemsADEnzymeExt.EnzymeGradientLogDensity{DynamicPPL.LogDensityFunction{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.SamplingContext{DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, DynamicPPL.DefaultContext, Random.TaskLocalRNG}}, EnzymeCore.ReverseMode{true, true, EnzymeCore.FFIABI, false, false}, Nothing}}, ::Vector{Float64})
   @ Enzyme ~/.julia/packages/Enzyme/R6sE8/src/sugar.jl:263
 [7] step(rng::Random.TaskLocalRNG, model::DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, spl::DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, state::Turing.Inference.HMCState{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, AdvancedHMC.HMCKernel{AdvancedHMC.FullMomentumRefreshment, AdvancedHMC.Trajectory{AdvancedHMC.MultinomialTS, AdvancedHMC.Leapfrog{Float64}, AdvancedHMC.GeneralisedNoUTurn{Float64}}}, AdvancedHMC.Hamiltonian{AdvancedHMC.DiagEuclideanMetric{Float64, Vector{Float64}}, AdvancedHMC.GaussianKinetic, Base.Fix1{typeof(LogDensityProblems.logdensity), LogDensityProblemsADEnzymeExt.EnzymeGradientLogDensity{DynamicPPL.LogDensityFunction{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.SamplingContext{DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, DynamicPPL.DefaultContext, Random.TaskLocalRNG}}, EnzymeCore.ReverseMode{true, true, EnzymeCore.FFIABI, false, false}, Nothing}}, Main.MWE.var"#∂logπ∂θ#3"{LogDensityProblemsADEnzymeExt.EnzymeGradientLogDensity{DynamicPPL.LogDensityFunction{DynamicPPL.TypedVarInfo{@NamedTuple{σ::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:σ, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName{:σ, typeof(identity)}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, DynamicPPL.Model{typeof(Main.MWE.model), (:x,), (), (), Tuple{Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.SamplingContext{DynamicPPL.Sampler{Turing.Inference.NUTS{ADTypes.AutoEnzyme{EnzymeCore.ReverseMode{false, true, EnzymeCore.FFIABI, false, false}, Nothing}, (), AdvancedHMC.DiagEuclideanMetric}}, DynamicPPL.DefaultContext, Random.TaskLocalRNG}}, EnzymeCore.ReverseMode{true, true, EnzymeCore.FFIABI, false, false}, Nothing}}}, AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, AdvancedHMC.Adaptation.NoAdaptation})
   @ Main.MWE ~/projects/Enzyme-mwes/2256/mwe.jl:156
 [8] top-level scope
   @ ~/projects/Enzyme-mwes/2256/mwe.jl:190

which is that the functino you're differentiating didn't return a float

@mhauru
Copy link
Contributor Author

mhauru commented Jan 10, 2025

Yeah, the error indeed is something else, happy to ignore that. Do you think you know based on the above repro snippet what the cause of the stack overflow is? I can reduce it further, but will do so only if necessary, since it's slow work with these Turing models and sampler code.

@wsmoses
Copy link
Member

wsmoses commented Jan 10, 2025

yeah the stackoverflow doesn't need reduction [and is incidentally within julia itself]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants