Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 39da2e642be5eb48375f19991c31eb2c > files > 774

cppad-doc-20100101.4-1.fc14.noarch.rpm

<?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 2005</title>
<meta name="description" id="description" content="Changes and Additions to CppAD During 2005"/>
<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_05_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_06.xml" target="_top">Prev</a>
</td><td><a href="whats_new_04.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>Appendix</option>
<option>whats_new</option>
<option>whats_new_05</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>library</option>
<option>Example</option>
<option>configure</option>
<option>Appendix</option>
</select>
</td>
<td>
<select onchange='choose_down2(this)'>
<option>Appendix-&gt;</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-&gt;</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_05</td>
<td>
<select onchange='choose_current0(this)'>
<option>Headings-&gt;</option>
<option>12-24</option>
<option>12-23</option>
<option>12-22</option>
<option>12-20</option>
<option>12-19</option>
<option>12-16</option>
<option>12-15</option>
<option>12-14</option>
<option>12-11</option>
<option>12-08</option>
<option>12-07</option>
<option>12-06</option>
<option>12-05</option>
<option>12-03</option>
<option>12-02</option>
<option>12-01</option>
<option>11-23</option>
<option>11-22</option>
<option>11-20</option>
<option>11-19</option>
<option>11-15</option>
<option>11-12</option>
<option>11-09</option>
<option>11-07</option>
<option>11-06</option>
<option>11-01</option>
<option>10-20</option>
<option>10-18</option>
<option>10-14</option>
<option>10-12</option>
<option>10-06</option>
<option>09-29</option>
<option>09-27</option>
<option>09-24</option>
<option>09-20</option>
<option>09-14</option>
<option>09-09</option>
<option>09-07</option>
<option>08-30</option>
<option>08-24</option>
<option>08-20</option>
<option>08-19</option>
<option>08-15</option>
<option>08-14</option>
<option>08-13</option>
<option>08-07</option>
<option>07-21</option>
<option>07-19</option>
<option>07-15</option>
<option>07-11</option>
<option>07-08</option>
<option>07-05</option>
<option>07-04</option>
<option>07-03</option>
<option>07-02</option>
<option>07-01</option>
<option>06-25</option>
<option>06-24</option>
<option>06-18</option>
<option>06-14</option>
<option>06-13</option>
<option>06-06</option>
<option>05-19</option>
<option>05-18</option>
<option>05-16</option>
<option>05-12</option>
<option>05-06</option>
<option>05-01</option>
<option>04-21</option>
<option>04-20</option>
<option>04-19</option>
<option>03-26</option>
<option>03-23</option>
<option>03-22</option>
<option>03-09</option>
<option>03-04</option>
<option>03-01</option>
<option>02-24</option>
<option>01-08</option>
</select>
</td>
</tr></table><br/>



<center><b><big><big>Changes and Additions to CppAD During 2005</big></big></b></center>
<br/>
<b><big><a name="12-24" id="12-24">12-24</a></big></b>
<br/>
Fix a memory leak that could occur during the <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>ForSparseJac</span></a>
 
calculations.

<br/>
<br/>
<b><big><a name="12-23" id="12-23">12-23</a></big></b>
<br/>
The buffers that are used to do 
<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>
 
calculations are now freed directly after use.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The <a href="tracknewdel.cpp.xml" target="_top"><span style='white-space: nowrap'>TrackNewDel.cpp</span></a>
 example was missing from the Windows install 
<a href="installwindows.xml#Examples and Testing" target="_top"><span style='white-space: nowrap'>examples&#xA0;and&#xA0;testing</span></a>

project file. 
This has been fixed.

<br/>
<br/>
<b><big><a name="12-22" id="12-22">12-22</a></big></b>
<br/>
The buffer that is are used to do 
<a href="reverse.xml" target="_top"><span style='white-space: nowrap'>Reverse</span></a>
 mode
calculations is now freed directly after use.
This reduces the memory requirements attached to an <a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a>
 object.

<br/>
<br/>
<b><big><a name="12-20" id="12-20">12-20</a></big></b>
<br/>
Buffers that are used to store the tape information corresponding to 
the <code><font color="blue"><span style='white-space: nowrap'>AD&lt;</span></font></code><i><span style='white-space: nowrap'>Base</span></i><code><font color="blue"><span style='white-space: nowrap'>&gt;</span></font></code> type are now freed when the corresponding
<a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a>
 object is constructed.
This reduces memory requirements and actually had better results
with the <a href="speed_cppad.xml" target="_top"><span style='white-space: nowrap'>speed_cppad</span></a>
 tests.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The <a href="speed_cppad.xml" target="_top"><span style='white-space: nowrap'>speed_cppad</span></a>
 test program now outputs the version of CppAD
at the top (to help when comparing output between different versions).


<br/>
<br/>
<b><big><a name="12-19" id="12-19">12-19</a></big></b>
<br/>
The <a href="tracknewdel.xml" target="_top"><span style='white-space: nowrap'>TrackNewDel</span></a>
 routines were added for track memory allocation
and deletion with <code><font color="blue">new[]</font></code> and <code><font color="blue">delete[]</font></code>.
This is in preparation for making CppAD more efficient in it's use of
memory.
The bug mentioned on <a href="whats_new_05.xml#12-01" target="_top"><span style='white-space: nowrap'>12-01</span></a>
 resurfaced
and the corresponding routine was changed as follows:
<code><font color='blue'><pre style='display:inline'> 
	static ADTape&lt;Base&gt; *Tape(void)
	{	// If we return &amp;tape, instead of creating and returning ptr,
		// there seems to be a bug in g++ with -O2 option.
		static ADTape&lt;Base&gt; tape;
		static ADTape&lt;Base&gt; *ptr = &amp;tape;
		return ptr;
	}
</pre></font></code>


<br/>
<br/>
<b><big><a name="12-16" id="12-16">12-16</a></big></b>
<br/>
The <a href="nearequal.xml" target="_top"><span style='white-space: nowrap'>NearEqual</span></a>
 function documentation for the relative error case
was changed to 
<code><font color="blue"><span style='white-space: nowrap'><br/>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;|&#xA0;</span></font></code><i><span style='white-space: nowrap'>x</span></i><code><font color="blue"><span style='white-space: nowrap'>&#xA0;-&#xA0;</span></font></code><i><span style='white-space: nowrap'>y</span></i><code><font color="blue"><span style='white-space: nowrap'>&#xA0;|&#xA0;&lt;=&#xA0;</span></font></code><i><span style='white-space: nowrap'>r</span></i><code><font color="blue"><span style='white-space: nowrap'>&#xA0;*&#xA0;(&#xA0;|</span></font></code><i><span style='white-space: nowrap'>x</span></i><code><font color="blue"><span style='white-space: nowrap'>|&#xA0;+&#xA0;|</span></font></code><i><span style='white-space: nowrap'>y</span></i><code><font color="blue"><span style='white-space: nowrap'>|&#xA0;)<br/>
</span></font></code>so that there is no problem with division by zero when
<i>x</i> and <i>y</i> are zero
(the code was changed to that form also).
The <code><font color="blue">std::abs</font></code> function replaced the 
direct computation of the complex norms 
(for the complex case in <code><font color="blue">NearEqual</font></code>).
In addition, more extensive testing was done in <a href="near_equal.cpp.xml" target="_top"><span style='white-space: nowrap'>Near_Equal.cpp</span></a>
.



