<?xml version='1.0'?> <?xml-stylesheet type='text/xsl' href='pmathml.xsl'?> <html xmlns='http://www.w3.org/1999/xhtml'> <head> <title>Changes and Additions to CppAD During 2009</title> <meta name="description" id="description" content="Changes and Additions to CppAD During 2009"/> <meta name="keywords" id="keywords" content=" "/> <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='_whats_new_09_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="whats_new.xml" target="_top">Prev</a> </td><td><a href="whats_new_08.xml" target="_top">Next</a> </td><td> <select onchange='choose_across0(this)'> <option>Index-></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-></option> <option>CppAD</option> <option>Appendix</option> <option>whats_new</option> <option>whats_new_09</option> </select> </td> <td> <select onchange='choose_down3(this)'> <option>CppAD-></option> <option>Install</option> <option>Introduction</option> <option>AD</option> <option>ADFun</option> <option>library</option> <option>Example</option> <option>configure</option> <option>Appendix</option> </select> </td> <td> <select onchange='choose_down2(this)'> <option>Appendix-></option> <option>Faq</option> <option>speed</option> <option>Theory</option> <option>glossary</option> <option>Bib</option> <option>Bugs</option> <option>WishList</option> <option>whats_new</option> <option>include_deprecated</option> <option>License</option> </select> </td> <td> <select onchange='choose_down1(this)'> <option>whats_new-></option> <option>whats_new_09</option> <option>whats_new_08</option> <option>whats_new_07</option> <option>whats_new_06</option> <option>whats_new_05</option> <option>whats_new_04</option> <option>whats_new_03</option> </select> </td> <td>whats_new_09</td> <td> <select onchange='choose_current0(this)'> <option>Headings-></option> <option>Introduction</option> <option>12-23</option> <option>12-22</option> <option>12-18</option> <option>12-12</option> <option>12-04</option> <option>12-02</option> <option>11-28</option> <option>11-27</option> <option>11-26</option> <option>10-30</option> <option>10-29</option> <option>10-28</option> <option>10-27</option> <option>10-24</option> <option>10-23</option> <option>10-21</option> <option>10-16</option> <option>10-14</option> <option>10-03</option> <option>09-30</option> <option>09-29</option> <option>09-28</option> <option>09-26</option> <option>09-20</option> <option>09-19</option> <option>09-18</option> <option>08-25</option> <option>08-14</option> <option>08_13</option> <option>08_13.08-13</option> <option>08_13.08-11</option> <option>08_13.08-10</option> <option>08_13.08-09</option> <option>08-06</option> <option>08-02</option> <option>08-01</option> <option>07-31</option> <option>07-26</option> <option>07-25</option> <option>07-24</option> <option>07-23</option> <option>07-23.07-06</option> <option>07-04</option> <option>07-04.07-04</option> <option>07-04.07-03</option> <option>07-04.07-02</option> <option>07-04.07-01</option> <option>07-04.06-30</option> <option>07-04.06-29</option> <option>07-04.06-28</option> <option>06-25</option> <option>06-22</option> <option>06-21</option> <option>06-20</option> <option>06-06</option> <option>05-20</option> <option>03-24</option> <option>02-20</option> <option>02-15</option> <option>02-01</option> <option>01-31</option> <option>01-18</option> <option>01-06</option> </select> </td> </tr></table><br/> <center><b><big><big>Changes and Additions to CppAD During 2009</big></big></b></center> <br/> <b><big><a name="Introduction" id="Introduction">Introduction</a></big></b> <br/> This section contains a list of the changes to CppAD during 2009 (in reverse order by date). The purpose of this section is to assist you in learning about changes between various versions of CppAD. (Comments about developer documentation are only important if you are trying to read and understand the CppAD source code.) <br/> <br/> <b><big><a name="12-23" id="12-23">12-23</a></big></b> <br/> The <code><font color="blue">ADFun</font></code> <a href="funconstruct.xml#Assignment Operator" target="_top"><span style='white-space: nowrap'>assignment operator</span></a> was changed so that it now copies forward mode Taylor coefficients and sparsity pattern information. (This assignment operator was added on <a href="whats_new_09.xml#10-24" target="_top"><span style='white-space: nowrap'>10-24</span></a> .) You can use <a href="capacity_taylor.xml" target="_top"><span style='white-space: nowrap'>capacity_taylor</span></a> to delete the Taylor coefficients before copying them. Two new functions were added so that you can query and delete the forward mode sparsity information; see <a href="forsparsejac.xml#f.size_forward_bool" target="_top"><span style='white-space: nowrap'>size_forward_bool</span></a> and <a href="forsparsejac.xml#f.size_forward_set" target="_top"><span style='white-space: nowrap'>size_forward_set</span></a> . <br/> <br/> <b><big><a name="12-22" id="12-22">12-22</a></big></b> <br/> Convert the optimization of a sequence of additions from multiple operators to one operator with a varying number of arguments. This improved the speed for forward and reverse mode computations of an optimized tape. <br/> <br/> <b><big><a name="12-18" id="12-18">12-18</a></big></b> <br/> It turns out that detection of a sequence of additions makes the optimization longer. This was simplified and makes slightly faster by converting two jointly recursive routines to one non-recursive routine that uses a stack for the necessary information. More work is planned to make this optimization faster. <br/> <br/> <b><big><a name="12-12" id="12-12">12-12</a></big></b> <br/> Detection of a sequence of additions that can be converted to one variable during the <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>optimize</span></a> process. This leads to a significant improvement in the tape size and speed. <br/> <br/> <b><big><a name="12-04" id="12-04">12-04</a></big></b> <br/> Change hash coding of parameter values as part of operators during the <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>optimize</span></a> process. This should leads to more detection and removal of duplicate operations. <br/> <br/> <b><big><a name="12-02" id="12-02">12-02</a></big></b> <br/> Fix minor grammatical error in the Purpose heading for <a href="condexp.xml#Purpose" target="_top"><span style='white-space: nowrap'>conditional expressions</span></a> . <code><span style='white-space: nowrap'><br/> <br/> </span></code>Add the following functions: <a href="seq_property.xml#size_op" target="_top"><span style='white-space: nowrap'>size_op</span></a> , <a href="seq_property.xml#size_op_arg" target="_top"><span style='white-space: nowrap'>size_op_arg</span></a> , and <a href="seq_property.xml#size_op_seq" target="_top"><span style='white-space: nowrap'>size_op_seq</span></a> . In addition, improve and extend the <a href="seq_property.cpp.xml" target="_top"><span style='white-space: nowrap'>seq_property.cpp</span></a> example. <br/> <br/> <b><big><a name="11-28" id="11-28">11-28</a></big></b> <br/> Fix bug in tape optimization with <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> objects. <br/> <br/> <b><big><a name="11-27" id="11-27">11-27</a></big></b> <br/> Remove duplicate expressions for the commutative binary operators; i.e., addition and multiplication. <br/> <br/> <b><big><a name="11-26" id="11-26">11-26</a></big></b> <br/> Improve <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>optimize</span></a> command so that it removes some duplicate expressions from the tape (more of this is planned). <br/> <br/> <b><big><a name="10-30" id="10-30">10-30</a></big></b> <br/> Make program that check Ipopt ODE example correctness a separate file <a href="ipopt_ode_check.cpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_check.cpp</span></a> Split out Ipopt driver for ODE example <a href="ipopt_ode_run.hpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_run.hpp</span></a> . Add the speed testing problem <code><font color="blue">ipopt_cppad/ipopt_ode_speed.cpp</font></code>. <br/> <br/> <b><big><a name="10-29" id="10-29">10-29</a></big></b> <br/> Split out the <a href="ipopt_ode_problem.xml" target="_top"><span style='white-space: nowrap'>ode inverse problem</span></a> , <a href="ipopt_ode_simple.xml" target="_top"><span style='white-space: nowrap'>its simple representation</span></a> , and <a href="ipopt_ode_fast.xml" target="_top"><span style='white-space: nowrap'>its fast representation</span></a> , as a separate files; to be specific, <a href="ipopt_ode_problem.hpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_problem.hpp</span></a> , <a href="ipopt_ode_simple.hpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_simple.hpp</span></a> , <a href="ipopt_ode_fast.hpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_fast.hpp</span></a> , and <a href="ipopt_ode_check.cpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_check.cpp</span></a> . <br/> <br/> <b><big><a name="10-28" id="10-28">10-28</a></big></b> <br/> Improve the documentation for <a href="ipopt_ode_simple.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_simple</span></a> and <a href="ipopt_ode_fast.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_fast</span></a> . <br/> <br/> <b><big><a name="10-27" id="10-27">10-27</a></big></b> <br/> Moved old <code><font color="blue">ipopt_cppad_simple.cpp</font></code> to <a href="ipopt_get_started.cpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_get_started.cpp</span></a> , created the example <a href="ipopt_ode_simple.hpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_simple.hpp</span></a> , and split and <code><font color="blue">ipopt_cppad_ode.cpp</font></code> into <a href="ipopt_ode_fast.hpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_fast.hpp</span></a> and <a href="ipopt_ode_check.cpp.xml" target="_top"><span style='white-space: nowrap'>ipopt_ode_check.cpp</span></a> . <br/> <br/> <b><big><a name="10-24" id="10-24">10-24</a></big></b> <br/> Added the <a href="funconstruct.xml#Assignment Operator" target="_top"><span style='white-space: nowrap'>assignment operator</span></a> to the <code><font color="blue">ADFun</font></code> object class. This makes a copy of the entire operation sequence in another function object. The intention is that the two functions objects can do calculations in parallel. In addition, CppAD now check for the <code><font color="blue">ADFun</font></code> <a href="funconstruct.xml#Copy Constructor" target="_top"><span style='white-space: nowrap'>copy constructor</span></a> and generates an error message if it is used. <br/> <br/> <b><big><a name="10-23" id="10-23">10-23</a></big></b> <br/> The <a href="sparse_hessian.xml" target="_top"><span style='white-space: nowrap'>sparse_hessian</span></a> routine was extended so the user can now choose between vectors of sets and boolean vectors for representing <a href="glossary.xml#Sparsity Pattern" target="_top"><span style='white-space: nowrap'>sparsity patterns</span></a> . <br/> <br/> <b><big><a name="10-21" id="10-21">10-21</a></big></b> <br/> The <a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a> function was extended so that it can check simple vectors where the elements of the vector can not be assigned to integer values. This was done by adding the <a href="checksimplevector.xml#x, y" target="_top"><span style='white-space: nowrap'>x, y</span></a> arguments to <code><font color="blue">CheckSimpleVector</font></code>. <br/> <br/> <b><big><a name="10-16" id="10-16">10-16</a></big></b> <br/> The <a href="sparse_jacobian.xml" target="_top"><span style='white-space: nowrap'>sparse_jacobian</span></a> routine was extended so the user can now choose between vectors of sets and boolean vectors for representing <a href="glossary.xml#Sparsity Pattern" target="_top"><span style='white-space: nowrap'>sparsity patterns</span></a> . <br/> <br/> <b><big><a name="10-14" id="10-14">10-14</a></big></b> <br/> The <code><i><font color="black"><span style='white-space: nowrap'>packed</span></font></i></code> parameter for the sparsity routines <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>ForSparseJac</span></a> , <a href="revsparsejac.xml" target="_top"><span style='white-space: nowrap'>RevSparseJac</span></a> , and <a href="revsparsehes.xml" target="_top"><span style='white-space: nowrap'>RevSparseHes</span></a> (introduced on <a href="whats_new_09.xml#09-26" target="_top"><span style='white-space: nowrap'>09-26</span></a> ) has been removed. It has been replaced by changing the argument and return values to be more versatile. To be specific, they can now represent sparsity using vectors of <code><font color="blue">std::set<size_t></font></code> instead of just as vectors of <code><font color="blue">bool</font></code> (see <a href="glossary.xml#Sparsity Pattern" target="_top"><span style='white-space: nowrap'>sparsity patterns</span></a> ). <br/> <br/> <b><big><a name="10-03" id="10-03">10-03</a></big></b> <br/> The Microsoft Visual Studio project files for <a href="installwindows.xml#Examples and Testing" target="_top"><span style='white-space: nowrap'>examples and testing</span></a> and for <a href="installwindows.xml#More Correctness Testing" target="_top"><span style='white-space: nowrap'>more correctness testing</span></a> were not including some new tests in their builds. This has been fixed. <br/> <br/> <b><big><a name="09-30" id="09-30">09-30</a></big></b> <br/> Added the <a href="cppad_sparse_jacobian.cpp.xml" target="_top"><span style='white-space: nowrap'>cppad_sparse_jacobian.cpp</span></a> speed test and increased the sizes used by <a href="link_sparse_hessian.xml" target="_top"><span style='white-space: nowrap'>link_sparse_hessian</span></a> . Some mistakes were fixed in the documentation for speed tests <a href="link_sparse_hessian.xml" target="_top"><span style='white-space: nowrap'>link_sparse_hessian</span></a> and <a href="sparse_evaluate.xml" target="_top"><span style='white-space: nowrap'>sparse_evaluate</span></a> . <br/> <br/> <b><big><a name="09-29" id="09-29">09-29</a></big></b> <br/> The documentation definition of the function <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow> <mi mathvariant='italic'>H</mi> <mo stretchy="false">(</mo> <mi mathvariant='italic'>x</mi> <mo stretchy="false">)</mo> </mrow></math> in <a href="revsparsehes.xml" target="_top"><span style='white-space: nowrap'>RevSparseHes</span></a> was missing a factor of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow> <mi mathvariant='italic'>R</mi> </mrow></math> . This has been fixed. <br/> <br/> <b><big><a name="09-28" id="09-28">09-28</a></big></b> <br/> Changed <a href="revsparsehes.xml" target="_top"><span style='white-space: nowrap'>RevSparseHes</span></a> so that it uses a sparse representation when the corresponding call to <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>ForSparseJac</span></a> used a sparse representation. This should have been included with the change on 09-26 because Hessian sparsity patters after <code><font color="blue">ForSparseJac</font></code> with <code><i><font color="black"><span style='white-space: nowrap'>packed</span></font></i></code> did not work. Thus, this could be considered a bug fix. <br/> <br/> <b><big><a name="09-26" id="09-26">09-26</a></big></b> <br/> Added the <code><font color="blue">packed</font></code> parameter to <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>ForSparseJac</span></a> and <a href="revsparsejac.xml" target="_top"><span style='white-space: nowrap'>RevSparseJac</span></a> . If <code><i><font color="black"><span style='white-space: nowrap'>packed</span></font></i></code> is false, a sparse instead of packed representation is used during the calculations of sparsity patterns. The sparse representation should be faster, and use less memory, for very large sparse Jacobians. The functions <code><font color="blue">ForSparseJac</font></code> and <code><font color="blue">RevSparseJac</font></code> return packed representations. The plan is to eventually provide new member functions that return sparse representations. <br/> <br/> <b><big><a name="09-20" id="09-20">09-20</a></big></b> <br/> Fixed a bug in the <a href="revsparsehes.xml" target="_top"><span style='white-space: nowrap'>Hessian Sparsity</span></a> calculations that included use of <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> objects. <br/> <br/> <b><big><a name="09-19" id="09-19">09-19</a></big></b> <br/> Some more memory allocation improvements (related to those on 09-18) were made. <br/> <br/> <b><big><a name="09-18" id="09-18">09-18</a></big></b> <br/> A bug was found in all the <a href="sparse.xml" target="_top"><span style='white-space: nowrap'>Sparsity</span></a> calculations. The result was that eight times the necessary memory was being used during these calculations. This has been fixed. <br/> <br/> <b><big><a name="08-25" id="08-25">08-25</a></big></b> <br/> Add <a href="ad_fun.cpp.xml" target="_top"><span style='white-space: nowrap'>ad_fun.cpp</span></a> an example of how to create your own interface to an <a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a> object. <br/> <br/> <b><big><a name="08-14" id="08-14">08-14</a></big></b> <br/> Add <a href="ad_in_c.cpp.xml" target="_top"><span style='white-space: nowrap'>ad_in_c.cpp</span></a> an example of how to link CppAD to other languages. <br/> <br/> <b><big><a name="08_13" id="08_13">08_13</a></big></b> <br/> Add an option to <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>optimize</span></a> an operation sequence. <code><span style='white-space: nowrap'><br/> <br/> </span></code><b>Begin Merge</b> <code><span style='white-space: nowrap'><br/> </span></code>of changes from the directory <code><font color="blue">branches/optimize</font></code> in the CppAD subversion repository. The subheading dates below represent when the correspond change was made in <code><font color="blue">branches/optimize</font></code>. <br/> <br/> <b><a name="08_13.08-13" id="08_13.08-13">08-13</a></b> <br/> An automatic check of the <a href="forwardzero.xml" target="_top"><span style='white-space: nowrap'>ForwardZero</span></a> results was added after each call to <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>f.optimize()</span></a> (this <a href="optimize.xml#Checking Optimization" target="_top"><span style='white-space: nowrap'>check</span></a> is skipped when <code><font color="blue">NDEBUG</font></code> is defined). In addition, all of the <code><font color="blue"><span style='white-space: nowrap'>speed/cppad/</span></font><i><font color="black"><span style='white-space: nowrap'>*</span></font></i><font color="blue"><span style='white-space: nowrap'>.cpp</span></font></code> tests now check and use the speed test <a href="speed_main.xml#option_list.optimize" target="_top"><span style='white-space: nowrap'>optimize</span></a> flag. <br/> <br/> <b><a name="08_13.08-11" id="08_13.08-11">08-11</a></b> <br/> Change the speed test <a href="speed_main.xml" target="_top"><span style='white-space: nowrap'>main program</span></a> so that it uses a list of options instead of a boolean flag for each option. This will make it possible to add options in the future with out having to change all the existing tests because the options are now global variables instead of arguments to the speed test routines; for example, see <a href="speed_main.xml#option_list.retape" target="_top"><span style='white-space: nowrap'>retape</span></a> . <br/> <br/> <b><a name="08_13.08-10" id="08_13.08-10">08-10</a></b> <br/> The routine for <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>optimizing</span></a> the operation sequence has been added has been further tested using <code><font color="blue">test_more/optimize.cpp</font></code>. Some bugs have been fix and the routine can now be trusted to work correctly. <code><span style='white-space: nowrap'><br/> <br/> </span></code>The function <a href="seq_property.xml#size_VecAD" target="_top"><span style='white-space: nowrap'>size_VecAD</span></a> function was added so that the user could see the <code><font color="blue">VecAD</font></code> vectors and elements corresponding to an operation sequence. <br/> <br/> <b><a name="08_13.08-09" id="08_13.08-09">08-09</a></b> <br/> A routine for <a href="optimize.xml" target="_top"><span style='white-space: nowrap'>optimizing</span></a> the operation sequence has been added. This is a preliminary version and needs more testing before it can be trusted to work correctly. <code><span style='white-space: nowrap'><br/> </span></code><b>End Merge</b> <br/> <br/> <b><big><a name="08-06" id="08-06">08-06</a></big></b> <br/> Add hash table coding to reduce the number of copies of the same parameter value necessary in a tape recording. In addition, add the function <a href="seq_property.xml#size_par" target="_top"><span style='white-space: nowrap'>size_par</span></a> was added so that the user could see the number of parameters corresponding to an operation sequence. <br/> <br/> <b><big><a name="08-02" id="08-02">08-02</a></big></b> <br/> Fix bug in new version of how <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>ForSparseJac</span></a> handles <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> objects. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Fix bug in overnight build where HTML version and entire documentation as one page versions of documentation were not being built. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Fix missing new line under <a href="simplevector.xml#Element Access.Using Value" target="_top"><span style='white-space: nowrap'>Using Value</span></a> heading for simple vector documentation. <br/> <br/> <b><big><a name="08-01" id="08-01">08-01</a></big></b> <br/> Fix bug in reverse mode Jacobian <a href="revsparsejac.xml" target="_top"><span style='white-space: nowrap'>sparsity</span></a> for <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> objects. <br/> <br/> <b><big><a name="07-31" id="07-31">07-31</a></big></b> <br/> The <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>forward</span></a> and <a href="revsparsejac.xml" target="_top"><span style='white-space: nowrap'>reverse</span></a> sparse Jacobian routines have been improved so the resulting sparsity patterns are valid for all values of the independent variables (even if you use <a href="condexp.xml" target="_top"><span style='white-space: nowrap'>CondExp</span></a> or <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> ). <br/> <br/> <b><big><a name="07-26" id="07-26">07-26</a></big></b> <br/> Convert developer documentation from forward and reverse mode sweep routines from OMhelp to doxygen. <br/> <br/> <b><big><a name="07-25" id="07-25">07-25</a></big></b> <br/> Add developer documentation for <a href="printfor.xml" target="_top"><span style='white-space: nowrap'>PrintFor</span></a> operations. <br/> <br/> <b><big><a name="07-24" id="07-24">07-24</a></big></b> <br/> Add developer documentation for <a href="discrete.xml" target="_top"><span style='white-space: nowrap'>Discrete</span></a> operations. <br/> <br/> <b><big><a name="07-23" id="07-23">07-23</a></big></b> <br/> Add developer documentation for tape evaluation of <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> store operations. (a store operation changes the value of a VecAD element). <code><span style='white-space: nowrap'><br/> <br/> </span></code>Improve the <a href="vec_ad.cpp.xml" target="_top"><span style='white-space: nowrap'>vec_ad.cpp</span></a> user example. <br/> <br/> <b><a name="07-23.07-06" id="07-23.07-06">07-06</a></b> <br/> Fixed a bug in second or higher order reverse mode calculations that used <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a> . This bug was demonstrated by the test case <code><font color="blue">SecondOrderReverse</font></code> in the file <code><font color="blue">test_more/vec_ad.cpp</font></code>. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Add developer documentation for tape evaluation of the VecAD load operations (a load operation accesses an element of the vector but does not change it.) <code><span style='white-space: nowrap'><br/> <br/> </span></code>Fix <code><font color="blue">isnan</font></code> undefined in <code><font color="blue">example/cond_exp.cpp</font></code> error introduced on 07-04 change. <br/> <br/> <b><big><a name="07-04" id="07-04">07-04</a></big></b> <br/> Add developer documentation for the <a href="comparechange.xml" target="_top"><span style='white-space: nowrap'>CompareChange</span></a> operations during tape evaluation. <code><span style='white-space: nowrap'><br/> <br/> </span></code><b>Begin Merge</b> <code><span style='white-space: nowrap'><br/> </span></code>of changes from the directory <code><font color="blue">branches/sweep</font></code> in the CppAD subversion repository. The subheading dates below represent when the correspond change was made in <code><font color="blue">branches/sweep</font></code>. <br/> <br/> <b><a name="07-04.07-04" id="07-04.07-04">07-04</a></b> <br/> Fixed a bug in second or higher order reverse mode calculations that included <a href="condexp.xml" target="_top"><span style='white-space: nowrap'>conditional expressions</span></a> . This bug was demonstrated by the test case <code><font color="blue">SecondOrderReverse</font></code> in the file <code><font color="blue">test_more/cond_exp.cpp</font></code>. <code><span style='white-space: nowrap'><br/> <br/> </span></code>A simpler and useful example was provided for <a href="condexp.xml" target="_top"><span style='white-space: nowrap'>conditional expressions</span></a> ; see <a href="condexp.cpp.xml" target="_top"><span style='white-space: nowrap'>CondExp.cpp</span></a> . <br/> <br/> <b><a name="07-04.07-03" id="07-04.07-03">07-03</a></b> <br/> Some minor improvements were made to the documentation for <a href="condexp.xml" target="_top"><span style='white-space: nowrap'>CondExp</span></a> . To be specific, a newer OMhelp option was used to change the formatting of the syntax, some of the argument names were changed to be more descriptive. <br/> <br/> <b><a name="07-04.07-02" id="07-04.07-02">07-02</a></b> <br/> Add developer doxygen documentation of tape evaluation for power (exponentiation) operators. <br/> <br/> <b><a name="07-04.07-01" id="07-04.07-01">07-01</a></b> <br/> Fix an example indexing error in <code><font color="blue">introduction/exp_apx/exp_eps_for2.cpp</font></code> (found by valgrind). <code><span style='white-space: nowrap'><br/> <br/> </span></code>Add developer doxygen documentation of tape evaluation for multiplication and division operators. <br/> <br/> <b><a name="07-04.06-30" id="07-04.06-30">06-30</a></b> <br/> Add developer doxygen documentation of tape evaluation for addition and subtraction operators. <br/> <br/> <b><a name="07-04.06-29" id="07-04.06-29">06-29</a></b> <br/> Add developer doxygen documentation of tape evaluation for sin, sinh, cos, and cosh. <br/> <br/> <b><a name="07-04.06-28" id="07-04.06-28">06-28</a></b> <br/> Add developer doxygen documentation of tape evaluation for atan, asin, acos, sqrt, log. <code><span style='white-space: nowrap'><br/> </span></code><b>End Merge</b> <br/> <br/> <b><big><a name="06-25" id="06-25">06-25</a></big></b> <br/> The tarball for most recent release (of the subversion trunk for CppAD) was not being placed in the <a href="http://www.coin-or.org/download/source/CppAD/" target="_top"><span style='white-space: nowrap'>download</span></a> directory. This has been fixed. <br/> <br/> <b><big><a name="06-22" id="06-22">06-22</a></big></b> <br/> Fix compiler warnings during the <a href="openmp_run.sh.xml" target="_top"><span style='white-space: nowrap'>openmp_run.sh</span></a> test. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Changed <a href="speed_example.cpp.xml" target="_top"><span style='white-space: nowrap'>speed_example.cpp</span></a> to omit the <code><font color="blue">speed_test</font></code> from the correctness result. In stead, a message is printed explaining that timing tests need to be run without a lot of other demands on the system. <br/> <br/> <b><big><a name="06-21" id="06-21">06-21</a></big></b> <br/> The configure instructions for <a href="installunix.xml#IpoptDir" target="_top"><span style='white-space: nowrap'>IpoptDir</span></a> had the wrong path for <code><font color="blue">IpIpoptApplication.hpp</font></code>. This has been fixed. <br/> <br/> <b><big><a name="06-20" id="06-20">06-20</a></big></b> <br/> Upgrade to from autoconf 2.61 to 2.63, and from automake 1.10.1 to 1.11. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Fix conflict between CppAD's use of config.h preprocessor symbols and other packages use of the same symbol names. <br/> <br/> <b><big><a name="06-06" id="06-06">06-06</a></big></b> <br/> Using complex of an AD type (instead of AD of complex) was not working correctly in <a href="not_complex_ad.cpp.xml" target="_top"><span style='white-space: nowrap'>not_complex_ad.cpp</span></a> because the <a href="default.xml" target="_top"><span style='white-space: nowrap'>default</span></a> constructor for an AD object has an unspecified value. This has been fixed for the complex type by changing the default constructor to use value zero. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Fixing the <code><font color="blue">not_complex_ad.cpp</font></code> problem above also fixed a warning generated by <a href="/http://valgrind.org/" target="_top"><span style='white-space: nowrap'>valgrind</span></a> . Now <code><font color="blue">valgrind</font></code> runs the CppAD <code><font color="blue">example/example</font></code> program with out any warning or error messages. In addition, a minor initialization error was fixed in the <code><font color="blue">test_more/jacobian.cpp</font></code> routine so now <code><font color="blue">valgrind</font></code> also runs the CppAD <code><font color="blue">test_more/test_more</font></code> program with out any warnings or error messages. <br/> <br/> <b><big><a name="05-20" id="05-20">05-20</a></big></b> <br/> A change was make to the trunk on 05-19 (svn revision 1361) that broke the <a href="installunix.xml" target="_top"><span style='white-space: nowrap'>Unix install</span></a> procedure. This was has been fixed (revision 1362). <br/> <br/> <b><big><a name="03-24" id="03-24">03-24</a></big></b> <br/> Added cross references in the <a href="listallexamples.xml" target="_top"><span style='white-space: nowrap'>examples</span></a> to occurrence of the following tokens: <a href="ad.xml" target="_top"><span style='white-space: nowrap'>AD</span></a> , <a href="funconstruct.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a> , <a href="test_vector.xml" target="_top"><span style='white-space: nowrap'>CPPAD_TEST_VECTOR</span></a> , <a href="forward.xml" target="_top"><span style='white-space: nowrap'>Forward</span></a> , <a href="independent.xml" target="_top"><span style='white-space: nowrap'>Independent</span></a> , <a href="jacobian.xml" target="_top"><span style='white-space: nowrap'>Jacobian</span></a> <a href="nearequal.xml" target="_top"><span style='white-space: nowrap'>NearEqual</span></a> , <a href="reverse.xml" target="_top"><span style='white-space: nowrap'>Reverse</span></a> . <br/> <br/> <b><big><a name="02-20" id="02-20">02-20</a></big></b> <br/> Demonstrate using AD to compute the derivative of the solution of an ODE with respect to a parameter (in the <a href="runge_45_2.cpp.xml" target="_top"><span style='white-space: nowrap'>runge_45_2.cpp</span></a> example). <br/> <br/> <b><big><a name="02-15" id="02-15">02-15</a></big></b> <br/> Change the distribution <a href="installunix.xml#Download.Unix Tar Files" target="_top"><span style='white-space: nowrap'>tar files</span></a> to only contain one copy of the documentation. Link to the current Internet documentation for the other three copies. <br/> <br/> <b><big><a name="02-01" id="02-01">02-01</a></big></b> <br/> Move the <code><font color="blue">Prev</font></code> and <code><font color="blue">Next</font></code> buttons at the top of the documentation to the beginning so that their position does not change between sections. This makes it easier to repeatedly select this links. <br/> <br/> <b><big><a name="01-31" id="01-31">01-31</a></big></b> <br/> Modify <code><font color="blue">cppad/local/op_code.hpp</font></code> to avoid incorrect warning by g++ version 4.3.2 when building <code><font color="blue">pycppad</font></code> (a python interface to CppAD). <br/> <br/> <b><big><a name="01-18" id="01-18">01-18</a></big></b> <br/> Sometimes an error occurs while taping AD operations. The <a href="abort_recording.xml" target="_top"><span style='white-space: nowrap'>abort_recording</span></a> function has been added to make it easier to recover in such cases. <code><span style='white-space: nowrap'><br/> <br/> </span></code>Previously, CppAD speed and comparison tests used Adolc-1.10.2. The version used in the tests has been upgraded to <a href="http://www.math.tu-dresden.de/~adol-c/" target="_top"><span style='white-space: nowrap'>Adolc-2.0.0.</span></a> <code><span style='white-space: nowrap'><br/> <br/> </span></code>A discussion has been added to the documentation for <a href="jacobian.xml" target="_top"><span style='white-space: nowrap'>Jacobian</span></a> about its use of <a href="jacobian.xml#Forward or Reverse" target="_top"><span style='white-space: nowrap'>forward or reverse</span></a> mode depending on which it estimates is more efficient. <code><span style='white-space: nowrap'><br/> <br/> </span></code>A minor typo has been fixed in the description of <a href="reverse_any.xml#W(t, u)" target="_top"><span style='white-space: nowrap'>W(t, u)</span></a> in <a href="reverse_any.xml" target="_top"><span style='white-space: nowrap'>reverse_any</span></a> . To be specific, <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow> <mi mathvariant='italic'>o</mi> <mo stretchy="false">(</mo> <msup><mi mathvariant='italic'>t</mi> <mrow><mi mathvariant='italic'>p</mi> <mn>-1</mn> </mrow> </msup> <mo stretchy="false">)</mo> <mo stretchy="false">*</mo> <msup><mi mathvariant='italic'>t</mi> <mrow><mn>1</mn> <mo stretchy="false">-</mo> <mi mathvariant='italic'>p</mi> </mrow> </msup> <mo stretchy="false">→</mo> <mn>0</mn> </mrow></math> has been replaced by <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow> <mi mathvariant='italic'>o</mi> <mo stretchy="false">(</mo> <msup><mi mathvariant='italic'>t</mi> <mrow><mi mathvariant='italic'>p</mi> <mn>-1</mn> </mrow> </msup> <mo stretchy="false">)</mo> <mo stretchy="false">/</mo> <msup><mi mathvariant='italic'>t</mi> <mrow><mn>1</mn> <mo stretchy="false">-</mo> <mi mathvariant='italic'>p</mi> </mrow> </msup> <mo stretchy="false">→</mo> <mn>0</mn> </mrow></math> . <br/> <br/> <b><big><a name="01-06" id="01-06">01-06</a></big></b> <br/> Made some minor improvements to the documentation in <a href="funconstruct.xml" target="_top"><span style='white-space: nowrap'>FunConstruct</span></a> . <hr/>Input File: omh/whats_new_09.omh </body> </html>