@@ -20,20 +20,26 @@ function _extrapolate_derivative_left(A, t, order)
2020 elseif extrapolation_left == ExtrapolationType. Constant
2121 zero (first (A. u) / one (A. t[1 ]))
2222 elseif extrapolation_left == ExtrapolationType. Linear
23- (order == 1 ) ? derivative (A, first (A. t)) : zero (first (A. u) / one (A. t[1 ]))
23+ (order == 1 ) ? _derivative (A, first (A. t), 1 ) : zero (first (A. u) / one (A. t[1 ]))
2424 elseif extrapolation_left == ExtrapolationType. Extension
25- iguess = A. iguesser
26- (order == 1 ) ? _derivative (A, t, iguess) :
25+ (order == 1 ) ? _derivative (A, t, length (A. t)) :
2726 ForwardDiff. derivative (t -> begin
28- _derivative (A, t, iguess )
27+ _derivative (A, t, length (A . t) )
2928 end , t)
3029 elseif extrapolation_left == ExtrapolationType. Periodic
3130 t_, _ = transformation_periodic (A, t)
32- derivative (A, t_, order)
31+ (order == 1 ) ? _derivative (A, t_, A. iguesser) :
32+ ForwardDiff. derivative (t -> begin
33+ _derivative (A, t, A. iguesser)
34+ end , t_)
3335 else
3436 # extrapolation_left == ExtrapolationType.Reflective
3537 t_, n = transformation_reflective (A, t)
36- isodd (n) ? - derivative (A, t_, order) : derivative (A, t_, order)
38+ sign = isodd (n) ? - 1 : 1
39+ (order == 1 ) ? sign * _derivative (A, t_, A. iguesser) :
40+ ForwardDiff. derivative (t -> begin
41+ sign * _derivative (A, t, A. iguesser)
42+ end , t_)
3743 end
3844end
3945
@@ -44,20 +50,27 @@ function _extrapolate_derivative_right(A, t, order)
4450 elseif extrapolation_right == ExtrapolationType. Constant
4551 zero (first (A. u) / one (A. t[1 ]))
4652 elseif extrapolation_right == ExtrapolationType. Linear
47- (order == 1 ) ? derivative (A, last (A. t)) : zero (first (A. u) / one (A. t[1 ]))
53+ (order == 1 ) ? _derivative (A, last (A. t), length (A. t)) :
54+ zero (first (A. u) / one (A. t[1 ]))
4855 elseif extrapolation_right == ExtrapolationType. Extension
49- iguess = A. iguesser
50- (order == 1 ) ? _derivative (A, t, iguess) :
56+ (order == 1 ) ? _derivative (A, t, length (A. t)) :
5157 ForwardDiff. derivative (t -> begin
52- _derivative (A, t, iguess )
58+ _derivative (A, t, length (A . t) )
5359 end , t)
5460 elseif extrapolation_right == ExtrapolationType. Periodic
5561 t_, _ = transformation_periodic (A, t)
56- derivative (A, t_, order)
62+ (order == 1 ) ? _derivative (A, t_, A. iguesser) :
63+ ForwardDiff. derivative (t -> begin
64+ _derivative (A, t, A. iguesser)
65+ end , t_)
5766 else
5867 # extrapolation_right == ExtrapolationType.Reflective
5968 t_, n = transformation_reflective (A, t)
60- iseven (n) ? - derivative (A, t_, order) : derivative (A, t_, order)
69+ sign = iseven (n) ? - 1 : 1
70+ (order == 1 ) ? sign * _derivative (A, t_, A. iguesser) :
71+ ForwardDiff. derivative (t -> begin
72+ sign * _derivative (A, t, A. iguesser)
73+ end , t_)
6174 end
6275end
6376
0 commit comments