Note: a1w denotes that first order adjoints are computed in working precision; this has the corresponding argument type
nagad_a1w_w_rtype.
Also available is the
t1w (first order tangent linear) mode, the interface of which is implied by replacing
a1w by
t1w throughout this document.
Additionally, the
p0w (passive interface, as alternative to the FL interface) mode is available and can be inferred by replacing of active types by the corresponding passive types.
The method of codifying AD implementations in the routine name and corresponding argument types is described in the
NAG AD Library Introduction.
f07ca_a1w_f
is the adjoint version of the primal routine
f07caf (dgtsv).
Depending on the value of
ad_handle,
f07ca_a1w_f uses algorithmic differentiation or symbolic adjoints to compute adjoints of the primal.
f07ca_a1w_f
is the adjoint version of the primal routine
f07caf (dgtsv).
f07caf (dgtsv) computes the solution to a real system of linear equations
where
$A$ is an
$n\times n$ tridiagonal matrix and
$X$ and
$B$ are
$n\times r$ matrices.
For further information see
Section 3 in the documentation for
f07caf (dgtsv).
f07ca_a1w_f can provide symbolic adjoints by setting the symbolic mode as described in
Section 3.2.2 in the
X10 Chapter introduction. Please see
Section 4 in the Introduction to the NAG AD Library for API description on how to use symbolic adjoints.
The symbolic adjoint uses the
$LU$ decomposition computed by the primal routine to obtain the adjoint of the right-hand side
$B$ by solving
where
${B}_{i,\left(1\right)}$ and
${X}_{i,\left(1\right)}$ denote the
$i$th column of the matrices
${B}_{\left(1\right)}$ and
${X}_{\left(1\right)}$ respectively. The adjoint of the matrix
$A$ is then computed according to
where
${B}_{i,\left(1\right)}$ and
${X}_{i}$ denote the
$i$th column of the matrices
${B}_{\left(1\right)}$ and
$X$ respectively.
You can set or access the adjoints of output argument
b. The adjoints of all other output arguments are ignored.
f07ca_a1w_f increments the adjoints of input arguments
b,
d,
du and
dl according to the first order adjoint model.
Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J J, Du Croz J J, Greenbaum A, Hammarling S, McKenney A and Sorensen D (1999)
LAPACK Users' Guide (3rd Edition) SIAM, Philadelphia
https://www.netlib.org/lapack/lug
Du Toit J, Naumann U (2017) Adjoint Algorithmic Differentiation Tool Support for Typical Numerical Patterns in Computational Finance
A brief summary of the AD specific arguments is given below. For the remainder, links are provided to the corresponding argument from the primal routine.
A tooltip popup for all arguments can be found by hovering over the argument name in
Section 2 and in this section.
f07ca_a1w_f uses the standard NAG
ifail mechanism. Any errors indicated via
info values returned by
f07caf may be indicated with the same value returned by
ifail. In addition, this routine may return:
- ${\mathbf{ifail}}=-89$
An unexpected AD error has been triggered by this routine. Please
contact
NAG.
See
Section 4.8.2 in the NAG AD Library Introduction for further information.
- ${\mathbf{ifail}}=-899$
Dynamic memory allocation failed for AD.
See
Section 4.8.1 in the NAG AD Library Introduction for further information.
Not applicable.
None.
The following examples are variants of the example for
f07caf (dgtsv),
modified to demonstrate calling the NAG AD Library.