\(\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_minor
Speed Testing Gradient of Determinant by Minor Expansion
Prototype
extern bool link_det_minor(
const std::string& job ,
size_t size ,
size_t repeat ,
CppAD::vector<double>& matrix ,
CppAD::vector<double>& gradient
);
Method
The same template class det_by_minor is used by the different AD packages.
job
See the standard link specifications for job .
size
See the standard link specifications for size In addition, size is the number of rows and columns in matrix .
repeat
See the standard link specifications for repeat .
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).