$Id: whats_new_07.omh 1659 2010-03-11 03:48:31Z bradbell $
/* --------------------------------------------------------------------------
CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-10 Bradley M. Bell

CppAD is distributed under multiple licenses. This distribution is under
the terms of the 
                    Common Public License Version 1.0.

A copy of this license is included in the COPYING file of this distribution.
Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
-------------------------------------------------------------------------- */

$begin whats_new_07$$
$spell
	omh
	tgz
	yyyymmdd
	isnan
	gcc
	executables
	makefiles
	tarballs
	autoconf
	Fadbad
	Sacado::Tay
	Dir
	Ginac
	xi
	Bool
	CppADvector
	inv
	namespace
	det_lu
	adouble
	Adolc
	op
	sqrt
	eps
	mega
	Kipp
	vcproj
	exp_apx
	Microsoft
	threadprivate
	gettimeofday
	ifndef
	Vec
	openmp
	dy
	automake
	makefile
	CppAD
	cygwin
	cppad.hpp
	config.h
	dd
	Adolc
	Taylor
$$

$section Changes and Additions to CppAD During 2007$$


$head Introduction$$
This section contains a list of the changes to CppAD during 2007
(in reverse order by date).
The purpose of this section is to
assist you in learning about changes between various versions of CppAD.

$head 12-29$$
License conversions missed the copyright message at the top
in the following special cases:
$code makefile.am$$, $code makefile.in$$, and
$code omh/license.omh$$.


$head 12-25$$
The $cref/install/$$ instructions have been improved.

$head 12-21$$
The $cref/--with-Documentation/InstallUnix/--with-Documentation/$$
option on the $code configure$$ command line caused an error on some
systems because it attempted to copy to many files.
This has been fixed by copying the directory instead of the individual files.

$head 12-08$$
By mistake, the documentation $cref/License/$$ statement
for the GPL distribution was the same as for the CPL distribution.
This has been fixed.

$head 12-05$$
Change the name of the spec file from
$syntax%cppad-%yyyymmdd%.spec%$$ to $code cppad.spec$$.

$head 12-04$$
Add the capability for the RPM spec file to use a different
prefix directory.

$head 12-03$$
This is the first version with the rpm spec file
$code cppad.spec$$.

$head 12-02$$
Add the $syntax%DESTDIR=%directory%$$ option on the 
$cref/make install/InstallUnix/make install/$$ command line.

$head 11-29$$
The $cref/std_math_ad/$$ function $code sqrt$$ did not link properly
when $italic Base$$ was $code AD<double>$$.
This has been fixed.

$head 11-23$$
The routines $code nan$$ and $code isnan$$ were failing 
for some systems because they use $code nan$$ and or $code isnan$$ 
as preprocessor symbols.
This has been fixed; see $cref/macros/nan/Include/Macros/$$.
In addition, the example and test $cref/nan.cpp/$$ has been added.

$head 11-18$$
Speed tests for $code tape_values$$ branch were not better than trunk,
so the good parts of that branch (but not all) were merged into the trunk.
$pre

$$
The interface specifications for
$cref/base type requirements/base_require/$$ have been changed so that
CppAD would compile with $code gcc 4.1.1$$
(which requires more definitions before use in template functions).
This changed of requirements is demonstrated by the
$cref/base_complex.hpp/$$ and $cref/base_adolc.hpp/$$ examples.
$pre

$$
The problem with newer C++ compilers requiring more definitions before use
also required the user to know about $code float$$ and $code double$$ 
definitions for the standard math 
functions in the CppAD namespace; see $cref/std_math_unary/$$.
$pre

$$
The $code example/test_one.sh$$ and $code test_more/test_one.sh$$
scripts were modified so that one only need specify the test file name
(does not also need the test routine name). Some of the test routine
declarations were changed from $syntax//name/()/$$ to
$syntax//name/(void)/$$ to make this possible.
$pre

$$
The program $code test_more/test_more$$ was changed to always
report the memory leak test results (same as $code example/example$$).
$pre

$$
The $cref/PrintFor/$$ function was putting an unused variable in the tape.
This has been fixed.



$head 11-06$$
Added the $code -DRAD_EQ_ALIAS$$ compiler flag to the 
$cref/Sacado speed tests/speed_sacado/$$.
In addition, compiler flag documentation was included for
$cref/Sacado/speed_sacado/C++ Compiler Flags/$$ and 
all the other speed tests.

