Hi Kshitij,<div><br></div><div>Thank you very much for your prompt reply.</div><div>I thought the &quot;jacobian&quot; and &quot;sparse_jac&quot; drivers, which are the ones I use, worked in forward mode. Anyhow, I would like to try the tapeless mode.</div>
<div>After transforming the &quot;condassign&quot; calls into regular conditional statements, the new errors are related to the &quot;&lt;&lt;=&quot; and &quot;&gt;&gt;=&quot; operators. Can&#39;t they be used in the tapeless mode?</div>
<div><br></div><div>Regards,</div><div>Alfonso</div><div><br><div class="gmail_quote">

2010/9/17 Kshitij Kulshreshtha <span dir="ltr">&lt;<a href="mailto:kshitij@math.upb.de" target="_blank">kshitij@math.upb.de</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div></div><div>As on 2010-09-17 16:29, Alfonso Callejo Goena did write:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; I have already implemented ADOL-C in a multibody simulation program, and<br>
&gt; now I&#39;m trying to test the tapeless mode to see if it improves the<br>
&gt; program efficiency.<br>
&gt; The thing is that the &quot;condassign&quot; functions, which solve the problem of<br>
&gt; having conditional statements in the code, seem to work only with the<br>
&gt; tape mode. In fact, if one looks into adouble.h, the &quot;condassign&quot;<br>
&gt; functions aren&#39;t declared if the tapeless macro ADOLC_TAPELESS is<br>
&gt; set. By the way, the compiler throws a &quot;condassign: identifier not<br>
&gt; found&quot; error.<br>
&gt; Am I overlooking something?<br>
&gt;<br>
<br>
</div></div>Hello Alfonso,<br>
<br>
the tapeless mode is forward only, so if your code needs reverse mode it<br>
is not recommended to use tapeless. In forward mode tapeless will bring<br>
some gain only if the tape is too large and must be written to disk. You<br>
may try tweaking the buffer sizes in ADOL-C/src/usrparms.h file before<br>
compiling ADOL-C and see if that brings you some speed. These<br>
buffersizes may be in total as big as the physical memory your system<br>
has free.<br>
<br>
In the tapeless mode you really don&#39;t need any condassign calls at all.<br>
You can simply use the form<br>
<br>
var = cond ? val1 : val2;<br>
<br>
The condassign is used in the taped version internally to write these<br>
condition checks onto the tape since the operator ?: cannot be<br>
overloaded. In tapeless mode this is not required as nothing extra needs<br>
to be done.<br>
<br>
Regards.<br>
--<br>
Kshitij Kulshreshtha<br>
<br>
Institut für Mathematik,<br>
Universität Paderborn,<br>
Warburger Straße 100,<br>
33098 Paderborn.<br>
<br>
Büro: A3.235<br>
<br>
Privatanschrift:<br>
Arnikaweg 62<br>
33100 Paderborn.<br>
<br>
_______________________________________________<br>
ADOL-C mailing list<br>
<a href="mailto:ADOL-C@list.coin-or.org" target="_blank">ADOL-C@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/adol-c" target="_blank">http://list.coin-or.org/mailman/listinfo/adol-c</a></blockquote></div><br></div>