@@ -15,17 +15,6 @@ import Base: hypot, max, min
1515@inline cbrt (t:: TaylorScalar ) = ^ (t, 1 / 3 )
1616@inline inv (t:: TaylorScalar ) = one (t) / t
1717
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-
2918for func in (:exp , :expm1 , :exp2 , :exp10 )
3019 @eval @generated function $func (t:: TaylorScalar{T, N} ) where {T, N}
3120 ex = quote
@@ -36,7 +25,7 @@ for func in (:exp, :expm1, :exp2, :exp10)
3625 ex = quote
3726 $ ex
3827 $ (Symbol (' v' , i)) = + ($ ([:($ (binomial (i - 2 , j - 1 )) * $ (Symbol (' v' , j)) *
39- v[$ i + 1 - $ j ])
28+ v[$ ( i + 1 - j) ])
4029 for j in 1 : (i - 1 )]. .. ))
4130 end
4231 if $ (QuoteNode (func)) == :exp2
@@ -64,11 +53,11 @@ for func in (:sin, :cos)
6453 ex = :($ ex;
6554 $ (Symbol (' s' , i)) = + ($ ([:($ (binomial (i - 2 , j - 1 )) *
6655 $ (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 )]. .. )))
6857 ex = :($ ex;
6958 $ (Symbol (' c' , i)) = + ($ ([:($ (- binomial (i - 2 , j - 1 )) *
7059 $ (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 )]. .. )))
7261 end
7362 if $ (QuoteNode (func)) == :sin
7463 ex = :($ ex; TaylorScalar ($ ([Symbol (' s' , i) for i in 1 : N]. .. )))
111100 $ ex
112101 $ (Symbol (' v' , i)) = (va[$ i] -
113102 + ($ ([:($ (binomial (i - 1 , j - 1 )) * $ (Symbol (' v' , j)) *
114- vb[$ i + 1 - $ j ])
103+ vb[$ ( i + 1 - j) ])
115104 for j in 1 : (i - 1 )]. .. ))) / vb[1 ]
116105 end
117106 end
129118 $ ex
130119 $ (Symbol (' v' , i)) = + ($ ([:((n * $ (binomial (i - 2 , j - 1 )) -
131120 $ (binomial (i - 2 , j - 2 ))) * $ (Symbol (' v' , j)) *
132- v[$ i + 1 - $ j ])
121+ v[$ ( i + 1 - j) ])
133122 for j in 1 : (i - 1 )]. .. )) / v[1 ]
134123 end
135124 end
148137 $ ex
149138 $ (Symbol (' v' , i)) = + ($ ([:((n * $ (binomial (i - 2 , j - 1 )) -
150139 $ (binomial (i - 2 , j - 2 ))) * $ (Symbol (' v' , j)) *
151- v[$ i + 1 - $ j ])
140+ v[$ ( i + 1 - j) ])
152141 for j in 1 : (i - 1 )]. .. )) / v[1 ]
153142 end
154143 end
@@ -179,9 +168,9 @@ raise(::T, df::S, t::TaylorScalar{T, N}) where {S <: Real, T <: Number, N} = df
179168 for i in 2 : M
180169 ex = quote
181170 $ ex
182- $ (Symbol (' v' , i)) = (vt[$ i + 1 ] -
171+ $ (Symbol (' v' , i)) = (vt[$ ( i + 1 ) ] -
183172 + ($ ([:($ (binomial (i - 1 , j - 1 )) * $ (Symbol (' v' , j)) *
184- vdf[$ i + 1 - $ j ])
173+ vdf[$ ( i + 1 - j) ])
185174 for j in 1 : (i - 1 )]. .. ))) / vdf[1 ]
186175 end
187176 end
0 commit comments