@@ -10,8 +10,70 @@ for problem in NLPModelsTest.nls_problems
1010 include (" nls/problems/$(lowercase (problem)) .jl" )
1111end
1212
13+ EnzymeReverseAD () = ADNLPModels. ADModelBackend (
14+ ADNLPModels. EnzymeReverseADGradient (),
15+ ADNLPModels. EnzymeReverseADHvprod (zeros (1 )),
16+ ADNLPModels. EnzymeReverseADJprod (zeros (1 )),
17+ ADNLPModels. EnzymeReverseADJtprod (zeros (1 )),
18+ ADNLPModels. EnzymeReverseADJacobian (),
19+ ADNLPModels. EnzymeReverseADHessian (),
20+ ADNLPModels. EnzymeReverseADHvprod (zeros (1 )),
21+ ADNLPModels. EmptyADbackend (),
22+ ADNLPModels. EmptyADbackend (),
23+ ADNLPModels. EmptyADbackend (),
24+ ADNLPModels. EmptyADbackend (),
25+ ADNLPModels. EmptyADbackend (),
26+ )
27+
28+ function test_autodiff_backend_error ()
29+ @testset " Error without loading package - $backend " for backend in [:EnzymeReverseAD ]
30+ adbackend = eval (backend)()
31+ # @test_throws ArgumentError gradient(adbackend.gradient_backend, sum, [1.0])
32+ # @test_throws ArgumentError gradient!(adbackend.gradient_backend, [1.0], sum, [1.0])
33+ # @test_throws ArgumentError jacobian(adbackend.jacobian_backend, identity, [1.0])
34+ # @test_throws ArgumentError hessian(adbackend.hessian_backend, sum, [1.0])
35+ # @test_throws ArgumentError Jprod!(
36+ # adbackend.jprod_backend,
37+ # [1.0],
38+ # [1.0],
39+ # identity,
40+ # [1.0],
41+ # Val(:c),
42+ # )
43+ # @test_throws ArgumentError Jtprod!(
44+ # adbackend.jtprod_backend,
45+ # [1.0],
46+ # [1.0],
47+ # identity,
48+ # [1.0],
49+ # Val(:c),
50+ # )
51+ gradient (adbackend. gradient_backend, sum, [1.0 ])
52+ gradient! (adbackend. gradient_backend, [1.0 ], sum, [1.0 ])
53+ jacobian (adbackend. jacobian_backend, identity, [1.0 ])
54+ hessian (adbackend. hessian_backend, sum, [1.0 ])
55+ Jprod! (
56+ adbackend. jprod_backend,
57+ [1.0 ],
58+ identity,
59+ [1.0 ],
60+ [1.0 ],
61+ Val (:c ),
62+ )
63+ # Jtprod!(
64+ # adbackend.jtprod_backend,
65+ # [1.0],
66+ # identity,
67+ # [1.0],
68+ # [1.0],
69+ # Val(:c),
70+ # )
71+ end
72+ end
73+
74+ test_autodiff_backend_error ()
1375#=
14- ADNLPModels.EmptyADbackend(args...; kwargs...) = ADNLPModels.EmptyADbackend()
76+ # ADNLPModels.EmptyADbackend(args...; kwargs...) = ADNLPModels.EmptyADbackend()
1577
1678names = OptimizationProblems.meta[!, :name]
1779list_excluded_enzyme = [
0 commit comments