diff --git a/src/identifiable_functions.jl b/src/identifiable_functions.jl index ce5415db5..02079564b 100644 --- a/src/identifiable_functions.jl +++ b/src/identifiable_functions.jl @@ -125,7 +125,7 @@ function _find_identifiable_functions( priority_variables = [parent_ring_change(p, bring) for p in ode.parameters], ) else - id_funcs_fracs = dennums_to_fractions(id_funcs) + id_funcs_fracs = RationalFunctionFields.dennums_to_fractions(id_funcs) end id_funcs_fracs = [parent_ring_change(f, parent(ode)) for f in id_funcs_fracs] _runtime_logger[:id_total] = (time_ns() - runtime_start) / 1.0e9 diff --git a/src/known_ic.jl b/src/known_ic.jl index a4b7d9bb7..83f359bce 100644 --- a/src/known_ic.jl +++ b/src/known_ic.jl @@ -42,20 +42,22 @@ function _find_identifiable_functions_kic( ode, prob_threshold = half_p, with_states = true, - simplify = simplify, + simplify = :absent, rational_interpolator = rational_interpolator, seed = seed, ) - id_funcs = simplified_generating_set( - RationalFunctionField( - vcat(id_funcs_general, [f // one(parent(ode)) for f in known_ic]), - ), - prob_threshold = half_p, - seed = seed, - simplify = simplify, - rational_interpolator = rational_interpolator, - ) + id_funcs = vcat(id_funcs_general, [f // one(parent(ode)) for f in known_ic]) + + if (simplify != :absent) + id_funcs = simplified_generating_set( + RationalFunctionField(id_funcs), + prob_threshold = half_p, + seed = seed, + simplify = simplify, + rational_interpolator = rational_interpolator, + ) + end @info "The search for identifiable functions with known initial conditions concluded in $((time_ns() - runtime_start) / 1.0e9) seconds" @@ -89,7 +91,7 @@ function _assess_identifiability_kic( funcs_to_check = vcat(ode.x_vars, ode.parameters) end half_p = 0.5 + prob_threshold / 2 - id_funcs = _find_identifiable_functions_kic(ode, known_ic, prob_threshold = half_p) + id_funcs = _find_identifiable_functions_kic(ode, known_ic, prob_threshold = half_p, simplify = :absent) #funcs_to_check = replace_with_ic(ode, funcs_to_check) result = OrderedDict(f => :globally for f in funcs_to_check)