$head 11-05$$
MS project files have been added for running the
$cref/cppad/InstallWindows/CppAD Speed Test/$$ and
$cref/double/InstallWindows/Double Speed Test/$$ 
speed tests.

$head 11-04$$
The $code cppad/config.h$$ file was not compatible with the 
$cref/Windows install procedure/InstallWindows/$$ and 
the Windows project's could not find a certain include file.
This has been fixed in the definition of; see
$cref/Windows test vector/test_vector/MS Windows/$$.
$pre

$$
The $cref/unix install/InstallUnix/$$ procedure has been modified
so that the one configure flag
$code --with-Speed$$
builds all the possible executables related to the speed testing.

$head 11-03$$
Improve the $cref/speed_main/$$ documentation and output
(as well as the title for other sections under $cref/speed/$$).
$pre

$$
The subversion copy of the $cref/configure/InstallUnix/Configure/$$ script 
was not executable. 
This has been fixed.

$head 11-02$$
The instructions for downloading the current version using 
$cref/subversion/$$
have changed.
The user should now directly edit the file
$codep
	trunk/configure
$$
in order to set the correct date for the installation
and to build the corresponding documentation.
$pre

$$
The $cref/speed/$$ section has been slightly reorganized
(the main program and utilities have been separated).
$pre

$$
Add $cref/speed_double/$$ for testing the speed of evaluating
functions in $code double$$ as apposed to gradients using AD types.

$head 11-01$$
The instructions for downloading the current version using subversion
have changed.
The user must now execute the command
$codep
	./build.sh version
$$
in order to set the correct version number for her (or his) installation.
$pre

$$
Add the return status for all the correctness tests
to the documentation; see $cref/make test/InstallUnix/make test/$$. 

$head 10-30$$
The download instructions did not update current version number
and this broke the links to the current tarballs.
This has been fixed.
$pre

$$
The documentation for $cref/det_by_minor/$$ and $cref/det_by_lu/$$
has been improved.
The order of the elements in $cref/det_of_minor/$$ has been
corrected (they were transposed but this did not really matter
because determinants of transposes are equal). 
$pre

$$
The makefiles in the distribution have been changed so that
one can run configure from a directory other than the distribution directory.

$head 10-27$$
A $cref/subversion/$$ method
for downloading CppAD has been added.
$pre

$$
The installation was broken on some systems because the
$cref/configure/InstallUnix/Configure/$$ command tried to run
the $code autoconf$$ and $code automake$$ programs.
This has been fixed by adding
$code AM_MAINTAINER_MODE$$ to the $code autoconf$$ input file.
$pre

$$
Extend the $cref/subversion/$$ methods to include a full installation
and old versions.

$head 10-23$$
The $cref/compiler flags/InstallUnix/CompilerFlags/$$ environment variable
has been changed from $code CPP_ERROR_WARN$$ to $code CXX_FLAGS$$.
$pre

$$
The command $code configure --help$$ now prints a description
of the environment variables
$code ADOLC_DIR$$,
$code FADBAD_DIR$$,
$code SACADO_DIR$$,
$code BOOST_DIR$$,
and
$code CXX_FLAGS$$.
In addition, if the environment variables
$code POSTFIX_DIR$$ or $code CPP_ERROR_WARN$$ are used,
an message is printed saying that are not longer valid.


$head 10-22$$
The correctness checks and speed test wrappers were moved 
from the individual package directories to $cref/speed_main/$$.
This way they do not have to be reproduced for each package.
This makes it easier to add a new package,
but it requires the prototype for 
$syntax%compute_%test_name%$$ to be the same for all packages.
$pre

$$
The $href%http://trilinos.sandia.gov/packages/sacado/%Sacado%$$
package was added to the list of $cref/speed/$$ tests.
In addition, the discussion about how to run each of the
speed tests was corrected to include the $italic seed$$ argument.
$pre

$$
The $italic PostfixDir$$ option
was removed on $cref/2006-12-05/whats_new_06/12-05/$$ but 
it was not removed from the 
$cref/configure/InstallUnix/Configure/$$
documentation.
This has been fixed.
$pre

$$
The routine $cref/CheckSimpleVector/$$ was changed.
It used to require conversion of the form
$syntax%
	%Scalar%(%i%)
