Codebase list cppad / upstream/2015.00.00.7 doc / link_det_lu.xml
upstream/2015.00.00.7

Tree @upstream/2015.00.00.7 (Download .tar.gz)

link_det_lu.xml @upstream/2015.00.00.7raw · history · blame

<?xml version='1.0'?>
<html xmlns='http://www.w3.org/1999/xhtml'
      xmlns:math='http://www.w3.org/1998/Math/MathML'
>
<head>
<title>Speed Testing Gradient of Determinant Using Lu Factorization</title>
<meta http-equiv='Content-Type' content='text/html' charset='utf-8'/>
<meta name="description" id="description" content="Speed Testing Gradient of Determinant Using Lu Factorization"/>
<meta name="keywords" id="keywords" content=" link_det_lu det_lu speed test testing gradient of determinant using lu factorization prototype purpose method return value size repeat matrix double "/>
<style type='text/css'>
body { color : black }
body { background-color : white }
A:link { color : blue }
A:visited { color : purple }
A:active { color : purple }
</style>
<script type='text/javascript' language='JavaScript' src='_link_det_lu_xml.js'>
</script>
</head>
<body>
<table><tr>
<td>
<a href="http://www.coin-or.org/CppAD/" target="_top"><img border="0" src="_image.gif"/></a>
</td>
<td><a href="speed_main.xml" target="_top">Prev</a>
</td><td><a href="link_det_minor.xml" target="_top">Next</a>
</td><td>
<select onchange='choose_across0(this)'>
<option>Index-&gt;</option>
<option>contents</option>
<option>reference</option>
<option>index</option>
<option>search</option>
<option>external</option>
</select>
</td>
<td>
<select onchange='choose_up0(this)'>
<option>Up-&gt;</option>
<option>CppAD</option>
<option>speed</option>
<option>speed_main</option>
<option>link_det_lu</option>
</select>
</td>
<td>
<select onchange='choose_down3(this)'>
<option>CppAD-&gt;</option>
<option>Install</option>
<option>Introduction</option>
<option>AD</option>
<option>ADFun</option>
<option>preprocessor</option>
<option>multi_thread</option>
<option>library</option>
<option>ipopt_solve</option>
<option>Example</option>
<option>speed</option>
<option>Appendix</option>
</select>
</td>
<td>
<select onchange='choose_down2(this)'>
<option>speed-&gt;</option>
<option>speed_main</option>
<option>speed_utility</option>
<option>speed_double</option>
<option>speed_adolc</option>
<option>speed_cppad</option>
<option>speed_fadbad</option>
<option>speed_sacado</option>
</select>
</td>
<td>
<select onchange='choose_down1(this)'>
<option>speed_main-&gt;</option>
<option>link_det_lu</option>
<option>link_det_minor</option>
<option>link_mat_mul</option>
<option>link_ode</option>
<option>link_poly</option>
<option>link_sparse_hessian</option>
<option>link_sparse_jacobian</option>
<option>microsoft_timer</option>
</select>
</td>
<td>link_det_lu</td>
<td>
<select onchange='choose_current0(this)'>
<option>Headings-&gt;</option>
<option>Prototype</option>
<option>Purpose</option>
<option>Method</option>
<option>Return Value</option>
<option>size</option>
<option>repeat</option>
<option>matrix</option>
<option>gradient</option>
<option>---..double</option>
</select>
</td>
</tr></table><br/>
<center><b><big><big>Speed Testing Gradient of Determinant Using Lu Factorization</big></big></b></center>
<br/>
<b><big><a name="Prototype" id="Prototype">Prototype</a></big></b>

<br/>