<br/>
<br/>
<b><big><a name="12-15" id="12-15">12-15</a></big></b>
<br/>
Extend <a href="nearequal.xml" target="_top"><span style='white-space: nowrap'>NearEqual</span></a>
 and <a href="nearequalext.xml" target="_top"><span style='white-space: nowrap'>NearEqualExt</span></a>

to cover more cases while converting them from,
a library function in <code><font color="blue">lib/CppADlib.a</font></code> 
and an utility in <code><font color="blue">example/NearEqualExt.h</font></code>,
to a template functions in 
<code><font color="blue">cppad/near_equal.hpp</font></code> and
<code><font color="blue">cppad/local/NearEqualExt.h</font></code>.
This is another step along the way of removing
the entire <code><font color="blue">CppADlib.a</font></code> library.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The change on <a href="whats_new_05.xml#12-14" target="_top"><span style='white-space: nowrap'>12-14</span></a>
 broke the 
Microsoft project files <code><font color="blue">example/Example.sln</font></code>
and <code><font color="blue">TestMore/TestMore.sln</font></code> used during CppAD
<a href="installwindows.xml" target="_top"><span style='white-space: nowrap'>installation&#xA0;on&#xA0;Windows</span></a>
.
This has been fixed.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Move <code><font color="blue">lib/SpeedTest.cpp</font></code> to <code><font color="blue">cppad/speed_test.hpp</font></code>.
This was the last change necessary in order to remove the CppAD library,
so remove all commands related to building and linking <code><font color="blue">CppADlib.a</font></code>.
The corresponding entry has been removed from the <a href="wishlist.xml" target="_top"><span style='white-space: nowrap'>WishList</span></a>
.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>One of the entries in the <a href="wishlist.xml" target="_top"><span style='white-space: nowrap'>WishList</span></a>
 corresponded to the
<a href="integer.xml" target="_top"><span style='white-space: nowrap'>Integer</span></a>
 function. 
It has also been removed (because it is already implemented).



<br/>
<br/>
<b><big><a name="12-14" id="12-14">12-14</a></big></b>
<br/>
Extend <a href="erf.xml" target="_top"><span style='white-space: nowrap'>erf</span></a>
 to cover more cases while converting it
from a function in <code><font color="blue">lib/CppADlib.a</font></code>
to a template function in <code><font color="blue">cppad/local/Erf.h</font></code>.
This is one step along the way of removing
the entire <code><font color="blue">CppADlib.a</font></code> library.


<br/>
<br/>
<b><big><a name="12-11" id="12-11">12-11</a></big></b>
<br/>
Group routines that extend the domain for which an <a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a>

object is useful into the ExtendDomain section.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Add an example of a C callable routine that computes
derivatives using CppAD (see <a href="interface2c.cpp.xml" target="_top"><span style='white-space: nowrap'>Interface2C.cpp</span></a>
).

<br/>
<br/>
<b><big><a name="12-08" id="12-08">12-08</a></big></b>
<br/>
Split out <a href="lufactor.xml" target="_top"><span style='white-space: nowrap'>LuFactor</span></a>
 with the <i>ratio</i> argument
to a separate function called <a href="luratio.xml" target="_top"><span style='white-space: nowrap'>LuRatio</span></a>
.
This needed to be done because <a href="luratio.xml" target="_top"><span style='white-space: nowrap'>LuRatio</span></a>
 is more restrictive
and should not be part of the general template <a href="library.xml" target="_top"><span style='white-space: nowrap'>library</span></a>
.

<br/>
<br/>
<b><big><a name="12-07" id="12-07">12-07</a></big></b>
<br/>
Improve <a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a>
 so that it tests element assignment.
Change <a href="checksimplevector.cpp.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector.cpp</span></a>
 so that it provides
and example and test of a case where a simple vector returns a type
different from the element type and the element assignment returns 
<code><font color="blue">void</font></code>.


<br/>
<br/>
<b><big><a name="12-06" id="12-06">12-06</a></big></b>
<br/>
The specifications for a <a href="simplevector.xml" target="_top"><span style='white-space: nowrap'>SimpleVector</span></a>
 template class
were extended so that the return type of an element access is
not necessarily the same as the type of the elements.
This enables us to include <code><font color="blue">std::vector&lt;bool&gt;</font></code>
which packs multiple elements into a single storage location
and returns a special type on element access (not the same as <code><font color="blue">bool</font></code>).
To be more specific,
if <i>x</i> is a <code><font color="blue">std::vector&lt;bool&gt;</font></code> object
and <i>i</i> has type <code><font color="blue">size_t</font></code>,
<code><font color="blue"></font></code><i><span style='white-space: nowrap'>x</span></i><code><font color="blue"><span style='white-space: nowrap'>[</span></font></code><i><span style='white-space: nowrap'>i</span></i><code><font color="blue"><span style='white-space: nowrap'>]</span></font></code> does not have type <code><font color="blue">bool</font></code>.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Add a Home icon,
that links to the
<a href="http://www.coin-or.org/CppAD/" target="_top"><span style='white-space: nowrap'>CppAD&#xA0;home&#xA0;page</span></a>
,
to the top left of the navigation frame
(left frame) for each documentation section.

<br/>
<br/>
<b><big><a name="12-05" id="12-05">12-05</a></big></b>
<br/>
The <a href="revsparsehes.xml" target="_top"><span style='white-space: nowrap'>RevSparseHes</span></a>
 reverse mode Hessian sparsity calculation
has been added.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The definition of a <a href="glossary.xml#Sparsity Pattern" target="_top"><span style='white-space: nowrap'>sparsity&#xA0;pattern</span></a>

has been corrected to properly correspond to the more efficient form
mentioned under <a href="whats_new_05.xml#11-20" target="_top"><span style='white-space: nowrap'>whats_new_05</span></a>
 below.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The dates in this file used to correspond to 
local time for when the change was checked
into the 
<a href="http://projects.coin-or.org/CppAD/browser" target="_top"><span style='white-space: nowrap'>subversion&#xA0;repository</span></a>
.
From now on the dates in this file will correspond to the first
version of CppAD where the change appears; i.e., the date in the
unix and windows
download file names <code><font color="blue"><span style='white-space: nowrap'>CppAD-</span></font></code><i><span style='white-space: nowrap'>yy</span></i><code><font color="blue"><span style='white-space: nowrap'>-</span></font></code><i><span style='white-space: nowrap'>mm</span></i><code><font color="blue"><span style='white-space: nowrap'>-</span></font></code><i><span style='white-space: nowrap'>dd</span></i>.