%$$
where $italic i$$ was $code 0$$ or $code 1$$.
This does not work with when $italic Scalar$$ is
$code Sacado::Tay::Taylor<double>$$.
This requirement has been changed 
(see $cref/restrictions/CheckSimpleVector/Restrictions/$$)
to support of
$syntax%
	%x% = %i%
%$$
where $italic x$$ has type $italic Scalar$$ 
and $italic i$$ has type $code int$$.
$pre

$$
Fix include directives in $cref/speed_fadbad/$$ programs
$code det_lu$$, $code det_minor$$, and $code poly$$,
to use $code FADBAD++$$ instead of $code Fadbad++$$ directory.
$pre

$$
Add $code ADOLC_DIR$$, $code FADBAD_DIR$$, $code SACADO_DIR$$,
and $code BOOST_DIR$$
to the $cref/configure/InstallUnix/Configure/$$ help string.


$head 10-16$$
Add $italic seed$$ argument and
improve $cref/speed_main/$$ documentation.

$head 10-13$$
Fix the title in $cref/adolc_det_lu.cpp/$$.
Add the package name to each test case result printed by
$cref/speed_main/$$.

$head 10-05$$
Added and example using complex calculations for a 
function that is not complex differentiable ($cref/not_complex_ad.cpp/$$).

$head 10-02$$ 
Extend the $cref/pow/$$ function to work for any case where one argument
is $syntax%AD<%Base%>%$$ and the other is $code double$$ 
(as do the binary operators).

$head 09-06$$
If the $cref/method.step/OdeErrControl/Method/step/$$ function returned
$code nan$$ (not a number),
it was possible for $cref/OdeErrControl/$$ to drop into an infinite loop.
This has been fixed.

$head 08-09$$
Let user detect and handel the case where an ODE initial vector $italic xi$$
contains  not a number $code nan$$
(see $cref/Runge45/$$, $cref/Rosen34/$$, and $cref/OdeErrControl/$$).
$pre

$$
Use the $code ||$$ operation instead of $code |$$
operator in the $code nan$$ function 
(The Ginac library seems to use an alias for the type $code bool$$ and
does not have $code |$$ defined for this alias).
$pre

$$
The file $code test_more/ode_err_control.cpp$$ was using the 
wrong include file name since the change on 08/07. 
This has been fixed.

$head 08-07$$
Sometimes an ODE solver takes to large a step and this results
in invalid values for the variables being integrated.
The ODE solvers $cref/Runge45/$$ and $cref/Rosen34/$$ have been 
modified to abort
and return $cref/nan/$$ when it is returned by the differential
equation evaluation.
The solver $cref/OdeErrControl/$$ have been modified to try smaller steps 
when this happens. 
$pre

$$
Fix an $cref/Sequence Constructor/FunConstruct/Sequence Constructor/$$
referenced to $code Dependent$$ in documentation
(was using the $cref/FunDeprecated/$$ one argument syntax).
$pre

$$
Add comment about mixing debug and non-debug versions of
CppAD in $cref/TrackDelVec/TrackNewDel/TrackDelVec/$$ error message.


$head 07-30$$
$code CppADCreateBinaryBool$$ and $code CppADCreateUnaryBool$$
have been replaced by $code CPPAD_BOOL_BINARY$$ and
$code CPPAD_BOOL_UNARY$$ respectively.
In addition, the $cref/WishList/$$ item for conversion
of all preprocessor macros to upper case been completed and removed.

$head 07-29$$
The preprocessor macros 
$code CppADUsageError$$ and $code CppADUnknownError$$
have been replaced by $code CPPAD_ASSERT_KNOWN$$ and
$code CPPAD_ASSERT_UNKNOWN$$ respectively.
The meaning for these macros 
has been included in the $cref/cppad_assert/$$ section.
In addition, the $italic known$$ argument to $cref/ErrorHandler/$$
was wrong for the unknown case.
$pre

$$
The $cref/WishList/$$ item 
for conversion of all preprocessor macros to upper case
has been changes (to an item that was previous missing).

$head 07-28$$
The preprocessor macro $code CPPAD_DISCRETE_FUNCTIOIN$$ was defined
as a replacement for $code CppADCreateDiscrete$$ 
which has been deprecated.

$head 07-26$$
Merge in changes made in $code branches/test_vector$$.

