\(\newcommand{\W}[1]{ \; #1 \; }\) \(\newcommand{\R}[1]{ {\rm #1} }\) \(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} }\) \(\newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} }\) \(\newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} }\) \(\newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }\)
link_det_lu¶
View page sourceSpeed Testing Gradient of Determinant Using Lu Factorization¶
Prototype¶
extern bool link_det_lu(
size_t size ,
size_t repeat ,
CppAD::vector<double>& matrix ,
CppAD::vector<double>& gradient
);
Purpose¶
Each package must define a version of this routine as specified below. This is used by the speed_main program to run the corresponding speed and correctness tests.
Method¶
The same template routine det_by_lu is used by the different AD packages.
Return Value¶
If this speed test is not yet
supported by a particular package ,
the corresponding return value for link_det_lu
should be false
.
size¶
The argument size is the number of rows and columns in the matrix.
repeat¶
The argument repeat is the number of different matrices that the gradient (or determinant) is computed for.
matrix¶
The argument matrix is a vector with size * size elements. The input value of its elements does not matter. The output value of its elements is the last matrix that the gradient (or determinant) is computed for.
gradient¶
The argument gradient is a vector with size * size elements. The input value of its elements does not matter. The output value of its elements is the gradient of the determinant of matrix with respect to its elements.
double¶
In the case where package is double
,
only the first element of gradient is used and it is actually
the determinant value (the gradient value is not computed).