Skip to content

Commit 5b05b9b

Browse files
committed
Import ForwardDiff dual ordering operator.
1 parent 58f632e commit 5b05b9b

2 files changed

Lines changed: 32 additions & 32 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "RecursiveTupleMath"
22
uuid = "4a4311fe-81ff-4bcc-86a3-5026a4bf5b9f"
33
authors = ["chriselrod <elrodc@gmail.com> and contributors"]
4-
version = "0.1.0"
4+
version = "0.1.1"
55

66
[deps]
77
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"

src/RecursiveTupleMath.jl

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,16 @@ Note that because it is recursive, `bmul(a, b)` will not necessarilly do the sam
1313
"""
1414
module RecursiveTupleMath
1515

16-
using Base: @_inline_meta
16+
const var"@_inline" = @static if VERSION >= v"1.8"
17+
var"@inline"
18+
else
19+
using Base: @_inline_meta
20+
var"@_inline_meta"
21+
end
1722
export bmax, bmin, badd, bsub, bmul, bdiv
1823

1924
using StaticArrays, ForwardDiff
25+
using ForwardDiff: , @define_binary_dual_op, Dual
2026

2127
@inline lt_fast(a, b) = a < b
2228
@inline lt_fast(a::Float64, b::Float64) = Base.lt_float_fast(a, b)
@@ -83,65 +89,59 @@ end
8389

8490
# @inline
8591

86-
ForwardDiff.@define_binary_dual_op(
92+
@define_binary_dual_op(
8793
RecursiveTupleMath.badd,
8894
begin
8995
Base.@_inline_meta
90-
ForwardDiff.Dual{Txy}(
91-
badd(x.value, y.value),
92-
badd(x.partials.values, y.partials.values),
93-
)
96+
Dual{Txy}(badd(x.value, y.value), badd(x.partials.values, y.partials.values))
9497
end,
9598
begin
9699
Base.@_inline_meta
97-
ForwardDiff.Dual{Tx}(badd(x.value, y), x.partials)
100+
Dual{Tx}(badd(x.value, y), x.partials)
98101
end,
99102
begin
100103
Base.@_inline_meta
101-
ForwardDiff.Dual{Ty}(badd(x, y.value), y.partials.values)
104+
Dual{Ty}(badd(x, y.value), y.partials.values)
102105
end,
103106
)
104-
ForwardDiff.@define_binary_dual_op(
107+
@define_binary_dual_op(
105108
RecursiveTupleMath.bsub,
106109
begin
107110
Base.@_inline_meta
108-
ForwardDiff.Dual{Txy}(
109-
bsub(x.value, y.value),
110-
bsub(x.partials.values, y.partials.values),
111-
)
111+
Dual{Txy}(bsub(x.value, y.value), bsub(x.partials.values, y.partials.values))
112112
end,
113113
begin
114114
Base.@_inline_meta
115-
ForwardDiff.Dual{Tx}(bsub(x.value, y), x.partials)
115+
Dual{Tx}(bsub(x.value, y), x.partials)
116116
end,
117117
begin
118118
Base.@_inline_meta
119-
ForwardDiff.Dual{Ty}(bsub(x, y.value), bsub(y.partials.values))
119+
Dual{Ty}(bsub(x, y.value), bsub(y.partials.values))
120120
end
121121
)
122-
ForwardDiff.@define_binary_dual_op(
122+
@define_binary_dual_op(
123123
RecursiveTupleMath.bmul,
124124
begin
125125
Base.@_inline_meta
126-
ForwardDiff.Dual{Txy}(
126+
Dual{Txy}(
127127
bmul(x.value, y.value),
128128
badd(bmul(x.value, y.partials.values), bmul(x.partials.values, y.value)),
129129
)
130130
end,
131131
begin
132132
Base.@_inline_meta
133-
ForwardDiff.Dual{Tx}(bmul(x.value, y), bmul(x.partials.values, y))
133+
Dual{Tx}(bmul(x.value, y), bmul(x.partials.values, y))
134134
end,
135135
begin
136136
Base.@_inline_meta
137-
ForwardDiff.Dual{Ty}(bmul(x, y.value), bmul(x, y.partials.values))
137+
Dual{Ty}(bmul(x, y.value), bmul(x, y.partials.values))
138138
end
139139
)
140-
ForwardDiff.@define_binary_dual_op(
140+
@define_binary_dual_op(
141141
RecursiveTupleMath.bdiv,
142142
begin
143143
Base.@_inline_meta
144-
ForwardDiff.Dual{Txy}(
144+
Dual{Txy}(
145145
bdiv(x.value, y.value),
146146
bdiv(
147147
bsub(bmul(x.partials.values, y.value), bmul(x.value, y.partials.values)),
@@ -151,25 +151,25 @@ ForwardDiff.@define_binary_dual_op(
151151
end,
152152
begin
153153
Base.@_inline_meta
154-
ForwardDiff.Dual{Tx}(bdiv(x.value, y), bdiv(bmul(x.partials.values, y), bmul(y, y)))
154+
Dual{Tx}(bdiv(x.value, y), bdiv(bmul(x.partials.values, y), bmul(y, y)))
155155
end,
156156
begin
157157
Base.@_inline_meta
158-
ForwardDiff.Dual{Ty}(
158+
Dual{Ty}(
159159
bdiv(x, y.value),
160160
bdiv(bsub(bmul(x, y.partials.values)), bmul(y.value, y.value)),
161161
)
162162
end,
163163
)
164-
ForwardDiff.@define_binary_dual_op(
164+
@define_binary_dual_op(
165165
RecursiveTupleMath.bmax,
166166
begin
167167
Base.@_inline_meta
168168
cmp = gt_fast(x.value, y.value)
169169
v = ifelse(cmp, x.value, y.value)
170170
bcmp = btuple(cmp, Val(length(x.partials)))
171171
p = map(ifelse, bcmp, x.partials.values, y.partials.values)
172-
ForwardDiff.Dual{Txy}(v, p)
172+
Dual{Txy}(v, p)
173173
end,
174174
begin
175175
Base.@_inline_meta
@@ -178,7 +178,7 @@ ForwardDiff.@define_binary_dual_op(
178178
bcmp = btuple(cmp, Val(length(x.partials)))
179179
bnil = map(zero, x.partials.values)
180180
p = map(ifelse, bcmp, x.partials.values, bnil)
181-
ForwardDiff.Dual{Tx}(v, p)
181+
Dual{Tx}(v, p)
182182
end,
183183
begin
184184
Base.@_inline_meta
@@ -187,18 +187,18 @@ ForwardDiff.@define_binary_dual_op(
187187
bcmp = btuple(cmp, Val(length(y.partials)))
188188
bnil = map(zero, y.partials.values)
189189
p = map(ifelse, bcmp, bnil, y.partials.values)
190-
ForwardDiff.Dual{Ty}(v, p)
190+
Dual{Ty}(v, p)
191191
end,
192192
)
193-
ForwardDiff.@define_binary_dual_op(
193+
@define_binary_dual_op(
194194
RecursiveTupleMath.bmin,
195195
begin
196196
Base.@_inline_meta
197197
cmp = lt_fast(x.value, y.value)
198198
v = ifelse(cmp, x.value, y.value)
199199
bcmp = btuple(cmp, Val(length(x.partials)))
200200
p = map(ifelse, bcmp, x.partials.values, y.partials.values)
201-
ForwardDiff.Dual{Txy}(v, p)
201+
Dual{Txy}(v, p)
202202
end,
203203
begin
204204
Base.@_inline_meta
@@ -207,7 +207,7 @@ ForwardDiff.@define_binary_dual_op(
207207
bcmp = btuple(cmp, Val(length(x.partials)))
208208
bnil = map(zero, x.partials.values)
209209
p = map(ifelse, bcmp, x.partials.values, bnil)
210-
ForwardDiff.Dual{Tx}(v, p)
210+
Dual{Tx}(v, p)
211211
end,
212212
begin
213213
Base.@_inline_meta
@@ -216,7 +216,7 @@ ForwardDiff.@define_binary_dual_op(
216216
bcmp = btuple(cmp, Val(length(y.partials)))
217217
bnil = map(zero, y.partials.values)
218218
p = map(ifelse, bcmp, bnil, y.partials.values)
219-
ForwardDiff.Dual{Ty}(v, p)
219+
Dual{Ty}(v, p)
220220
end,
221221
)
222222

0 commit comments

Comments
 (0)