$subhead 07-26$$
Change all occurrences of $code CppADvector$$,
in the files $syntax%test_more/%*%.cpp%$$ and $syntax%speed/%*%/%*%.cpp%$$,
where changed to $code CPPAD_TEST_VECTOR$$.
All occurrences of the $code CppADvector$$ in the documentation
were edited to reflect that fact that it has been deprecated.
The documentation index and search for
deprecated items has been improved.

$subhead 07-25$$
Deprecate the preprocessor symbol $code CppADvector$$ 
and start changing it to
$small $cref/CPPAD_TEST_VECTOR/test_vector/$$ $$.
$pre

$$
Change all occurrences of $code CppADvector$$,
in the $syntax%example/%*%.cpp%$$ files,
to $code CPPAD_TEST_VECTOR$$.

$head 07-23$$
The $cref/TrackNewDel/$$ macros
$code CppADTrackNewVec$$,
$code CppADTrackDelVec$$, and
$code CppADTrackExtend$$ have been deprecated.
The new macros names to use are 
$code CPPAD_TRACK_NEW_VEC$$,
$code CPPAD_TRACK_DEL_VEC$$, and
$code CPPAD_TRACK_EXTEND$$ respectively.
This item has been removed from the 
$cref/software guidelines/WishList/Software Guidelines/$$
section of the wish list.
$pre

$$
The member variable
$cref/software guideline/WishList/Software Guidelines/$$ 
wish list item has be brought up to date.

$head 07-22$$
Minor improvements to the $cref/ode_taylor_adolc.cpp/$$ example.

$head 07-21$$
The $cref/openmp_run.sh/$$ example programs
$code example_a11c.cpp$$, 
$code multi_newton.cpp$$, and 
$code sum_i_inv.cpp$$
have been changed so that they run on more systems
(are C++ standard compliant).
$pre

$$
The $code IdenticalEqual$$ function,
in the $cref/base_require/$$ specification,
was changed to $code IdenticalEqualPar$$
(note the $cref/warning/base_require/Warning/$$ in the 
$italic Base$$ requirement specifications).
$pre

$$
Implementation of the $cref/base requirements/base_require/$$ for complex types
were moved into the $cref/base_complex.hpp/$$ example.



$head 07-20$$
The download for CppAD was still broken.
It turned out that the copyright message was missing from the file
$cref/base_adolc.hpp/$$ and this stopped the creation of the download files.
This has been fixed.
In addition, the automated testing procedure has been modified so 
that missing copyright messages and test program failures will
be more obvious in the test log.

$head 07-19$$
The download for CppAD has been broken since the example 
$code ode_taylor_adolc.cpp$$ was added because the
$code example/example$$ program was failing.
This has been fixed.

$head 07-18$$
A realistic example using Adolc with CppAD
$cref/ode_taylor_adolc.cpp/$$ was added.
The documentation for $cref/TrackNewDel/$$ was improved.

$head 07-14$$
Add a discussion at the beginning of
$cref/ode_taylor.cpp/$$ example
(and improve the notation used in the example).

$head 07-13$$
Separate the include file
$cref/base_adolc.hpp/$$ 
from the $cref/mul_level_adolc.cpp/$$ example 
so that it can be used by other examples.

$head 06-22$$
Add $cref/mul_level_adolc.cpp/$$, an example that demonstrates using
$code adouble$$ and for the $cref/Base/base_require/$$ type.
$pre

$$
The $cref/get_started/InstallUnix/Introduction/Getting Started/$$ 
example did not build when
the $code --with-Introduction$$ and 
$code BOOST_DIR$$ options were included on the 
$cref/configure/InstallUnix/Configure/$$ command line.
In fact, some of the $cref/speed/$$ tests also had compilation errors
when $code BOOST_DIR$$ was include in the configure command.
This has been fixed.
$pre

$$
There was a namespace reference missing in the files
that could have caused compilation errors in the files
$code speed/cppad/det_minor.cpp$$ and
$code speed/cppad/det_lu.cpp$$.
This has been fixed.

$head 06-20$$
The MS project 
$code test_more/test_more.vcproj$$ would not build because
the file $code test_more/fun_check.cpp$$ was missing;
this has been fixed. 
In addition, 
fix warnings generated by the MS compiler when compiling the 
$code test_more/test_more.cpp$$ file.
$pre

$$
Add a section defining the $cref/Base type requirements/base_require/$$.
Remove the $italic Base$$ type restrictions from the $cref/Faq/$$.
Make all the prototype for the default Base types agree with
the specifications in the Base type requirements.
$pre