<br/>
<br/>
<b><big><a name="12-03" id="12-03">12-03</a></big></b>
<br/>
There was a bug in the <a href="revsparsejac.xml" target="_top"><span style='white-space: nowrap'>RevSparseJac</span></a>
 
reverse mode sparsity patterns when used with <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>
 calculations.
This bug was fixed and the calculations were made more efficient 
(fewer true entries).


<br/>
<br/>
<b><big><a name="12-02" id="12-02">12-02</a></big></b>
<br/>
There was a bug in the <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>ForSparseJac</span></a>
 
forward mode sparsity patterns when used with <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>
 calculations.
This bug was fixed and the calculations were made more efficient 
(fewer true entries).


<br/>
<br/>
<b><big><a name="12-01" id="12-01">12-01</a></big></b>
<br/>
The speed test of <a href="luvecad.xml" target="_top"><span style='white-space: nowrap'>LuVecAD</span></a>
 has been reinstated.
It appears that there is some sort of bug in the gcc compiler with
the -O2 option whereby the following member function 
<code><font color='blue'><pre style='display:inline'> 
	static ADTape&lt;Base&gt; *Tape(void)
	{	static ADTape&lt;Base&gt; tape;
		return &amp;tape;
	}
</pre></font></code>

(in <code><font color="blue">cppad/local/AD.h</font></code>)
would sometimes return a null value (during <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>
 operations).
A speed improvement in 
<code><font color="blue">cppad/local/ExtendBuffer.h</font></code> seems to prevent 
this problem.
This fix is not well understood; i.e., we should watch to see
if this problem reoccurs.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The source code for
<a href="luvecadok.cpp.xml" target="_top"><span style='white-space: nowrap'>LuVecADOk.cpp</span></a>
 was mistakenly used for
<code><font color="blue">speed_cppad/LuSolveSpeed.cpp</font></code>.
This has been fixed.



<br/>
<br/>
<b><big><a name="11-23" id="11-23">11-23</a></big></b>
<br/>
The speed test of <a href="luvecad.xml" target="_top"><span style='white-space: nowrap'>LuVecAD</span></a>
 has been commented out
because it sometimes generates a segmentation fault.
Here is an explanation:
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>If <i>X</i> is a <code><font color="blue"><span style='white-space: nowrap'>AD&lt;</span></font></code><i><span style='white-space: nowrap'>Base</span></i><code><font color="blue"><span style='white-space: nowrap'>&gt;</span></font></code> object,
<i>y</i> is a <i>Base</i> object,
<code><font color="blue"></font></code><i><span style='white-space: nowrap'>X</span></i><code><font color="blue"><span style='white-space: nowrap'>[</span></font></code><i><span style='white-space: nowrap'>y</span></i><code><font color="blue"><span style='white-space: nowrap'>]</span></font></code> uses pointer from the element
back to the original vector.
Optimizing compilers might reorder operations so that
the vector is destroyed before the object is used.
This can be avoided by changing the syntax for <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>
 objects
to use <code><font color="blue">set</font></code> and <code><font color="blue">get</font></code> member functions.


<br/>
<br/>
<b><big><a name="11-22" id="11-22">11-22</a></big></b>
<br/>
A much better <a href="vec_ad.cpp.xml" target="_top"><span style='white-space: nowrap'>example</span></a>
 for using <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>

vectors has been provided. In addition, a bug
in the computation of derivatives using <code><font color="blue">VecAD</font></code> vectors
has been fixed. 
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>CppAD now checks that the domain dimension during
<a href="independent.xml" target="_top"><span style='white-space: nowrap'>Independent</span></a>
 and 
the range dimension during <a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a>

(provided that <code><font color="blue">-DNDEBUG</font></code> is not defined).
If either of these is zero, 
the <code><font color="blue">CppADUsageError</font></code> macro is invoked.


<br/>
<br/>
<b><big><a name="11-20" id="11-20">11-20</a></big></b>
<br/>
The sparsity pattern routines
<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>

have been modified so that they are relative
to the Jacobian at a single argument value.
This enables us to return more efficient 
<a href="glossary.xml#Sparsity Pattern" target="_top"><span style='white-space: nowrap'>sparsity&#xA0;patterns</span></a>
.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>An extra <a href="vecad.xml#VecAD&lt;Base&gt;::reference.Exceptions" target="_top"><span style='white-space: nowrap'>exception</span></a>
 has been
added to the use of <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>
 elements.
This makes <code><font color="blue">VecAD</font></code> some what more efficient.

<br/>
<br/>
<b><big><a name="11-19" id="11-19">11-19</a></big></b>
<br/>
Improve the output messages generated during execution of the 
<a href="installunix.xml#Configure" target="_top"><span style='white-space: nowrap'>configure</span></a>
 command.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Put a try and catch block around all of the uses of
<code><font color="blue">new</font></code> so that if a memory allocation error occurs, 
it will generate a <code><font color="blue">CppADUsageError/</font></code> message.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The <a href="get_started.cpp.xml" target="_top"><span style='white-space: nowrap'>get_started.cpp</span></a>
 example has been simplified
so that it is easier to understand.

<br/>
<br/>
<b><big><a name="11-15" id="11-15">11-15</a></big></b>
<br/>
Fix a memory leak in both the <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>
 calculations.

<br/>
<br/>
<b><big><a name="11-12" id="11-12">11-12</a></big></b>
<br/>
Add reverse mode <a href="revsparsejac.xml" target="_top"><span style='white-space: nowrap'>Jacobian&#xA0;sparsity</span></a>
 calculation.

<br/>
<br/>
<b><big><a name="11-09" id="11-09">11-09</a></big></b>
<br/>
Add prototype documentation for <a href="lusolve.xml#logdet" target="_top"><span style='white-space: nowrap'>logdet</span></a>
 in 
the <a href="lusolve.xml" target="_top"><span style='white-space: nowrap'>LuSolve</span></a>
 function.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Add the optional <i>ratio</i> argument to the
<a href="lufactor.xml" target="_top"><span style='white-space: nowrap'>LuFactor</span></a>
 routine.
(This has since been moved to a separate routine called <a href="luratio.xml" target="_top"><span style='white-space: nowrap'>LuRatio</span></a>
.)

<br/>
<br/>
<b><big><a name="11-07" id="11-07">11-07</a></big></b>
<br/>
Remove some blank lines from the example files listed
directly below (under 11-06).
Comments for computing the entire Jacobian
<a href="forsparsejac.xml#Entire Sparsity Pattern" target="_top"><span style='white-space: nowrap'>entire&#xA0;sparsity&#xA0;pattern</span></a>

was added.

