lines 21-82 of file: speed/src/link_det_lu.cpp

{xrst_begin link_det_lu}

Speed Testing Gradient of Determinant Using Lu Factorization
############################################################

Prototype
*********
{xrst_literal
   // BEGIN PROTOTYPE
   // END PROTOTYPE
}

Purpose
*******
Each :ref:`speed_main@package`
must define a version of this routine as specified below.
This is used by the :ref:`speed_main-name` program
to run the corresponding speed and correctness tests.

Method
******
The same template routine :ref:`det_by_lu-name` 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).

{xrst_end link_det_lu}
