<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1" bgcolor="#FFFFFF">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;"><font size="2"><span style="font-size:10pt;">Hi Dave,<br>
<br>
Sorry for re-posting my comments - forgot to cc to developer list.<br>
<br>
Comments to test case:<br>
1. cppad version: Avoid creating a tape with numerical overflows by inserting valid parameters for the tape creation. Or easier: remove the line "det = Scalar( signdet ) * exp( logdet );" to get rid of the overflows (NaNs in the gradient).<br>
2. The cppad version runs out of memory because this example tape on the order of n^3 floating point operations. The admb version avoids this by using adjoint code I believe. Similar tricks would have to be applied to cppad in order to make this example run
for large n (you can hand code your own derivatives using cppad's concept of 'user atomic functions').<br>
3. It would be interesting to compare just the sweep performance for the two tools, that is just the lines "dw=f.Reverse(1,w);" and "gradcalc(n*n,g);".<br>
<br>
Comment to this:<br>
"</span></font><font size="2"><span style="font-size:10pt;">I'm more worried<br>
about how it seems to choke on a matrix a bit bigger than 300x300. Question is whether this is just<br>
due to my naive implementation."<br>
Yes - see point 2. You can reduce the tape size with "user atomic functions".<br>
<br>
Kasper</span></font><br>
<br>
<br>
</div>
</body>
</html>