$$
Fix the description of the $code tan$$ function in 
$cref/std_math_ad/$$.


$head 06-14$$
The routine $cref/Rosen34/$$ ( $cref/Runge45/$$ ) had a division
of a $code size_t$$ ( $code int$$ ) by a $italic Scalar$$,
where $italic Scalar$$ was any $cref/NumericType/$$.
Such an operation may not be valid for a particular numeric type.
This has been fixed by explicitly converting the 
$code size_t$$ to an $code int$$,
then converting the $code int$$ to a $italic Scalar$$,
and then preforming the division.
(The conversion of an $code int$$ to any numeric type must be valid.)

$head 05-26$$
If the $italic Base$$ type is not $code double$$,
the $cref/computed assignment/compute_assign/$$ operators did not
always allow for $code double$$ operands. For example,
if $italic x$$ had type $code AD< AD<double> >$$
$syntax%
	%x% += .5;
%$$
would slice the value $code .5$$ to an $code int$$
and then convert it to an $code AD< AD<double> >$$.
This has been fixed.
$pre

$$
This slicing has also been fixed in the 
$cref/assignment/ad_copy/Syntax/Assignment/$$ operation.
In addition, the assignment and copy operations
have been grouped together in the documentation; see $cref/ad_copy/$$.


$head 05-25$$
Document usage of $code double$$ with
binary arithmetic operators,
and combine all those operators into one section ($cref/ad_binary/$$).
$pre

$$
The documentation for all the $cref/computed assignment/compute_assign/$$
operators has been grouped together.
In addition, a 
computed assignment wish list item has been added
(it was completed and removed with the 
$cref/05-26/whats_new_07/05-26/$$ update.)


$head 05-24$$
Suppose that $italic op$$ is a binary operation and we have
$syntax%
	%left% %op% %right%
%$$
where one of the operands was $code AD< AD<double> >$$ and 
the other operand was $code double$$.
There was a bug in this case that caused the $code double$$
operand to be converted to $code int$$ before
being converted to $code AD< AD<double> >$$.
This has been fixed.

$head 05-22$$
The Microsoft 
$cref/examples and testing/InstallWindows/Examples and Testing/$$ 
project file $code example/example.vcproj$$ 
was missing a reference to the
source code file $code example/reverse_two.cpp$$.
This has been fixed.  

$head 05-08$$
Reverse mode does not work with the 
$cref/pow/$$ function when the base is less than or equal zero
and the exponent is an integer.
For this reason, the $cref/pow_int/$$ function 
is no longer deprecated (and is used by CppAD when the exponent
has type $code int$$).


$head 05-05$$
Third and fourth order derivatives were included in the
routine $code test_more/sqrt.cpp$$ that tests square roots.
$pre

$$
The return value descriptions were improved for the introduction
examples:
$cref/exp_2_for1/exp_2_for1/Return Value/$$, 
$cref/exp_2_for2/exp_2_for2/Return Value/$$, 
$cref/exp_eps_for1/exp_eps_for1/Return Value/$$, and
$cref/exp_eps_for2/exp_eps_for2/Return Value/$$.
$pre

$$
The summation index in $cref/SqrtReverse/$$ was changed from
$latex k$$ to $latex \ell$$ to make partial differentiation
with respect to $latex z^{(k)}$$ easier to understand.
In addition, a sign error was corrected near the end of 
$cref/SqrtReverse/$$.
$pre

$$
The dimension for the notation $latex X$$ in 
$cref/reverse_identity/$$ was corrected.
$pre

$$
The word mega was added to the spelling exception list for
$cref/openmp_run.sh/$$.

$head 04-19$$
Improve connection from $cref/reverse_identity/$$ theorem
to $cref/reverse_any/$$ calculations.
$pre

$$
Improve the $cref/openmp_run.sh/$$ script. 
It now runs all the test cases at once in addition
to including multiple number of thread cases for each test. 
$pre

$$
Add the $cref/sum_i_inv.cpp/$$ OpenMP example case.
$pre

$$
There was a typo in the 
$cref/second order/ForwardAny/Second Order/$$ discussion
(found by Kipp Martin).
It has been fixed.


$head 04-17$$
Add a paragraph to $cref/reverse_identity/$$ explaining
how it relates to $cref/reverse_any/$$ calculations.
Add description of 
$cref/first/reverse_any/First Order/$$ and
$cref/second order/reverse_any/Second Order/$$ 
results in $cref/reverse_any/$$.

