@@ -15,17 +15,6 @@ import Base: hypot, max, min
15
15
@inline cbrt (t:: TaylorScalar ) = ^ (t, 1 / 3 )
16
16
@inline inv (t:: TaylorScalar ) = one (t) / t
17
17
18
- exp (t:: TaylorScalar{T, 2} ) where {T} =
19
- let v = value (t), e1 = exp (v[1 ])
20
- TaylorScalar {T, 2} ((e1, e1 * v[2 ]))
21
- end
22
-
23
- function exp (t:: TaylorScalar{T, 3} ) where {T}
24
- let v = value (t), e1 = exp (v[1 ])
25
- TaylorScalar {T, 3} ((e1, e1 * v[2 ], e1 * v[3 ] + e1 * v[2 ] * v[2 ]))
26
- end
27
- end
28
-
29
18
for func in (:exp , :expm1 , :exp2 , :exp10 )
30
19
@eval @generated function $func (t:: TaylorScalar{T, N} ) where {T, N}
31
20
ex = quote
@@ -36,7 +25,7 @@ for func in (:exp, :expm1, :exp2, :exp10)
36
25
ex = quote
37
26
$ ex
38
27
$ (Symbol (' v' , i)) = + ($ ([:($ (binomial (i - 2 , j - 1 )) * $ (Symbol (' v' , j)) *
39
- v[$ i + 1 - $ j ])
28
+ v[$ ( i + 1 - j) ])
40
29
for j in 1 : (i - 1 )]. .. ))
41
30
end
42
31
if $ (QuoteNode (func)) == :exp2
@@ -64,11 +53,11 @@ for func in (:sin, :cos)
64
53
ex = :($ ex;
65
54
$ (Symbol (' s' , i)) = + ($ ([:($ (binomial (i - 2 , j - 1 )) *
66
55
$ (Symbol (' c' , j)) *
67
- v[$ i + 1 - $ j ]) for j in 1 : (i - 1 )]. .. )))
56
+ v[$ ( i + 1 - j) ]) for j in 1 : (i - 1 )]. .. )))
68
57
ex = :($ ex;
69
58
$ (Symbol (' c' , i)) = + ($ ([:($ (- binomial (i - 2 , j - 1 )) *
70
59
$ (Symbol (' s' , j)) *
71
- v[$ i + 1 - $ j ]) for j in 1 : (i - 1 )]. .. )))
60
+ v[$ ( i + 1 - j) ]) for j in 1 : (i - 1 )]. .. )))
72
61
end
73
62
if $ (QuoteNode (func)) == :sin
74
63
ex = :($ ex; TaylorScalar ($ ([Symbol (' s' , i) for i in 1 : N]. .. )))
111
100
$ ex
112
101
$ (Symbol (' v' , i)) = (va[$ i] -
113
102
+ ($ ([:($ (binomial (i - 1 , j - 1 )) * $ (Symbol (' v' , j)) *
114
- vb[$ i + 1 - $ j ])
103
+ vb[$ ( i + 1 - j) ])
115
104
for j in 1 : (i - 1 )]. .. ))) / vb[1 ]
116
105
end
117
106
end
129
118
$ ex
130
119
$ (Symbol (' v' , i)) = + ($ ([:((n * $ (binomial (i - 2 , j - 1 )) -
131
120
$ (binomial (i - 2 , j - 2 ))) * $ (Symbol (' v' , j)) *
132
- v[$ i + 1 - $ j ])
121
+ v[$ ( i + 1 - j) ])
133
122
for j in 1 : (i - 1 )]. .. )) / v[1 ]
134
123
end
135
124
end
148
137
$ ex
149
138
$ (Symbol (' v' , i)) = + ($ ([:((n * $ (binomial (i - 2 , j - 1 )) -
150
139
$ (binomial (i - 2 , j - 2 ))) * $ (Symbol (' v' , j)) *
151
- v[$ i + 1 - $ j ])
140
+ v[$ ( i + 1 - j) ])
152
141
for j in 1 : (i - 1 )]. .. )) / v[1 ]
153
142
end
154
143
end
@@ -179,9 +168,9 @@ raise(::T, df::S, t::TaylorScalar{T, N}) where {S <: Real, T <: Number, N} = df
179
168
for i in 2 : M
180
169
ex = quote
181
170
$ ex
182
- $ (Symbol (' v' , i)) = (vt[$ i + 1 ] -
171
+ $ (Symbol (' v' , i)) = (vt[$ ( i + 1 ) ] -
183
172
+ ($ ([:($ (binomial (i - 1 , j - 1 )) * $ (Symbol (' v' , j)) *
184
- vdf[$ i + 1 - $ j ])
173
+ vdf[$ ( i + 1 - j) ])
185
174
for j in 1 : (i - 1 )]. .. ))) / vdf[1 ]
186
175
end
187
176
end
0 commit comments