Prev | Next |
s = f.RevSparseJac(q, r)
s = f.RevSparseJac(q, r, transpose, dependency)
f
.
For a fixed matrix @(@
R \in \B{R}^{q \times m}
@)@,
the Jacobian of @(@
R * F( x )
@)@
with respect to @(@
x
@)@ is
@[@
S(x) = R * F^{(1)} ( x )
@]@
Given a
sparsity pattern
for @(@
R
@)@,
RevSparseJac
returns a sparsity pattern for the @(@
S(x)
@)@.
f
has prototype
ADFun<Base> f
f
is
independent
of
the independent variables in @(@
x \in \B{R}^n
@)@,
the sparsity pattern is valid for all values of
(even if it has CondExp
or VecAD
operations).
q
has prototype
size_t q
It specifies the number of rows in
@(@
R \in \B{R}^{q \times m}
@)@ and the
Jacobian @(@
S(x) \in \B{R}^{q \times n}
@)@.
transpose
has prototype
bool transpose
The default value false
is used when
transpose
is not present.
dependency
has prototype
bool dependency
If
dependency
is true,
the dependency pattern
(instead of sparsity pattern) is computed.
s
has prototype
const SetVector& r
see SetVector
below.
r
has elements of type bool
,
its size is @(@
q * m
@)@.
If it has elements of type std::set<size_t>
,
its size is
q
and all its set elements are between
zero and @(@
m - 1
@)@.
It specifies a
sparsity pattern
for the matrix @(@
R \in \B{R}^{q \times m}
@)@.
r
has elements of type bool
,
its size is @(@
m * q
@)@.
If it has elements of type std::set<size_t>
,
its size is
m
and all its set elements are between
zero and @(@
q - 1
@)@.
It specifies a
sparsity pattern
for the matrix @(@
R^\R{T} \in \B{R}^{m \times q}
@)@.
s
has prototype
SetVector s
see SetVector
below.
bool
,
its size is @(@
q * n
@)@.
If it has elements of type std::set<size_t>
,
its size is
q
and all its set elements are between
zero and @(@
n - 1
@)@.
It specifies a
sparsity pattern
for the matrix @(@
S(x) \in {q \times n}
@)@.
bool
,
its size is @(@
n * q
@)@.
If it has elements of type std::set<size_t>
,
its size is
n
and all its set elements are between
zero and @(@
q - 1
@)@.
It specifies a
sparsity pattern
for the matrix @(@
S(x)^\R{T} \in {n \times q}
@)@.
SetVector
must be a SimpleVector
class with
elements of type
bool
or std::set<size_t>
;
see sparsity pattern
for a discussion
of the difference.
s
is a
sparsity pattern for the Jacobian @(@
S(x) = F^{(1)} ( x )
@)@.