<br/>
<br/>
<b><big><a name="11-06" id="11-06">11-06</a></big></b>
<br/>
The cases of <code><font color="blue">std::vector</font></code>, <code><font color="blue">std::valarray</font></code>, and 
<code><font color="blue">CppAD::vector</font></code> were folded into the standard example and tests
format for the following cases:
<a href="revtwo.cpp.xml" target="_top"><span style='white-space: nowrap'>RevTwo.cpp</span></a>
,
<a href="revone.cpp.xml" target="_top"><span style='white-space: nowrap'>RevOne.cpp</span></a>
,
<code><font color="blue">Reverse.cpp</font></code>,
<a href="hessian.cpp.xml" target="_top"><span style='white-space: nowrap'>Hessian.cpp</span></a>
,
<a href="jacobian.cpp.xml" target="_top"><span style='white-space: nowrap'>Jacobian.cpp</span></a>
,
<a href="forward.cpp.xml" target="_top"><span style='white-space: nowrap'>Forward.cpp</span></a>
,
<a href="fortwo.cpp.xml" target="_top"><span style='white-space: nowrap'>ForTwo.cpp</span></a>
,
<a href="forone.cpp.xml" target="_top"><span style='white-space: nowrap'>ForOne.cpp</span></a>
,
<code><font color="blue">Fun.cpp</font></code>
(<code><font color="blue">Fun.cpp</font></code> has since been replaced by <a href="independent.cpp.xml" target="_top"><span style='white-space: nowrap'>Independent.cpp</span></a>
,
<code><font color="blue">Reverse.cpp</font></code> has since been replaced by 
<a href="reverse_one.cpp.xml" target="_top"><span style='white-space: nowrap'>reverse_one.cpp</span></a>
 and <code><font color="blue">reverse_any.cpp</font></code>).

<br/>
<br/>
<b><big><a name="11-01" id="11-01">11-01</a></big></b>
<br/>
Add forward mode <a href="forsparsejac.xml" target="_top"><span style='white-space: nowrap'>Jacobian&#xA0;sparsity</span></a>
 calculation.

<br/>
<br/>
<b><big><a name="10-20" id="10-20">10-20</a></big></b>
<br/>
Add <a href="glossary.xml#Sparsity Pattern" target="_top"><span style='white-space: nowrap'>sparsity&#xA0;patterns</span></a>
 to 
the whish list.

<br/>
<br/>
<b><big><a name="10-18" id="10-18">10-18</a></big></b>
<br/>
The Unix install <a href="installunix.xml#Configure" target="_top"><span style='white-space: nowrap'>configure</span></a>
 command
was missing the <code><font color="blue">--</font></code> before of the <code><font color="blue">prefix</font></code> command line
argument.

<br/>
<br/>
<b><big><a name="10-14" id="10-14">10-14</a></big></b>
<br/>
The template class <a href="cppad_vector.xml" target="_top"><span style='white-space: nowrap'>CppAD_vector</span></a>
 uses a try/catch block
during the allocation of memory (for error reporting).
This may be slow down memory allocation and hence it
is now replaced by simple memory allocation when 
the preprocessor variable <code><font color="blue">NDEBUG</font></code> is defined.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The specialization of <code><font color="blue">CppAD::vector&lt;bool&gt;</font></code>
was moved to <a href="cppad_vector.xml#vectorBool" target="_top"><span style='white-space: nowrap'>vectorBool</span></a>

so that <code><font color="blue">CppAD::vector&lt;bool&gt;</font></code> does not pack one bit per value 
(which can be slow to access).


<br/>
<br/>
<b><big><a name="10-12" id="10-12">10-12</a></big></b>
<br/>
Change the 
<a href="installunix.xml#Configure" target="_top"><span style='white-space: nowrap'>configure</span></a>
 script so that compilation of the
<a href="get_started.cpp.xml" target="_top"><span style='white-space: nowrap'>get_started.cpp</span></a>
 and <a href="printfor.cpp.xml" target="_top"><span style='white-space: nowrap'>PrintFor.cpp</span></a>
 examples are optional.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>One of the dates in the Unix installation
extraction discussion was
out of date. This has been fixed.



<br/>
<br/>
<b><big><a name="10-06" id="10-06">10-06</a></big></b>
<br/>
Change the Unix install <code><font color="blue">configure</font></code> script
so that is reports information using the same order and notation as its
<a href="installunix.xml#Configure" target="_top"><span style='white-space: nowrap'>documentation</span></a>
.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Some compiler errors in the <a href="odegearcontrol.cpp.xml" target="_top"><span style='white-space: nowrap'>OdeGearControl.cpp</span></a>
 and 
<a href="odestiff.cpp.xml" target="_top"><span style='white-space: nowrap'>OdeStiff.cpp</span></a>
 examples were fixed.


<br/>
<br/>
<b><big><a name="09-29" id="09-29">09-29</a></big></b>
<br/>
Add a specialization to <a href="cppad_vector.xml" target="_top"><span style='white-space: nowrap'>CppAD_vector</span></a>
 for the 
<code><font color="blue">CppAD::vector&lt;bool&gt;</font></code> case.
A test for the <code><font color="blue">push_back</font></code> member function as well as a
<a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a>
 test has been added to <a href="cppad_vector.cpp.xml" target="_top"><span style='white-space: nowrap'>CppAD_vector.cpp</span></a>
.
The source code for this template vector class,
<code><font color="blue">cppad/vector.hpp</font></code>,
has been removed from the documentation.


<br/>
<br/>
<b><big><a name="09-27" id="09-27">09-27</a></big></b>
<br/>
Add the 
<a href="installunix.xml#PrefixDir" target="_top"><span style='white-space: nowrap'>PrefixDir</span></a>
 and 
<i>PostfixDir</i> (<i>PostfixDir</i> has since been removed) 
options to the <code><font color="blue">configure</font></code> command line.
This gives the user more control over the location where CppAD is installed.

<br/>
<br/>
<b><big><a name="09-24" id="09-24">09-24</a></big></b>
<br/>
The stiff Ode routines,
<a href="odegear.xml" target="_top"><span style='white-space: nowrap'>OdeGear</span></a>
 and <a href="odegearcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeGearControl</span></a>
,
were added to the <a href="library.xml" target="_top"><span style='white-space: nowrap'>library</span></a>
.
A comparison various Ode solvers on a stiff problem
<a href="odestiff.cpp.xml" target="_top"><span style='white-space: nowrap'>OdeStiff.cpp</span></a>
 was added.
In addition, <code><font color="blue">OdeGear</font></code> and <code><font color="blue">OdeGearControl</font></code>
were added to the <a href="library.xml" target="_top"><span style='white-space: nowrap'>library</span></a>
 and the library was
reorganized.

<br/>
<br/>
<b><big><a name="09-20" id="09-20">09-20</a></big></b>
<br/>
The Microsoft compiler project files 
<code><font color="blue">example/Example.vcproj</font></code> and <code><font color="blue">TestMore/TestMore.vcproj</font></code> 
were not up to date.
This has been fixed.
In addition, the example <a href="numerictype.cpp.xml" target="_top"><span style='white-space: nowrap'>NumericType.cpp</span></a>
 has been added.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Make the building of the 
<code><font color="blue">Example</font></code>, <code><font color="blue">TestMore</font></code>, and <code><font color="blue">Speed</font></code>, directories
optional during the <a href="installunix.xml#Configure" target="_top"><span style='white-space: nowrap'>configure</span></a>
 command.