$head 04-14$$
Simplify the $cref/Reverse/$$ mode documentation by creating 
a separate $cref/reverse_two/$$ section for second order reverse,
making major changes to the description in $cref/reverse_any/$$,
and creating a third order example $cref/reverse_any.cpp/$$ for
reverse mode calculations.
$pre

$$
Improve the $cref/reverse_identity/$$ proof.

$head 04-11$$
Merge in changes made in $code branches/intro$$.

$subhead 04-11$$
Add $cref/exp_eps_rev2/$$ and its verification routine 
$cref/exp_eps_rev2.cpp/$$.

$subhead 04-10$$
Finished off $cref/exp_2_rev2/$$ and
added $cref/exp_2_rev2.cpp/$$ which verifies its calculations.
Added second order calculations to $cref/exp_2_cppad/$$.
Added $cref/exp_eps_for2/$$ and its verification routine.


$subhead 04-07$$
Added a preliminary version of $cref/exp_2_rev2/$$
(does not yet have verification or exercises).

$subhead 04-06$$
Fixed a problem with the Microsoft Visual Studio project file 
$code introduction/exp_apx/exp_apx.vcproj$$
(it did not track the file name changes of the form 
$code exp_apx/exp_2_for$$ to $code exp_apx/exp_2_for1$$ 
on 04-05).
$pre

$$
Added $cref/exp_2_for2/$$ to introduction.

$subhead 04-05$$
Use order expansions in introduction; e.g., the
$cref/second order expansion/exp_2_for2/Second Order Expansion/$$ 
for the $cref/exp_2/$$ example.

$head 03-31$$
Merge in changes made in $code branches/intro$$
and remove the corresponding Introduction item from the wish list:

$subhead 03-31$$
Create the a simpler exponential approximation in the $cref/introduction/$$
called $cref/exp_2/$$ which has a different program 
variable for each variable in the operation sequence.
$pre

$$
Simplify the $cref/exp_eps/$$ approximation using the
$latex v_1 , \ldots , v_7$$ notation so that variables directly
correspond to index in operation sequence (as with the $cref/exp_2/$$ 
example).

$subhead 03-30$$
The Microsoft project file $code introduction/exp_apx/exp_apx.vcproj$$
was referencing $code exp_apx_ad.cpp$$ which no longer exists.
It has been changed to reference $code exp_apx_cppad.cpp$$
which is the new name for that file.


$head 03-29$$
Fixed entries in this file where the year was mistakenly used for the month.
To be more specific, $syntax%07-%dd%$$ was changed to $syntax%03-%dd%$$
for some of the entries directly below.
$pre

$$
Corrected some places where $code CppAD$$ was used in stead of $code Adolc$$
in the $cref/adolc_poly.cpp/$$ documentation.
$pre

$$
Added an Introduction and 
$cref/Tracing/WishList/Tracing/$$ entry to the wish list.
(The Introduction item was completed on $cref/03-31/whats_new_07/03-31/$$.)

$head 03-20$$
$cref/Example A.1.1c/example_a11c.cpp/$$,
from the OpenMP 2.5 standards document,
was added to the tests that can be run using $cref/openmp_run.sh/$$.

$head 03-15$$
Included the changes from openmp branch
so that so CppAD does not use the OpenMP $code threadprivate$$ command
(some systems do not support this command).

$subhead 03-15$$
Add command line arguments to $cref/multi_newton.cpp/$$, and
modified $cref/openmp_run.sh/$$ to allow for more flexible testing. 

$subhead 03-14$$
Fixed some Microsoft compiler warnings by explicitly converting from 
$code size_t$$ to $code int$$.
$pre

$$
In the Microsoft compiler case, the $code cppad/config.h$$ file had 
the wrong setting of $code GETTIMEOFDAY$$.
The setting is now overridden (and always false) when the 
$code _MSC_VER$$ preprocessor symbol is defined.
$pre

$$
Some minor changes were made in an effort to speed up the multi-threading case.

$subhead 03-13$$
Started a new openmp branch and created a version of CppAD 
that does not use the OpenMP $code threadprivate$$ command
(not supported on some systems).

