diff --git a/src/ADTypes.jl b/src/ADTypes.jl index fb63976..7fefb2b 100644 --- a/src/ADTypes.jl +++ b/src/ADTypes.jl @@ -35,6 +35,7 @@ export AutoChainRules, AutoFiniteDiff, AutoFiniteDifferences, AutoForwardDiff, + AutoModelingToolkit, AutoPolyesterForwardDiff, AutoReverseDiff, AutoSymbolics, diff --git a/src/legacy.jl b/src/legacy.jl index 642095a..5784399 100644 --- a/src/legacy.jl +++ b/src/legacy.jl @@ -11,4 +11,24 @@ @deprecate AutoSparseZygote() AutoSparse(AutoZygote()) -@deprecate AutoModelingToolkit(; kwargs...) AutoSparse(AutoSymbolics()) +function mtk_to_symbolics(obj_sparse::Bool, cons_sparse::Bool) + if obj_sparse || cons_sparse + return AutoSparse(AutoSymbolics()) + else + return AutoSymbolics() + end +end + +function AutoModelingToolkit(obj_sparse::Bool, cons_sparse::Bool) + Base.depwarn( + "`AutoModelingToolkit(obj_sparse, cons_sparse)` is deprecated, use `AutoSymbolics()` or `AutoSparse(AutoSymbolics())` instead.", + :AutoModelingToolkit; force = false) + return mtk_to_symbolics(obj_sparse, cons_sparse) +end + +function AutoModelingToolkit(; obj_sparse::Bool = false, cons_sparse::Bool = false) + Base.depwarn( + "`AutoModelingToolkit(; obj_sparse, cons_sparse)` is deprecated, use `AutoSymbolics()` or `AutoSparse(AutoSymbolics())` instead.", + :AutoModelingToolkit; force = false) + return mtk_to_symbolics(obj_sparse, cons_sparse) +end diff --git a/test/legacy.jl b/test/legacy.jl index 2a104b4..08f09d9 100644 --- a/test/legacy.jl +++ b/test/legacy.jl @@ -1,8 +1,17 @@ -@testset "AutoModelingToolkig" begin - ad = @test_deprecated AutoModelingToolkit() - @test ad isa AbstractADType - @test ad isa AutoSparse - @test dense_ad(ad) isa AutoSymbolics +@testset "AutoModelingToolkit" begin + ad_sparse1 = @test_deprecated AutoModelingToolkit(; + obj_sparse = true, cons_sparse = false) + ad_sparse2 = @test_deprecated AutoModelingToolkit(true, false) + + ad_dense1 = @test_deprecated AutoModelingToolkit(; + obj_sparse = false, cons_sparse = false) + ad_dense2 = @test_deprecated AutoModelingToolkit(false, false) + ad_dense3 = @test_deprecated AutoModelingToolkit() + + @test all( + isa.((ad_sparse1, ad_sparse2, ad_dense1, ad_dense2, ad_dense3), AbstractADType)) + @test all(isa.((ad_sparse1, ad_sparse2), AutoSparse{<:AutoSymbolics})) + @test all(isa.((ad_dense1, ad_dense2, ad_dense3), AutoSymbolics)) end @testset "AutoSparseFastDifferentiation" begin