The <a href="installunix.xml" target="_top"><span style='white-space: nowrap'>Unix&#xA0;installation&#xA0;instructions</span></a>
 were 
overhauled to make the larger set of options easy to understand.

<br/>
<br/>
<b><big><a name="09-14" id="09-14">09-14</a></big></b>
<br/>
Added the <a href="numerictype.xml" target="_top"><span style='white-space: nowrap'>NumericType</span></a>
 concept and made the following
library routines require this
concept for their floating point template parameter type:
<a href="lusolve.xml" target="_top"><span style='white-space: nowrap'>LuSolve</span></a>
,
<a href="lufactor.xml" target="_top"><span style='white-space: nowrap'>LuFactor</span></a>
,
<a href="rombergone.xml" target="_top"><span style='white-space: nowrap'>RombergOne</span></a>
, 
<a href="rombergmul.xml" target="_top"><span style='white-space: nowrap'>RombergMul</span></a>
,
<a href="runge45.xml" target="_top"><span style='white-space: nowrap'>Runge45</span></a>
,
<a href="rosen34.xml" target="_top"><span style='white-space: nowrap'>Rosen34</span></a>
, and
<a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
.
This is more restrictive than the previous requirements
for these routines but it 
enables future changes to the implementation of these routines
(for optimization purposes) with out affecting their specifications.


<br/>
<br/>
<b><big><a name="09-09" id="09-09">09-09</a></big></b>
<br/>
Add the <a href="unaryplus.xml" target="_top"><span style='white-space: nowrap'>UnaryPlus</span></a>
 operator and move the <code><font color="blue">Neg</font></code>
examples and tests to <a href="unaryminus.xml" target="_top"><span style='white-space: nowrap'>UnaryMinus</span></a>
. 

<br/>
<br/>
<b><big><a name="09-07" id="09-07">09-07</a></big></b>
<br/>
Change name of distribution files from 
<code><font color="blue">CppAD.unix.tar.gz</font></code> and <code><font color="blue">CppAD.dos.tar.gz</font></code> 
to 
<code><font color="blue"><span style='white-space: nowrap'>CppAD-</span></font></code><i><span style='white-space: nowrap'>yy</span></i><code><font color="blue"><span style='white-space: nowrap'>-</span></font></code><i><span style='white-space: nowrap'>mm</span></i><code><font color="blue"><span style='white-space: nowrap'>-</span></font></code><i><span style='white-space: nowrap'>dd</span></i><code><font color="blue"><span style='white-space: nowrap'>.tar.gz</span></font></code> and <code><font color="blue"><span style='white-space: nowrap'>CppAD-</span></font></code><i><span style='white-space: nowrap'>yy</span></i><code><font color="blue"><span style='white-space: nowrap'>-</span></font></code><i><span style='white-space: nowrap'>mm</span></i><code><font color="blue"><span style='white-space: nowrap'>-</span></font></code><i><span style='white-space: nowrap'>dd</span></i><code><font color="blue"><span style='white-space: nowrap'>.zip</span></font></code> 
(the <code><font color="blue"></font></code><i><span style='white-space: nowrap'>*</span></i><code><font color="blue"><span style='white-space: nowrap'>.zip</span></font></code> file
uses pkzip compression).


<br/>
<br/>
<b><big><a name="08-30" id="08-30">08-30</a></big></b>
<br/>
The <i>maxabs</i> argument has been added to the
<a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
 function so that it can be used
with relative errors where components of the ODE solution may be zero
(some of the time).
In addition, some of the rest of the OdeErrControl documentation
has been improved.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The documentation for 
replacing defaults
in CppAD error macros has been improved.

<br/>
<br/>
<b><big><a name="08-24" id="08-24">08-24</a></big></b>
<br/>
Changed <code><font color="blue">Romberg</font></code> to <a href="rombergone.xml" target="_top"><span style='white-space: nowrap'>RombergOne</span></a>
 and added <a href="rombergmul.xml" target="_top"><span style='white-space: nowrap'>RombergMul</span></a>
.
In addition, added missing entries to <a href="listallexamples.xml" target="_top"><span style='white-space: nowrap'>ListAllExamples</span></a>

and reorganized <a href="library.xml" target="_top"><span style='white-space: nowrap'>library</span></a>
.

<br/>
<br/>
<b><big><a name="08-20" id="08-20">08-20</a></big></b>
<br/>
Backed out addition of <code><font color="blue">Romberg</font></code> integration routine
(at this point uncertain of the interface that is most useful in
the context of AD.)

<br/>
<br/>
<b><big><a name="08-19" id="08-19">08-19</a></big></b>
<br/>
Added a <code><font color="blue">Romberg</font></code> integration routine for 
where the argument types are template parameters
(for use with AD types).

<br/>
<br/>
<b><big><a name="08-15" id="08-15">08-15</a></big></b>
<br/>
The Microsoft project files <code><font color="blue">example/Example.vcproj</font></code> and 
<code><font color="blue">TestMore/TestMore.vcproj</font></code> were missing some necessary routines.
In addition, <code><font color="blue">Speed/Speed.vcproj</font></code> was generating a warning.
This has been fixed. 

<br/>
<br/>
<b><big><a name="08-14" id="08-14">08-14</a></big></b>
<br/>
An <a href="integer.xml" target="_top"><span style='white-space: nowrap'>Integer</span></a>
 conversion function as been added.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The <a href="value.cpp.xml" target="_top"><span style='white-space: nowrap'>Value.cpp</span></a>
 example has been improved and the old example
has been moved into the <code><font color="blue">TestMore</font></code> directory.

<br/>
<br/>
<b><big><a name="08-13" id="08-13">08-13</a></big></b>
<br/>
The <a href="std_math_ad.xml" target="_top"><span style='white-space: nowrap'>AD&#xA0;standard&#xA0;math&#xA0;unary&#xA0;functions</span></a>

<code><font color="blue">sinh</font></code>, and <code><font color="blue">cosh</font></code> have been added. 
In addition, more correctness testing 
(
<a href="installunix.xml#--with-TestMore" target="_top"><span style='white-space: nowrap'>unix</span></a>
 , 
<a href="installwindows.xml#More Correctness Testing" target="_top"><span style='white-space: nowrap'>windows</span></a>
 
)
has been added for the <code><font color="blue">sin</font></code> and <code><font color="blue">cos</font></code> functions.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The <a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
 routine could lock in an infinite loop.
This has been fixed and a test case has been added to check for this problem.

<br/>
<br/>
<b><big><a name="08-07" id="08-07">08-07</a></big></b>
<br/>
The <a href="condexp.xml" target="_top"><span style='white-space: nowrap'>conditional&#xA0;expression</span></a>
 function has been changed
from just <code><font color="blue">CondExp</font></code> to
<code><font color="blue">CondExpLt</font></code>,
<code><font color="blue">CondExpLe</font></code>,
<code><font color="blue">CondExpEq</font></code>,
<code><font color="blue">CondExpGe</font></code>,
<code><font color="blue">CondExpGt</font></code>.
This should make code with conditional expressions easier to understand.
In addition, it should reduce the number of tape operations because
one need not create as many temporaries to do comparisons with.
The old <code><font color="blue">CondExp</font></code> function has been deprecated.

