JuliaDiff / SparseDiffTools.jl

Fast jacobian computation through sparsity exploitation and matrix coloring
MIT License
237 stars 41 forks source link

Unable to compute sparse jacobian for reaction system (UndefVarError: m not defined) #202

Closed TorkelE closed 1 year ago

TorkelE commented 1 year ago

Initially I got the error or a larger system, but can reproduce it for a small as well.

Basically, I have a reaction system, for which I want to evaluate the jacobian. However, just getting to the sparsity I get an error:

using Catalyst, SparseDiffTools, SparsityDetection, SparseArrays
rn = @reaction_network begin
    (k1,k2), X <--> Y
end k1 k2
f = (y,x) -> ODEFunction(convert(ODESystem,rn))(y,x,[1.0,2.0],0.0)
input = rand(2)
output = similar(input)
sparsity_pattern = jacobian_sparsity(f,output,input)
#jac = Float64.(sparse(sparsity_pattern))

which yields

UndefVarError: m not defined

Stacktrace:
  [1] overdub
    @ ~/.julia/packages/Cassette/34vIw/src/context.jl:288 [inlined]
  [2] convert(::Type{ODESystem}, ::ReactionSystem{Nothing, Catalyst.NetworkProperties{Int64, Term{Real, Base.ImmutableDict{DataType, Any}}}})
    @ ~/.julia/packages/Catalyst/nDiu2/src/reactionsystem.jl:1246 [inlined]
  [3] recurse
    @ ~/.julia/packages/Catalyst/nDiu2/src/reactionsystem.jl:1246 [inlined]
  [4] recurse(::Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}, ::typeof(convert), ::Type{ODESystem}, ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, ReactionSystem{Nothing, Catalyst.NetworkProperties{Int64, Term{Real, Base.ImmutableDict{DataType, Any}}}}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:eqs, :iv, :states, :ps, :var_to_name, :observed, :name, :systems, :defaults, :connection_type, :constraints, :networkproperties, :combinatoric_ratelaws), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta}}}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:lhs, :rhs), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:isempty, :netstoichmat, :conservationmat, :col_order, :rank, :nullity, :indepspecs, :depspecs, :conservedeqs, :constantdefs, :speciesmap, :complextorxsmap, :complexes, :incidencemat, :complexstoichmat, :complexoutgoingmat, :incidencegraph, :linkageclasses, :deficiency), Tuple{Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Matrix{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:dict,), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:f, :arguments, :metadata, :hash), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:parent, :key, :value), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}}}}}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:dict,), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:f, :arguments, :metadata, :hash), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:parent, :key, :value), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}}}}}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:lhs, :rhs), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:lhs, :rhs), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:f, :arguments, :metadata, :hash), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:parent, :key, :value), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}}}}}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :maxprobe, :dirty), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:speciesids, :speciesstoichs), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:first, :second), Tuple{Cassette.Immutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:speciesids, :speciesstoichs), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:ne, :fadjlist, :badjlist), Tuple{Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Immutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
  [5] overdub(::Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}, ::Function, ::Type, ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, ReactionSystem{Nothing, Catalyst.NetworkProperties{Int64, Term{Real, Base.ImmutableDict{DataType, Any}}}}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:eqs, :iv, :states, :ps, :var_to_name, :observed, :name, :systems, :defaults, :connection_type, :constraints, :networkproperties, :combinatoric_ratelaws), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta}}}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:lhs, :rhs), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:isempty, :netstoichmat, :conservationmat, :col_order, :rank, :nullity, :indepspecs, :depspecs, :conservedeqs, :constantdefs, :speciesmap, :complextorxsmap, :complexes, :incidencemat, :complexstoichmat, :complexoutgoingmat, :incidencegraph, :linkageclasses, :deficiency), Tuple{Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Matrix{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:dict,), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:f, :arguments, :metadata, :hash), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:parent, :key, :value), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}}}}}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:dict,), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:f, :arguments, :metadata, :hash), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:parent, :key, :value), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}}}}}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:lhs, :rhs), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:lhs, :rhs), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :count, :age, :idxfloor, :maxprobe), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:f, :arguments, :metadata, :hash), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:parent, :key, :value), Tuple{Cassette.Immutable{Cassette.Meta}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta}}}}}, Cassette.Immutable{Cassette.Meta}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:slots, :keys, :vals, :ndel, :maxprobe, :dirty), Tuple{Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:speciesids, :speciesstoichs), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:first, :second), Tuple{Cassette.Immutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Immutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:speciesids, :speciesstoichs), Tuple{Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Immutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, NamedTuple{(:ne, :fadjlist, :badjlist), Tuple{Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}}}}}, Cassette.Mutable{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Mutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}}}, Cassette.Immutable{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}}}, Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}})
    @ SparsityDetection ~/.julia/packages/SparsityDetection/E7o7R/src/propagate_tags.jl:37
  [6] (::var"
    @ ./In[29]:5 [inlined]
  [7] recurse
    @ ./In[29]:5 [inlined]
  [8] recurse(::Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}, ::var"#13#14", ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}}, ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
  [9] overdub(::Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}, ::Function, ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}}, ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}})
    @ SparsityDetection ~/.julia/packages/SparsityDetection/E7o7R/src/propagate_tags.jl:45
 [10] overdub
    @ ~/.julia/packages/Cassette/34vIw/src/context.jl:266 [inlined]
 [11] (::SparsityDetection.var"
    @ ~/.julia/packages/SparsityDetection/E7o7R/src/controlflow.jl:148 [inlined]
 [12] recurse
    @ ~/.julia/packages/SparsityDetection/E7o7R/src/controlflow.jl:148 [inlined]
 [13] recurse(overdub_context#320::Cassette.Context{nametype(JacobianSparsityContext), Tuple{Sparsity, SparsityDetection.Path}, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, SparsityDetection.var"##PassType#314", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}, overdub_arguments#321::SparsityDetection.var"#2#3"{var"#13#14", Tuple{Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}}, Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}}}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [14] abstract_run(::SparsityDetection.var"#22#24", ::Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}, ::Function, ::Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}}, ::Vararg{Cassette.Tagged{Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Vector{Float64}, Union{SparsityDetection.JacInput, SparsityDetection.JacOutput, SparsityDetection.ProvinanceSet}, Vector{Cassette.Meta{SparsityDetection.ProvinanceSet, Cassette.NoMetaMeta}}, Cassette.Context{nametype(JacobianSparsityContext), Sparsity, Cassette.Tag{nametype(JacobianSparsityContext), 0x000000002b1f11ad, Nothing}, Cassette.var"##PassType#322", IdDict{Module, Dict{Symbol, Cassette.BindingMeta}}, Cassette.DisableHooks}}}; verbose::Bool)
    @ SparsityDetection ~/.julia/packages/SparsityDetection/E7o7R/src/controlflow.jl:148
 [15] jacobian_sparsity(::Function, ::Vector{Float64}, ::Vector{Float64}; sparsity::Sparsity, verbose::Bool, raw::Bool)
    @ SparsityDetection ~/.julia/packages/SparsityDetection/E7o7R/src/jacobian.jl:135
 [16] jacobian_sparsity(::Function, ::Vector{Float64}, ::Vector{Float64})
    @ SparsityDetection ~/.julia/packages/SparsityDetection/E7o7R/src/jacobian.jl:125
 [17] top-level scope
    @ In[29]:8
 [18] eval
    @ ./boot.jl:368 [inlined]
 [19] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:1428
ChrisRackauckas commented 1 year ago

Wrong repo? This doesn't use any functions from this package and errors on a Catalyst.jl line

TorkelE commented 1 year ago

Sorry, didn't realise the error was in Catalyst.