|
6 | 6 | module ADTypes
|
7 | 7 |
|
8 | 8 | using Base: @deprecate
|
9 |
| -using Compat: @compat # for `public` |
10 | 9 |
|
11 | 10 | """
|
12 | 11 | AbstractADType
|
@@ -47,28 +46,42 @@ export AutoChainRules,
|
47 | 46 | AutoTapir,
|
48 | 47 | AutoTracker,
|
49 | 48 | AutoZygote
|
50 |
| -@compat public AbstractMode |
51 |
| -@compat public ForwardMode, ReverseMode, ForwardOrReverseMode, SymbolicMode |
52 |
| -@compat public mode |
53 |
| -@compat public Auto |
54 | 49 |
|
55 | 50 | # Sparse Automatic Differentiation
|
56 | 51 | export AutoSparse
|
57 |
| -@compat public dense_ad |
58 | 52 |
|
59 | 53 | # Sparsity detection
|
60 | 54 | export AbstractSparsityDetector
|
61 | 55 | export jacobian_sparsity, hessian_sparsity
|
62 |
| -@compat public sparsity_detector |
63 |
| -@compat public NoSparsityDetector |
64 |
| -@compat public KnownJacobianSparsityDetector, KnownHessianSparsityDetector |
65 | 56 |
|
66 | 57 | # Matrix coloring
|
67 | 58 | export AbstractColoringAlgorithm
|
68 | 59 | export column_coloring, row_coloring, symmetric_coloring
|
69 |
| -@compat public coloring_algorithm |
70 |
| -@compat public NoColoringAlgorithm |
71 | 60 |
|
72 | 61 | # legacy exports are taken care of by @deprecated
|
73 | 62 |
|
| 63 | +# Define public interface |
| 64 | +# To avoid a dependency on Compat.jl, this uses a trick suggested by Lilith Hafner: |
| 65 | +# https://discourse.julialang.org/t/is-compat-jl-worth-it-for-the-public-keyword/119041/2 |
| 66 | +if VERSION >= v"1.11.0-DEV.469" |
| 67 | + # Automatic Differentiation |
| 68 | + eval(Meta.parse("public AbstractMode")) |
| 69 | + eval(Meta.parse("public ForwardMode, ReverseMode, ForwardOrReverseMode, SymbolicMode")) |
| 70 | + eval(Meta.parse("public mode")) |
| 71 | + eval(Meta.parse("public Auto")) |
| 72 | + |
| 73 | + # Sparse Automatic Differentiation |
| 74 | + eval(Meta.parse("public dense_ad")) |
| 75 | + |
| 76 | + # Sparsity detection |
| 77 | + eval(Meta.parse("public sparsity_detector")) |
| 78 | + eval(Meta.parse("public NoSparsityDetector")) |
| 79 | + eval(Meta.parse("public KnownJacobianSparsityDetector")) |
| 80 | + eval(Meta.parse("public KnownHessianSparsityDetector")) |
| 81 | + |
| 82 | + # Matrix coloring |
| 83 | + eval(Meta.parse("public NoColoringAlgorithm")) |
| 84 | + eval(Meta.parse("public coloring_algorithm")) |
| 85 | +end |
| 86 | + |
74 | 87 | end
|
0 commit comments