<br/>
<br/>
<b><big><a name="07-21" id="07-21">07-21</a></big></b>
<br/>
Remove unnecessary no-op that was left in tape for the 
<a href="std_math_ad.xml" target="_top"><span style='white-space: nowrap'>AD&#xA0;standard&#xA0;math&#xA0;unary&#xA0;functions</span></a>

<code><font color="blue">acos</font></code>, <code><font color="blue">asin</font></code>, <code><font color="blue">atan</font></code>, <code><font color="blue">cos</font></code>.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Improve the index entries in the documentation that corresponds
to the <code><font color="blue">cppad/local</font></code> directory source code.

<br/>
<br/>
<b><big><a name="07-19" id="07-19">07-19</a></big></b>
<br/>
The <a href="wishlist.xml" target="_top"><span style='white-space: nowrap'>WishList</span></a>
 and <a href="bugs.xml" target="_top"><span style='white-space: nowrap'>Bugs</span></a>
 information
were moved out of this section and into their own separate sections.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>A discussion of 
<a href="vecad.xml#Speed and Memory" target="_top"><span style='white-space: nowrap'>VecAD&#xA0;speed&#xA0;and&#xA0;memory</span></a>
 was added
as well as an entry in the 
<a href="wishlist.xml" target="_top"><span style='white-space: nowrap'>WishList</span></a>
 to make it more efficient.


<br/>
<br/>
<b><big><a name="07-15" id="07-15">07-15</a></big></b>
<br/>
The <code><font color="blue">BOOST_DIR</font></code> and <code><font color="blue">CPP_ERROR_WARN</font></code>
<a href="installunix.xml#Configure" target="_top"><span style='white-space: nowrap'>configure</span></a>
 options 
were not properly implemented for compiling the  
<code><font color="blue">lib</font></code> sub-directory.
This has been fixed.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Some compiler warnings in the file <code><font color="blue">lib/ErrFun.cpp</font></code>,
which computes the <a href="erf.xml" target="_top"><span style='white-space: nowrap'>erf</span></a>
 function,
have been fixed.

<br/>
<br/>
<b><big><a name="07-11" id="07-11">07-11</a></big></b>
<br/>
The <a href="cppad_vector.xml#push_back" target="_top"><span style='white-space: nowrap'>push_back</span></a>
 function has 
been added to the <code><font color="blue">CppAD::vector</font></code> template class.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>It appears that the <code><font color="blue">TestMore/Runge45.cpp</font></code> file was missing 
an include of <code><font color="blue">example/NearEqualExt.h</font></code>. This has been fixed.

<br/>
<br/>
<b><big><a name="07-08" id="07-08">07-08</a></big></b>
<br/>
The documentation for <a href="forward.xml" target="_top"><span style='white-space: nowrap'>Forward</span></a>
 and <a href="reverse.xml" target="_top"><span style='white-space: nowrap'>Reverse</span></a>
 has been 
improved.

<br/>
<br/>
<b><big><a name="07-05" id="07-05">07-05</a></big></b>
<br/>
The <a href="rosen34.cpp.xml" target="_top"><span style='white-space: nowrap'>Rosen34.cpp</span></a>
 example mixed the 
<a href="cppad_vector.xml" target="_top"><span style='white-space: nowrap'>CppAD::vector</span></a>
 and 
<code><font color="blue">CppADvector</font></code> vector types.
This caused the compilation of the examples to fail when 
<code><font color="blue">CppADvector</font></code> was defined as something other than 
<code><font color="blue">CppAD::vector</font></code> (found by Jon Pearce).
This has been fixed.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The <a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a>
 run time code has been improved so that it is 
only run once per case that is being checked.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Simple Vector concept checking (<a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a>
) was
added to the routines:
<a href="forone.xml" target="_top"><span style='white-space: nowrap'>ForOne</span></a>
,
<a href="fortwo.xml" target="_top"><span style='white-space: nowrap'>ForTwo</span></a>
,
<a href="forward.xml" target="_top"><span style='white-space: nowrap'>Forward</span></a>
,
<a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a>
,
<a href="hessian.xml" target="_top"><span style='white-space: nowrap'>Hessian</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="revone.xml" target="_top"><span style='white-space: nowrap'>RevOne</span></a>
,
<a href="revtwo.xml" target="_top"><span style='white-space: nowrap'>RevTwo</span></a>
, and
<a href="reverse.xml" target="_top"><span style='white-space: nowrap'>Reverse</span></a>
.

<br/>
<br/>
<b><big><a name="07-04" id="07-04">07-04</a></big></b>
<br/>
Simple Vector concept checking (<a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a>
) was
added to the routines:
<a href="lufactor.xml" target="_top"><span style='white-space: nowrap'>LuFactor</span></a>
,
<a href="lusolve.xml" target="_top"><span style='white-space: nowrap'>LuSolve</span></a>
,
<a href="luinvert.xml" target="_top"><span style='white-space: nowrap'>LuInvert</span></a>
,
<a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
,
<a href="runge45.xml" target="_top"><span style='white-space: nowrap'>Runge45</span></a>
, and
<a href="rosen34.xml" target="_top"><span style='white-space: nowrap'>Rosen34</span></a>
.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The previous version of the 
routine <a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
 was mistakenly in the global namespace. 
It has been moved to the <code><font color="blue">CppAD</font></code> namespace 
(where all the other <a href="library.xml" target="_top"><span style='white-space: nowrap'>library</span></a>
 routines are).
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The previous distribution (version 05-07-02) was missing the file
<code><font color="blue">cppad/local/Default.h</font></code>.
This has been fixed.

<br/>
<br/>
<b><big><a name="07-03" id="07-03">07-03</a></big></b>
<br/>
Added <a href="checksimplevector.xml" target="_top"><span style='white-space: nowrap'>CheckSimpleVector</span></a>
, a C++ concept checking utility
that checks if a vector type has all the necessary conditions
to be a <a href="simplevector.xml" target="_top"><span style='white-space: nowrap'>SimpleVector</span></a>
 class with a specific element type.

<br/>
<br/>
<b><big><a name="07-02" id="07-02">07-02</a></big></b>
<br/>
Version 7 of Microsoft's C++ compiler
supports the standard declaration for a friend template function.
Version 6 did not and 
CppAD used macros to substitute the empty string for
<code><font color="blue">&lt;Base&gt;</font></code>, <code><font color="blue">&lt; AD&lt;Base&gt; &gt;</font></code>, and  <code><font color="blue">&lt; VecAD&lt;Base&gt; &gt;</font></code>
in these declarations.
These macro substitutions have been removed 
because Version 6 of Microsoft's C++ compiler
is no longer supported by CppAD.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>The copy base section was split into the <a href="default.xml" target="_top"><span style='white-space: nowrap'>default</span></a>
 
