diff --git a/Project.toml b/Project.toml index 7ba178c10..aae8ecc4d 100644 --- a/Project.toml +++ b/Project.toml @@ -48,6 +48,10 @@ Unicode = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [weakdeps] StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" +Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + +[extensions] +MacroModellingMooncakeExt = "Mooncake" [compat] ADTypes = "1" diff --git a/ext/MacroModellingMooncakeExt.jl b/ext/MacroModellingMooncakeExt.jl new file mode 100644 index 000000000..17a42e0e9 --- /dev/null +++ b/ext/MacroModellingMooncakeExt.jl @@ -0,0 +1,24 @@ +module MacroModellingMooncakeExt + +using MacroModelling +import Mooncake +import Mooncake: @from_rrule, DefaultCtx + +@from_rrule DefaultCtx Tuple{typeof(calculate_first_order_solution), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(calculate_second_order_solution), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(calculate_third_order_solution), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(solve_sylvester_equation), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(solve_lyapunov_equation), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(find_shocks), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(calculate_inversion_filter_loglikelihood), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(run_kalman_iterations), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(mul_reverse_AD!), Vararg{Any}} false +@from_rrule DefaultCtx Tuple{typeof(sparse_preallocated!), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(calculate_second_order_stochastic_steady_state), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(calculate_third_order_stochastic_steady_state), Vararg{Any}} true +@from_rrule DefaultCtx Tuple{typeof(calculate_jacobian), Vararg{Any}} false +@from_rrule DefaultCtx Tuple{typeof(calculate_hessian), Vararg{Any}} false +@from_rrule DefaultCtx Tuple{typeof(calculate_third_order_derivatives), Vararg{Any}} false +@from_rrule DefaultCtx Tuple{typeof(get_NSSS_and_parameters), Vararg{Any}} true + +end