@@ -14,104 +14,14 @@ const arglists = (Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Float
14
14
Tuple{Vector{dualT}, Vector{Float64}, SciMLBase. NullParameters, dualT})
15
15
const iip_returnlists = ntuple (x -> Nothing, length (arglists))
16
16
function void (@nospecialize (f:: Function ))
17
- function f2 (@nospecialize (du:: Vector{Float64} ), @nospecialize (u:: Vector{Float64} ),
18
- @nospecialize (p:: Vector{Float64} ), @nospecialize (t:: Float64 ))
19
- f (du, u, p, t)
20
- nothing
21
- end
22
-
23
- function f2 (@nospecialize (du:: Vector{Float64} ), @nospecialize (u:: Vector{Float64} ),
24
- @nospecialize (p:: SciMLBase.NullParameters ), @nospecialize (t:: Float64 ))
25
- f (du, u, p, t)
26
- nothing
27
- end
28
-
29
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{dualT} ),
30
- @nospecialize (p:: Vector{Float64} ), @nospecialize (t:: Float64 ))
31
- f (du, u, p, t)
32
- nothing
33
- end
34
-
35
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{dualT} ),
36
- @nospecialize (p:: SciMLBase.NullParameters ), @nospecialize (t:: Float64 ))
37
- f (du, u, p, t)
38
- nothing
39
- end
40
-
41
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{Float64} ),
42
- @nospecialize (p:: Vector{Float64} ), @nospecialize (t:: dualT ))
43
- f (du, u, p, t)
44
- nothing
45
- end
46
-
47
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{Float64} ),
48
- @nospecialize (p:: SciMLBase.NullParameters ), @nospecialize (t:: dualT ))
49
- f (du, u, p, t)
50
- nothing
51
- end
52
- precompile (f, (Vector{Float64}, Vector{Float64}, Vector{Float64}, Float64))
53
- precompile (f, (Vector{Float64}, Vector{Float64}, SciMLBase. NullParameters, Float64))
54
- precompile (f, (Vector{dualT}, Vector{dualT}, Vector{Float64}, Float64))
55
- precompile (f, (Vector{dualT}, Vector{dualT}, SciMLBase. NullParameters, Float64))
56
- precompile (f, (Vector{dualT}, Vector{Float64}, Vector{Float64}, dualT))
57
- precompile (f, (Vector{dualT}, Vector{Float64}, SciMLBase. NullParameters, dualT))
58
-
59
- precompile (f2, (Vector{Float64}, Vector{Float64}, Vector{Float64}, Float64))
60
- precompile (f2, (Vector{Float64}, Vector{Float64}, SciMLBase. NullParameters, Float64))
61
- precompile (f2, (Vector{dualT}, Vector{dualT}, Vector{Float64}, Float64))
62
- precompile (f2, (Vector{dualT}, Vector{dualT}, SciMLBase. NullParameters, Float64))
63
- precompile (f2, (Vector{dualT}, Vector{Float64}, Vector{Float64}, dualT))
64
- precompile (f2, (Vector{dualT}, Vector{Float64}, SciMLBase. NullParameters, dualT))
65
- f2
17
+ Base. Experimental. @opaque (args... )-> f (args... )
66
18
end
67
19
68
20
const oop_returnlists = (Vector{Float64},Vector{Float64},
69
21
ntuple (x -> Vector{dualT}, length (arglists)- 2 )... )
70
22
71
23
function typestablemapping (@nospecialize (f:: Function ))
72
- function f2 (@nospecialize (du:: Vector{Float64} ), @nospecialize (u:: Vector{Float64} ),
73
- @nospecialize (p:: Vector{Float64} ), @nospecialize (t:: Float64 ))
74
- f (u, p, t):: Vector{Float64}
75
- end
76
-
77
- function f2 (@nospecialize (du:: Vector{Float64} ), @nospecialize (u:: Vector{Float64} ),
78
- @nospecialize (p:: SciMLBase.NullParameters ), @nospecialize (t:: Float64 ))
79
- f (u, p, t):: Vector{Float64}
80
- end
81
-
82
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{dualT} ),
83
- @nospecialize (p:: Vector{Float64} ), @nospecialize (t:: Float64 ))
84
- f (u, p, t):: Vector{dualT}
85
- end
86
-
87
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{dualT} ),
88
- @nospecialize (p:: SciMLBase.NullParameters ), @nospecialize (t:: Float64 ))
89
- f (u, p, t):: Vector{dualT}
90
- end
91
-
92
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{Float64} ),
93
- @nospecialize (p:: Vector{Float64} ), @nospecialize (t:: dualT ))
94
- f (u, p, t):: Vector{dualT}
95
- end
96
-
97
- function f2 (@nospecialize (du:: Vector{dualT} ), @nospecialize (u:: Vector{Float64} ),
98
- @nospecialize (p:: SciMLBase.NullParameters ), @nospecialize (t:: dualT ))
99
- f (u, p, t):: Vector{dualT}
100
- end
101
- precompile (f, (Vector{Float64}, Vector{Float64}, Vector{Float64}, Float64))
102
- precompile (f, (Vector{Float64}, Vector{Float64}, SciMLBase. NullParameters, Float64))
103
- precompile (f, (Vector{dualT}, Vector{dualT}, Vector{Float64}, Float64))
104
- precompile (f, (Vector{dualT}, Vector{dualT}, SciMLBase. NullParameters, Float64))
105
- precompile (f, (Vector{dualT}, Vector{Float64}, Vector{Float64}, dualT))
106
- precompile (f, (Vector{dualT}, Vector{Float64}, SciMLBase. NullParameters, dualT))
107
-
108
- precompile (f2, (Vector{Float64}, Vector{Float64}, Vector{Float64}, Float64))
109
- precompile (f2, (Vector{Float64}, Vector{Float64}, SciMLBase. NullParameters, Float64))
110
- precompile (f2, (Vector{dualT}, Vector{dualT}, Vector{Float64}, Float64))
111
- precompile (f2, (Vector{dualT}, Vector{dualT}, SciMLBase. NullParameters, Float64))
112
- precompile (f2, (Vector{dualT}, Vector{Float64}, Vector{Float64}, dualT))
113
- precompile (f2, (Vector{dualT}, Vector{Float64}, SciMLBase. NullParameters, dualT))
114
- f2
24
+ Base. Experimental. @opaque (args... )-> f (args... )
115
25
end
116
26
117
27
const NORECOMPILE_ARGUMENT_MESSAGE = """
@@ -132,19 +42,11 @@ function Base.showerror(io::IO, e::NoRecompileArgumentError)
132
42
end
133
43
134
44
function wrapfun_oop (ff, inputs:: Tuple )
135
- IT = Tuple{map (typeof, inputs)... }
136
- if IT ∉ NORECOMPILE_SUPPORTED_ARGS
137
- throw (NoRecompileArgumentError (IT))
138
- end
139
- FunctionWrappersWrappers. FunctionWrappersWrapper (void (ff), arglists, oop_returnlists)
45
+ void (ff)
140
46
end
141
47
142
48
function wrapfun_iip (ff, inputs:: Tuple )
143
- IT = Tuple{map (typeof, inputs)... }
144
- if IT ∉ NORECOMPILE_SUPPORTED_ARGS
145
- throw (NoRecompileArgumentError (IT))
146
- end
147
- FunctionWrappersWrappers. FunctionWrappersWrapper (void (ff), arglists, iip_returnlists)
49
+ void (ff)
148
50
end
149
51
150
52
function unwrap_fw (fw:: FunctionWrapper )
0 commit comments