constructor and the 
construction for the base type.
The construction from base type has been
extended to include any type that is convertible to the base type.
As a special case, this provides the previous wish list item of
a constructor from an arbitrary <i>Base</i> to a 
<code><font color="blue"><span style='white-space: nowrap'>AD&lt;&#xA0;AD&lt;</span></font></code><i><span style='white-space: nowrap'>Base</span></i><code><font color="blue"><span style='white-space: nowrap'>&gt;&#xA0;&gt;</span></font></code>, <code><font color="blue"><span style='white-space: nowrap'>AD&lt;&#xA0;AD&lt;&#xA0;AD&lt;</span></font></code><i><span style='white-space: nowrap'>Base</span></i><code><font color="blue"><span style='white-space: nowrap'>&gt;&#xA0;&gt;&#xA0;&gt;</span></font></code> etc.


<br/>
<br/>
<b><big><a name="07-01" id="07-01">07-01</a></big></b>
<br/>
The permissions were set as executable for many of the no-executable files
in the distribution; for example, the <code><font color="blue">README</font></code>, file.
This has been fixed.

<br/>
<br/>
<b><big><a name="06-25" id="06-25">06-25</a></big></b>
<br/>
Some improvements were made to the 
README, AUTHORS, COPYING, and INSTALL files.
In addition, the file
<a href="../UWCopy040507.html" target="_top"><span style='white-space: nowrap'>UWCopy040507.html</span></a>

which contains the University of Washington's copyright
policy (see Section 2) was added to the distribution.

<br/>
<br/>
<b><big><a name="06-24" id="06-24">06-24</a></big></b>
<br/>
The <code><font color="blue">List2Vector</font></code> 
<a href="exampleutility.xml" target="_top"><span style='white-space: nowrap'>example&#xA0;utility</span></a>
 is no longer used and has
been removed.

<br/>
<br/>
<b><big><a name="06-18" id="06-18">06-18</a></big></b>
<br/>
CppAD is now supported by Microsoft Visual C++ version 7 or higher.
The version 6 project files
<code><font color="blue"></font></code><i><span style='white-space: nowrap'>*</span></i><code><font color="blue"><span style='white-space: nowrap'>.dsw</span></font></code> and <code><font color="blue"></font></code><i><span style='white-space: nowrap'>*</span></i><code><font color="blue"><span style='white-space: nowrap'>.dsp</span></font></code> 
have been replaced by the version 7 project files
<code><font color="blue"></font></code><i><span style='white-space: nowrap'>*</span></i><code><font color="blue"><span style='white-space: nowrap'>.sln</span></font></code> and <code><font color="blue"></font></code><i><span style='white-space: nowrap'>*</span></i><code><font color="blue"><span style='white-space: nowrap'>.vcproj</span></font></code>.

<br/>
<br/>
<b><big><a name="06-14" id="06-14">06-14</a></big></b>
<br/>
A new <a href="condexp.cpp.xml" target="_top"><span style='white-space: nowrap'>CondExp&#xA0;example</span></a>
 has been added and
the old <a href="condexp.xml" target="_top"><span style='white-space: nowrap'>CondExp</span></a>
 example has been moved to the 
<code><font color="blue">TestMore</font></code> directory (it is now only a test).


<br/>
<br/>
<b><big><a name="06-13" id="06-13">06-13</a></big></b>
<br/>
The changes made on 06-06 do not run under Microsoft Visual C++ version 6.0
(even though they are within the C++ standard).
Preliminary testing under version 7 indicates that Microsoft
has fixed this problem in later versions of their C++ compiler.

<br/>
<br/>
<b><big><a name="06-06" id="06-06">06-06</a></big></b>
<br/>
Converted the routines
<a href="forward.xml" target="_top"><span style='white-space: nowrap'>Forward</span></a>
 and <a href="reverse.xml" target="_top"><span style='white-space: nowrap'>Reverse</span></a>
 to allow for any
<a href="simplevector.xml" target="_top"><span style='white-space: nowrap'>SimpleVector</span></a>
 instead of just <code><font color="blue">CppADvector</font></code>.
In addition, separated the syntax of the function call
from the prototype for each of the arguments.
This was also done for all the easy to use <a href="drivers.xml" target="_top"><span style='white-space: nowrap'>Drivers</span></a>

as well as the <a href="independent.xml" target="_top"><span style='white-space: nowrap'>Independent</span></a>
 function and
the <a href="adfun.xml" target="_top"><span style='white-space: nowrap'>ADFun</span></a>
 constructor.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Add a section containing a list of
<a href="listallexamples.xml" target="_top"><span style='white-space: nowrap'>all&#xA0;the&#xA0;examples</span></a>
.

<br/>
<br/>
<b><big><a name="05-19" id="05-19">05-19</a></big></b>
<br/>
A significant improvement in speed was obtained by moving
the buffer extension to a separate function and then 
inline the rest of putting operators in the tape.
For example, 
here is part of the speed test output before this change:
<code><font color='blue'><pre style='display:inline'> 
	Tape of Expansion by Minors Determinant: Length = 350, Memory = 6792
	size = 5 rate = 230
	size = 4 rate = 1,055
	size = 3 rate = 3,408
	size = 2 rate = 7,571
	size = 1 rate = 13,642
</pre></font></code>

and here is the same output after this change:
<code><font color='blue'><pre style='display:inline'> 
	Tape of Expansion by Minors Determinant: Length = 350, Memory = 6792
	size = 5 rate = 448
	size = 4 rate = 2,004
	size = 3 rate = 5,761
	size = 2 rate = 10,221
	size = 1 rate = 14,734
</pre></font></code>

Note that your results will vary depending on operating system and machine.

<br/>
<br/>
<b><big><a name="05-18" id="05-18">05-18</a></big></b>
<br/>
Change name of <code><font color="blue">OdeControl</font></code> to <a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>

and improve its documentation.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Correct the syntax for the <a href="parvar.xml" target="_top"><span style='white-space: nowrap'>Parameter&#xA0;and&#xA0;Variable</span></a>
 
functions.


<br/>
<br/>
<b><big><a name="05-16" id="05-16">05-16</a></big></b>
<br/>
Change <a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
 to have method return its order instead
of having a separate argument to <code><font color="blue">OdeErrControl</font></code>.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Add the argument <i>scur</i> to <code><font color="blue">OdeErrControl</font></code>,
improve <code><font color="blue">OdeErrControl</font></code> choice of step size and documentation.


<br/>
<br/>
<b><big><a name="05-12" id="05-12">05-12</a></big></b>
<br/>
Using profiling, the 
<a href="ad_binary.xml" target="_top"><span style='white-space: nowrap'>multiplication&#xA0;operator</span></a>
 was show to take a significant
amount of time. It was reorganized in order to make it faster.
The profiling indicated an improvement so that same change was made 
to the <a href="ad_binary.xml" target="_top"><span style='white-space: nowrap'>ad_binary</span></a>
 and <a href="compute_assign.xml" target="_top"><span style='white-space: nowrap'>compute_assign</span></a>
 operators.