<code><font color="blue"><span style='white-space: nowrap'>extern&#xA0;bool&#xA0;link_det_lu(<br/>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;size_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;</span></font><i><font color="black"><span style='white-space: nowrap'>size</span></font></i><font color="blue"><span style='white-space: nowrap'>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;,&#xA0;<br/>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;size_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;</span></font><i><font color="black"><span style='white-space: nowrap'>repeat</span></font></i><font color="blue"><span style='white-space: nowrap'>&#xA0;&#xA0;&#xA0;&#xA0;,&#xA0;<br/>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;CppAD::vector&lt;double&gt;&#xA0;&amp;</span></font><i><font color="black"><span style='white-space: nowrap'>matrix</span></font></i><font color="blue"><span style='white-space: nowrap'>&#xA0;&#xA0;&#xA0;&#xA0;,<br/>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;CppAD::vector&lt;double&gt;&#xA0;&amp;</span></font><i><font color="black"><span style='white-space: nowrap'>gradient</span></font></i><font color="blue"><span style='white-space: nowrap'>&#xA0;<br/>
);<br/>
</span></font></code>
<br/>
<b><big><a name="Purpose" id="Purpose">Purpose</a></big></b>
<br/>
Each <a href="speed_main.xml#package" target="_top"><span style='white-space: nowrap'>package</span></a>

must define a version of this routine as specified below.
This is used by the <a href="speed_main.xml" target="_top"><span style='white-space: nowrap'>speed_main</span></a>
 program 
to run the corresponding speed and correctness tests.

<br/>
<br/>
<b><big><a name="Method" id="Method">Method</a></big></b>
<br/>
The same template routine <a href="det_by_lu.xml" target="_top"><span style='white-space: nowrap'>det_by_lu</span></a>
 is used 
by the different AD packages. 

<br/>
<br/>
<b><big><a name="Return Value" id="Return Value">Return Value</a></big></b>
<br/>
If this speed test is not yet
supported by a particular 
<code><i><font color="black"><span style='white-space: nowrap'>package</span></font></i></code>
,
the corresponding return value for <code><font color="blue">link_det_lu</font></code> 
should be <code><font color="blue">false</font></code>.

<br/>
<br/>
<b><big><a name="size" id="size">size</a></big></b>
<br/>
The argument 
<code><i><font color="black"><span style='white-space: nowrap'>size</span></font></i></code>

is the number of rows and columns in the matrix.

<br/>
<br/>
<b><big><a name="repeat" id="repeat">repeat</a></big></b>
<br/>
The argument 
<code><i><font color="black"><span style='white-space: nowrap'>repeat</span></font></i></code>
 is the number of different matrices
that the gradient (or determinant) is computed for.

<br/>
<br/>
<b><big><a name="matrix" id="matrix">matrix</a></big></b>
<br/>
The argument 
<code><i><font color="black"><span style='white-space: nowrap'>matrix</span></font></i></code>
 is a vector with 
<code><i><font color="black"><span style='white-space: nowrap'>size</span></font></i><font color="blue"><span style='white-space: nowrap'>*</span></font><i><font color="black"><span style='white-space: nowrap'>size</span></font></i></code>
 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.

<br/>
<br/>
<b><big><a name="gradient" id="gradient">gradient</a></big></b>
<br/>
The argument 
<code><i><font color="black"><span style='white-space: nowrap'>gradient</span></font></i></code>
 is a vector with 
<code><i><font color="black"><span style='white-space: nowrap'>size</span></font></i><font color="blue"><span style='white-space: nowrap'>*</span></font><i><font color="black"><span style='white-space: nowrap'>size</span></font></i></code>
 elements.
The input value of its elements does not matter. 
The output value of its elements is the gradient of the
determinant of 
<code><i><font color="black"><span style='white-space: nowrap'>matrix</span></font></i></code>
 with respect to its elements.

<br/>
<br/>
<b><a name="gradient.double" id="gradient.double">double</a></b>
<br/>
In the case where 
<code><i><font color="black"><span style='white-space: nowrap'>package</span></font></i></code>
 is <code><font color="blue">double</font></code>, 
only the first element of 
<code><i><font color="black"><span style='white-space: nowrap'>gradient</span></font></i></code>
 is used and it is actually 
the determinant value (the gradient value is not computed).


<hr/>Input File: speed/src/link_det_lu.cpp

</body>
</html>