| Prev | Next | ReverseSweep |
void ReverseSweep(
size_t d,
size_t numvar,
const player<Base> *Rec,
size_t J,
const Base *Taylor,
size_t K,
Base *Partial
)
\[
F : B^m \rightarrow B^n
\]
v \in B^n
we define the function
G : B^{m \times d} \rightarrow B
by
\[
G(u) = \frac{1}{d !}
\sum_{i=1}^n v_i \left[
\frac{ \partial^p}{ \partial t^d}
F_i [ u^{(0)} + u^{(1)} t + \cdots + u^{(d)} t^d ]
\right]_{t=0}
\]
Note that the scale factor of
1 / d !
converts
d-th order derivatives to d-th order Taylor coefficients.
The routine ReverseSweep computes all the first order partial
derivatives of
G
with respect to each of the Taylor coefficients
for the independent variables
u^{(j)}
for
j = 0 , \ldots , d
.
Rec->TotNumVar().
d+1
.
d+1
.
i = 1 , \ldots , numvar - 1
and
j <= d
Taylor[i * J + j] contains the
j-th order Taylor coefficients
for the variable corresponding to index i.
i = numvar-n , \ldots , numvar-1
and for
j < d
,
Partial[i * K + j] == 0
Partial[i * K + d] == v[numvar - i]
i = 1, \ldots , numvar-n-1
and
j \leq d
,
Partial[i * K + j] == 0
i = 1, \ldots , m
, and for
j \leq d
,
Partial[i * K + j]
is the partial of
G
with respect to
u_i^{(j)}
.
i = m+1, \ldots , numvar-1
and
j \leq d
,
Partial[i * K + j]
is temporary work space and its
output value is not specified.