<br/>
<br/>
<b><big><a name="05-06" id="05-06">05-06</a></big></b>
<br/>
The documentation for 
<a href="simplevector.xml" target="_top"><span style='white-space: nowrap'>SimpleVector</span></a>
 and <a href="nearequal.xml" target="_top"><span style='white-space: nowrap'>NearEqual</span></a>

were changed to use more syntax (what the user enters)
and simpler prototypes 
(the compiler oriented description of the arguments).
In addition, exercises were added at the end of the
<a href="simplevector.xml" target="_top"><span style='white-space: nowrap'>SimpleVector</span></a>
, <a href="cppad_vector.xml" target="_top"><span style='white-space: nowrap'>CppAD_vector</span></a>
, and <a href="nearequal.xml" target="_top"><span style='white-space: nowrap'>NearEqual</span></a>

documentation.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>There was a undesired divide by zero case in the file 
<code><font color="blue">TestMore/VecUnary.cpp</font></code> that just happened to work
in corresponding <a href="nearequal.xml" target="_top"><span style='white-space: nowrap'>NearEqual</span></a>
 check.
The <code><font color="blue">NearEqual</font></code> routine has been changed
to return false if either of the values being compared
is infinite or not a number.
In addition, the divide by zero has been removed from 
the <code><font color="blue">TestMore/VecUnary.cpp</font></code> test.



<br/>
<br/>
<b><big><a name="05-01" id="05-01">05-01</a></big></b>
<br/>
The doubly linked list was also removed from the <a href="vecad.xml" target="_top"><span style='white-space: nowrap'>VecAD</span></a>

internal data structure because this method of coding is simpler
and it makes it more like the rest of CppAD.

<br/>
<br/>
<b><big><a name="04-21" id="04-21">04-21</a></big></b>
<br/>
The profiling indicated that the destructor for an AD object was using a 
significant amount of time.
The internal data structure of an AD object had a doubly linked list
that pointed to the current variables and this was modified when
an AD object was destroyed.
In order to speed AD operations in general,
the internal data structure of an AD object has been changed so that
this list is no longer necessary (a tape id number is used in its place)
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>During the process above, the function <a href="parvar.xml" target="_top"><span style='white-space: nowrap'>Variable</span></a>
 was added.


<br/>
<br/>
<b><big><a name="04-20" id="04-20">04-20</a></big></b>
<br/>
Add <a href="installunix.xml#--with-Speed.profile" target="_top"><span style='white-space: nowrap'>profiling</span></a>

to the speed tests.

<br/>
<br/>
<b><big><a name="04-19" id="04-19">04-19</a></big></b>
<br/>
Remove an extra (not necessary) 
semi-colon from the file <code><font color="blue">cppad/local/Operator.h</font></code>.

<br/>
<br/>
<b><big><a name="03-26" id="03-26">03-26</a></big></b>
<br/>
The new routine <a href="odeerrcontrol.xml" target="_top"><span style='white-space: nowrap'>OdeErrControl</span></a>
 does
automatic step size control for the ODE solvers.

<br/>
<br/>
<b><big><a name="03-23" id="03-23">03-23</a></big></b>
<br/>
The routine <a href="rosen34.xml" target="_top"><span style='white-space: nowrap'>Rosen34</span></a>
 is an improved stiff integration method
that has an optional error estimate in the calling sequence.
You must change all your calls to <code><font color="blue">OdeImplicit</font></code>
to use <code><font color="blue">Rosen34</font></code> (but do not need to change other arguments
because error estimate is optional).

<br/>
<br/>
<b><big><a name="03-22" id="03-22">03-22</a></big></b>
<br/>
The routine <a href="runge45.xml" target="_top"><span style='white-space: nowrap'>Runge45</span></a>
 is an improved Runge-Kutta method
that has an optional error estimate in the calling sequence.
You must change all your calls to <code><font color="blue">OdeRunge</font></code>
to use <code><font color="blue">Runge45</font></code> (but do not need to change other arguments
because error estimate is optional).

<br/>
<br/>
<b><big><a name="03-09" id="03-09">03-09</a></big></b>
<br/>
Some extra semi-colons (empty statements)
were generating warnings on some compilers.
The ones that occurred after the macros
<code><font color="blue">CppADStandardMathBinaryFun</font></code>,
<code><font color="blue">CppADCompareMember</font></code>,
<code><font color="blue">CppADBinaryMember</font></code>, and
<code><font color="blue">CppADFoldBinaryOperator</font></code> have been removed.

<br/>
<br/>
<b><big><a name="03-04" id="03-04">03-04</a></big></b>
<br/>
An new multiple level of AD example <a href="mul_level.xml" target="_top"><span style='white-space: nowrap'>mul_level</span></a>
 was added.

<br/>
<br/>
<b><big><a name="03-01" id="03-01">03-01</a></big></b>
<br/>
An option that specifies error and warning 
<a href="installunix.xml#CompilerFlags" target="_top"><span style='white-space: nowrap'>flags</span></a>

for all the C++ compile commands,
was added to the
<a href="installunix.xml" target="_top"><span style='white-space: nowrap'>Unix&#xA0;installation&#xA0;instructions</span></a>
.


<br/>
<br/>
<b><big><a name="02-24" id="02-24">02-24</a></big></b>
<br/>
The routine <a href="lusolve.xml" target="_top"><span style='white-space: nowrap'>LuSolve</span></a>
 was split into <a href="lufactor.xml" target="_top"><span style='white-space: nowrap'>LuFactor</span></a>

and <a href="luinvert.xml" target="_top"><span style='white-space: nowrap'>LuInvert</span></a>
. This enables one to efficiently
solve equations where the matrix does not change
and the right hand side for one equation depends on the 
left hand side for a previous equation.
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>An extra requirement was added to the
<a href="simplevector.xml" target="_top"><span style='white-space: nowrap'>SimpleVector</span></a>
 template class.
There must be a typedef for <code><font color="blue">value_type</font></code>
which is the type of elements in the vector
<code><span style='white-space: nowrap'><br/>
<br/>
</span></code>Under Mandrake Linux 10.1,
some template friend declarations were failing because the corresponding
operations were not declared before being indicated as friends
(found by 
<a href="mailto:Jean-Pierre.Dussault@Usherbrooke.ca" target="_top"><span style='white-space: nowrap'>Jean-Pierre&#xA0;Dussault</span></a>
).
This has been fixed.

<br/>
<br/>
<b><big><a name="01-08" id="01-08">01-08</a></big></b>
<br/>
The <a href="erf.xml" target="_top"><span style='white-space: nowrap'>erf</span></a>
 function was added. 
The implementation of this function used conditional expressions
(<a href="condexp.xml" target="_top"><span style='white-space: nowrap'>CondExp</span></a>
) and some times the expression that was not
valid in a region caused division by zero.
For this reason, the check and abort on division by zero 
has been removed.



<hr/>Input File: omh/whats_new_05.omh

</body>
</html>