Skip to content

Commit

Permalink
Merge pull request #61 from SciML/mtk
Browse files Browse the repository at this point in the history
Fix constructor of AutoMTK
  • Loading branch information
ChrisRackauckas committed Jun 7, 2024
2 parents 733a26a + 7cde295 commit 6a76e11
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/ADTypes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export AutoChainRules,
AutoFiniteDiff,
AutoFiniteDifferences,
AutoForwardDiff,
AutoModelingToolkit,
AutoPolyesterForwardDiff,
AutoReverseDiff,
AutoSymbolics,
Expand Down
22 changes: 21 additions & 1 deletion src/legacy.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
19 changes: 14 additions & 5 deletions test/legacy.jl
Original file line number Diff line number Diff line change
@@ -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
Expand Down

0 comments on commit 6a76e11

Please sign in to comment.