lines 8-105 of file: include/cppad/speed/det_by_minor.hpp {xrst_begin det_by_minor} Determinant Using Expansion by Minors ##################################### Syntax ****** | ``# include `` | ``det_by_minor`` < *Scalar* > *det* ( *n* ) | *d* = *det* ( *a* ) Inclusion ********* The template class ``det_by_minor`` is defined in the ``CppAD`` namespace by including the file ``cppad/speed/det_by_minor.hpp`` . Constructor *********** The syntax ``det_by_minor`` < *Scalar* > *det* ( *n* ) constructs the object *det* which can be used for evaluating the determinant of *n* by *n* matrices using expansion by minors. Scalar ****** The type *Scalar* must satisfy the same conditions as in the function :ref:`det_of_minor` . n * The argument *n* has prototype ``size_t`` *n* det *** The syntax *d* = *det* ( *a* ) returns the determinant of the matrix *A* using expansion by minors. a = The argument *a* has prototype ``const`` *Vector* & *a* It must be a *Vector* with length :math:`n * n` and with elements of type *Scalar* . The elements of the :math:`n \times n` matrix :math:`A` are defined, for :math:`i = 0 , \ldots , n-1` and :math:`j = 0 , \ldots , n-1`, by .. math:: A_{i,j} = a[ i * m + j] d = The return value *d* has prototype *Scalar* *d* It is equal to the determinant of :math:`A`. Vector ****** If *y* is a *Vector* object, it must support the syntax *y* [ *i* ] where *i* has type ``size_t`` with value less than :math:`n * n`. This must return a *Scalar* value corresponding to the *i*-th element of the vector *y* . This is the only requirement of the type *Vector* . {xrst_toc_hidden speed/example/det_by_minor.cpp xrst/det_by_minor_hpp.xrst } Example ******* The file :ref:`det_by_minor.cpp-name` contains an example and test of ``det_by_minor.hpp`` . Source Code *********** The file :ref:`det_by_minor.hpp-name` contains the source for this template function. {xrst_end det_by_minor}