diff --git a/Project.toml b/Project.toml index 70606a63..9f4fdae6 100644 --- a/Project.toml +++ b/Project.toml @@ -5,13 +5,24 @@ repo = "https://github.com/JuliaAlgebra/MultivariatePolynomials.jl" version = "0.5.12" [deps] -ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +[weakdeps] +ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + +[extensions] +MultivariatePolynomialsChainRulesCoreExt = "ChainRulesCore" + [compat] ChainRulesCore = "1" DataStructures = "0.19" MutableArithmetics = "0.3, 1" julia = "1.10" + +[extras] +ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + +[targets] +test = ["ChainRulesCore"] diff --git a/src/chain_rules.jl b/ext/MultivariatePolynomialsChainRulesCoreExt.jl similarity index 90% rename from src/chain_rules.jl rename to ext/MultivariatePolynomialsChainRulesCoreExt.jl index 77fe609a..96b51a8e 100644 --- a/src/chain_rules.jl +++ b/ext/MultivariatePolynomialsChainRulesCoreExt.jl @@ -1,4 +1,8 @@ +module MultivariatePolynomialsChainRulesCoreExt + import ChainRulesCore +using MultivariatePolynomials +using MultivariatePolynomials: _APL, MA ChainRulesCore.@scalar_rule +(x::_APL) true ChainRulesCore.@scalar_rule -(x::_APL) -1 @@ -30,3 +34,5 @@ function ChainRulesCore.rrule(::typeof(differentiate), p, x) dpdx = differentiate(p, x) return dpdx, Base.Fix2(pullback, x) end + +end diff --git a/src/MultivariatePolynomials.jl b/src/MultivariatePolynomials.jl index 9de4709e..988b3552 100644 --- a/src/MultivariatePolynomials.jl +++ b/src/MultivariatePolynomials.jl @@ -86,7 +86,6 @@ include("antidifferentiation.jl") include("division.jl") include("gcd.jl") include("det.jl") -include("chain_rules.jl") include("default_term.jl") include("sequences.jl")