$head 03-09$$
Included the changes from openmp branch
so that OpenMP can be used with CppAD,
see $cref/omp_max_thread/$$.
The changes
dated between $cref/02-15/whats_new_07/03-09/02-15/$$ and 03-28 below
were made in the openmp branch and transferred to the trunk on 03-09.


$subhead 03-28$$
The conditional include commands were missing on some include files; 
for example
$codep
	# ifndef CPPAD_BENDER_QUAD_INCLUDED
	# define CPPAD_BENDER_QUAD_INCLUDED
$$
was missing at the beginning of the $cref/BenderQuad/$$ include file.
This has been fixed.
$pre

$$
The $code speed_test$$ routines $cref/timing/speed_test/Timing/$$ was
changed to use $code gettimeofday$$ if it is available.
($code gettimeofday$$ measures wall clock time 
which is better in a multi-threading environment).
$pre

$$
Added the user multi-threading interface
$cref/omp_max_thread/$$ along with its examples 
which are distributed in the directory $code openmp$$.
$pre

$$
The $syntax%speed/%*%.hpp%$$ files have been moved to
$syntax%cppad/speed/%*%.hpp%$$ and the corresponding wish list
item has been removed.
$pre

$$ 
The multiple tapes with the same base type wish list item 
have been removed (it's purpose was multi-threading which
has been implemented).


$subhead 02-27$$
The $cref/speed/$$ include files are currently being distributed
above the $code cppad$$ include directory. 
A fix this wish list item has been added.
$pre

$$
Multiple active tapes required a lot of multi-threading access
management for the tapes. This was made simpler (and faster)
by having at most one tape per thread.


$subhead 02-22$$
The include command in the $cref/speed_test/$$ documentation was
$codep
	# include <speed/speed_test.hpp>
$$
but it should have been
$codep
	# include <cppad/speed_test.hpp>
$$
This has been fixed.

$subhead 02-17$$
An entry about $cref/optimizing/WishList/Optimization/$$ the operation
sequence in an $cref/ADFun/FunConstruct/$$ object was added.
$pre

$$
Change the argument syntax for $cref/Dependent/$$ and deprecate the 
$cref/old Dependent syntax/FunDeprecated/Dependent/$$.


$subhead 02-16$$
Added $syntax%VecAD<%Base%>%$$ as a valid argument type for the
$cref/Parameter and Variable/ParVar/$$ functions.
In addition, $cref/size_t indexing/VecAD/size_t Indexing/$$
is was extended to be allowed during taping so long as the
VecAD object is a parameter.


$subhead 02-15$$
Fixed the $code example/test_one.sh$$ script 
(it was using its old name $code one_test$$).

$head 02-06$$
The $cref BenderQuad$$ documentation was improved by adding the fact
that the $italic x$$ and $italic y$$ arguments to the $syntax%f%.dy%$$
member function are equal to the $italic x$$ and $italic y$$ arguments
to $code BenderQuad$$. Hence values depending on them can be stored
as private objects in $italic f$$ and need not be recalculated.

$head 02-04$$
The method for distributing the documentation needed to be
changed in the top level $code makefile.am$$ in order to
be compatible with automake version 1.10.

$head 02-03$$
The change on $cref/02-01/whats_new_07/02-01/$$ had a new, saved as a static
pointer, with no corresponding delete. 
This was not a bug, but it has been changed to avoid
an error message when using CppAD with 
$href%http://valgrind.org/%valgrind%$$.
$pre

$$
The change to the $code pow$$ function on
$cref/06-12-10/whats_new_06/12-10/$$ did not include the
necessary changes to the $cref/Sparsity/Sparse/$$ calculations.
This has been fixed.

$head 02-02$$
Fix minor errors and improve
$cref/profiling/InstallUnix/Profiling CppAD/$$ documentation.
Also change the problem sizes used for the $cref/speed/$$ tests.

$head 02-01$$
There seems to be a bug in the cygwin version of g++ version 3.4.4
with the -O2 flag whereby some static variables in static member functions 
sometimes do not get constructed before being used. This has been
avoided by using a static pointer and the new operator in cppad/local/ad.hpp.

$head 01-29$$
The copyright message was missing from some of the distribution files
for some new files added on $cref%06-12-15%whats_new_06%12-15%$$.
This resulted in the 
tarballs $syntax%%*%.tgz%$$ and $syntax%%*%.zip%$$
not existing for a period of time.
The automated tests have been extended so that this should not happen again.

$end

