lines 6-1095 of file: appendix/whats_new/06.xrst {xrst_begin whats_new_06 app} {xrst_spell aclocal apx autoconf automake avector delem determinants dw generalizing gprof kasper kristensen lagrangian macros makefile memcheck of of omh operands postfix recalculation romberg rpm speedtest subgroups tautschnig underquoted uninitialized usr valgrind yy yyyymmdd } Changes and Additions to CppAD During 2006 ########################################## mm-dd ***** 12-24 ===== Move ``exp_eps_ad`` to ``exp_eps_cppad`` and add exercises to the following sections: :ref:`exp_eps_rev1-name` , :ref:`exp_eps_cppad-name` . Add operation sequence indices to help track operations in :ref:`exp_eps_for0-name` , :ref:`exp_eps_for1-name` , :ref:`exp_eps_rev1-name` . 12-23 ===== Add exercises to the following sections: :ref:`get_started.cpp-name` , :ref:`exp_eps-name` , :ref:`exp_eps_for0-name` , and :ref:`exp_eps_for1-name` . 12-22 ===== Move :ref:`get_started.cpp-name` below the :ref:`introduction-name` directory. Move the exponential example to the subdirectory ``introduction/exp_apx`` and change the ``--with-Introduction`` unix configure option to build both the :ref:`get_started.cpp-name` and :ref:`exp_apx.cpp-name` example programs. (The ``--with-GetStarted`` configure command line option has been removed.) 12-21 ===== Add the :ref:`source code for Poly` to the documentation and include :ref:`Poly-name` in the in the :ref:`speed_utility-name` section. The :ref:`get_started.cpp-name` section has been moved into the :ref:`Introduction-name` and :ref:`get_started.cpp@Exercises` were added to that section. In addition some sections has switched position between the top level :ref:`user_guide-name` and the :ref:`appendix-name` . 12-19 ===== Reorganize so that the source code is below the corresponding routine in the documentation tree (instead of at the same level) for the following routines: :ref:`det_by_minor-name` , :ref:`det_grad_33-name` , :ref:`uniform_01-name` , :ref:`det_of_minor-name` , :ref:`det_by_lu-name` , :ref:`LuInvert-name` , :ref:`LuFactor-name` , :ref:`LuSolve-name` . Separate the specifications for the source in :ref:`speed_utility-name` and add cross reference to the following routine specification and implementations: :ref:`det_by_minor-name` , :ref:`det_grad_33-name` , :ref:`uniform_01-name` , :ref:`det_of_minor-name` , :ref:`det_by_lu-name` , :ref:`LuInvert-name` , :ref:`LuFactor-name` , :ref:`LuSolve-name` . 12-18 ===== Make the :ref:`speed-name` source code easier to read. Change the speed test output name ``det_poly`` to ``poly`` (as it should have been). 12-17 ===== The speed test :ref:`det_grad_33-name` was missing its documentation (this has been fixed). In addition, the titles and indexing for the speed test documentation has been improved. Add to the specifications that each repeated test corresponds to a different matrix in :ref:`det_lu` and :ref:`det_minor` . In addition, modify all the speed tests so that they abide by this rule. Change some references from the deprecated name ``CppAD.h`` to new name ``cppad.hpp`` . Change :ref:`adolc_det_minor.cpp-name` and :ref:`cppad_det_minor.cpp-name` to tape once and reuse operation sequence for each repeated matrix in the test. Add the :ref:`poly` speed test for all three packages. In addition, correct a missing include in :ref:`poly-name` routine. 12-15 ===== The wish list item to simplify and better organize the speed tests been completed: .. csv-table:: :widths: auto :ref:`speed/`,template functions that are speed tested ``speed/example``,example usage of speed template functions :ref:`speed/adolc`,Adolc drivers for the template functions :ref:`speed/cppad`,CppAD drivers for the template functions :ref:`speed/fadbad`,Fadbad drivers for the template functions speed/profile,profiling version of CppAD drivers 12-13 ===== Next step for the speed wish list item: remove ``speed_cppad`` from the documentation and replace it by ``speed/cppad`` , see :ref:`speed_cppad-name` for the new CppAD speed test routines. 12-12 ===== Started the speed wish list item by move the ``adolc`` director to ``speed/adolc`` and ``fadbad`` to ``speed/fadbad`` . 12-11 ===== Started the speed wish list item by creating the ``speed/example`` directory and moving the relevant examples from ``example/`` * . ``cpp`` and ``speed_example/`` * . ``cpp`` to ``speed/example/`` * . ``cpp`` . In addition, the relevant include files have been moved from ``example/`` * . ``hpp`` to ``speed/`` * . ``hpp`` . A new :ref:`speed_test-name` routine was added to the library. 12-10 ===== The :ref:`pow-name` function was changed to be a an ``AD`` < *Base* > :ref:`atomic_base` operation. This function used to return a ``nan`` if *x* is negative because it was implemented as ``pow`` ( *x* , *y* ) = ``exp`` ( ``log`` ( *x* ) * *y* ) This has been fixed so that the function and its derivatives are now calculated properly when *x* is less than zero. The :ref:`pow-name` documentation was improved and the :ref:`pow.cpp-name` example was changed to test more cases and to use the same variable names as in the documentation. 12-09 ===== A speed wish list item was added to the wish list. The prototype for ``int`` arguments in binary operations (for example :ref:`addition` ) was documented as ``const int &`` but was actually just plain ``int`` . This has been fixed. (Later changed to ``double`` .) 12-07 ===== Fix bug in the subversion installation instructions; see `bug report `_. The some of the automatically generated ``makefile.in`` files had an improper license statement in the GPL license version. This has been fixed. 12-05 ===== Add the unix installation --with_Documentation option and remove the *postfix_dir* option. Create a fixed :ref:`whats_new-name` section above the section for each particular year. Also improve the CppAD distribution ``README`` file. 12-03 ===== The include file directory ``CppAD`` was changed to be all lower case; i.e., ``cppad`` . If you are using a Unix system, see :ref:`include_deprecated-name` . This completes the following :ref:`wish_list-name` items (which were removed): #. File and directory names should only contain lowercase letters, numbers underscores and possibly one period. The leading character must be alphabetic. #. C++ header files should have the ``.hpp`` extension. 12-02 ===== Put explanation of version numbering in the download instructions. Correct some file name references under the Windows heading in :ref:`speed_cppad-name` . 12-01 ===== All of the ``Makefile.am`` and ``Makefile`` files were changed to lower case; i.e., ``makefile.am`` and ``makefile`` . Fix compiler warning while compiling ``cppad/RombergOne/`` (mistake occurred during :ref:`11-20` change). 11-30 ===== Cygwin packages, and other system packages, should not have a dash in the version number. See `cygwin package file naming `_ or, to quote the `rpm file naming convention `_ *The only restriction placed on the version is that* *it cannot contain a dash "-".* As per the acceptable package naming conventions for cygwin, CppAD version numbering has be changed from *yy* ``-`` *mm* ``-`` *dd* format to *yyyymmdd* ; i.e. ``cppad-06-11-30`` was changed to ``cppad-20061130`` . 11-29 ===== There was a problem using :ref:`RombergOne-name` with floating point types other than ``double`` . This has been fixed. 11-28 ===== The :ref:`installation` download files were not being built because ``Makefile.am`` referenced ``Doc`` when it should have referenced ``doc`` . This has been fixed. 11-23 ===== A Version Numbering entry was added to the :ref:`wish_list-name` (this was completed on :ref:`whats_new_06@mm-dd@11-30` ). 11-18 ===== The example routine that computes determinants using expansion by minors ``DetOfMinor`` was changed to :ref:`det_of_minor-name` , in preparation for more formal speed comparisons with other packages. To be specific, its documentation was improved, its dependence on the rest of CppAD was removed (it no longer includes CppAD.h ). 11-12 ===== The :ref:`general.cpp-name` and ``test_more/test_more.cpp`` programs were changed to print out the number of tests that passed or failed instead of just "All the tests passed" or "At least one of the tests failed". The windows project files for examples and testing should have been changes to use lower case file names on as part of the 11-08 change below. This has been fixed. 11-08 ===== Move the ``Example`` directory to ``example`` and change all its files to use lower case names. 11-06 ===== Move the ``TestMore`` directory to ``test_more`` and change all its files to use lower case names. 11-05 ===== Remove references in the :ref:`speed_cppad-name` tests to the ``Memory`` and ``Size`` functions because they have been :ref:`deprecated` . Correct some references to ``var_size`` that should have been :ref:`fun_property@size_var` . 11-04 ===== Put text written to standard output in the documentation for the :ref:`get_started.cpp` and ``print_for.cpp`` examples. (Now documentation can be built from a subversion checkout with out needing to execute automake.) The ``PrintFor.cpp`` and ``speedtest.cpp`` examples were missing in :ref:`list_all_examples-name` (which has been fixed). Move the ``Speed`` directory to ``speed`` and change all its files to use lower case names. 11-02 ===== The ``print_for`` directory was referenced as ``PrintFor`` in the root CppAD ``Makefile.am`` this has been fixed. The documentation for the Adolc helper routines ``AllocVec`` and ``AllocMat`` were not being included. This has been fixed. Move the ``GetStarted`` directory to ``get_started`` and change all its files to use lower case names. 11-01 ===== Move the ``PrintFor`` directory to ``print_for`` and change all its files to use lower case names. 10-31 ===== Move the ``SpeedExample`` directory to ``speed_cppad_example`` and change all its files to use lower case names. 10-29 ===== Move the ``Adolc`` directory to ``adolc`` and change all its files to use lower case names. Change all the file in the ``omh`` directory to use lower case names. The file ``Makefile.am`` in the distribution directory had the CPL copyright message in the GPL version. This has been fixed. 10-28 ===== The copyright message in the script files ``example/OneTest`` and ``TestMore/OneTest`` were GPL (in the CPL distribution). This has been fixed by moving them to ``example/OneTest.sh`` and ``TestMore/OneTest.sh`` so that the distribution automatically edits the copyright message. 10-27 ===== Change :ref:`hes_lagrangian.cpp-name` example so that it computes the Lagrangian two ways. One is simpler and the other can be used to avoid re-taping operation sequence. 10-26 ===== Change :ref:`hes_lagrangian.cpp-name` example so that it modifies the independent variable vector between the call to :ref:`Independent-name` and the ``ADFun`` < *Base* > :ref:`constructor` . 10-25 ===== A subversion install procedure was added to the documentation. Fix definition of preprocessor symbol ``PACKAGE_STRING`` in ``Speed/Speed.cpp`` (broken by change on 10-18). Added the example :ref:`hes_lagrangian.cpp-name` which computes the Hessian of a Lagrangian. 10-18 ===== Document and fix possible conflicts for :ref:`preprocessor symbols` that do not begin with ``CppAD`` or ``CPPAD_`` . Include a default value for the file ``cppad/config.h`` in the subversion repository. 10-16 ===== Fix bug when using :ref:`OdeErrControl-name` with the type ``AD< AD >`` . 10-10 ===== Add the :ref:`Var2Par-name` function so it is possible to obtain the :ref:`Value-name` of a variable. Move the ``Discrete.cpp`` example to :ref:`tape_index.cpp-name` . Fix the Microsoft project file so that the Windows install examples and testing works properly (it was missing the :ref:`stack_machine.cpp-name` example). 09-30 ===== These changes were grouped together because it took a while for Coin-Or to review the dual licensing version and because it was not possible to get the nightly build changed: #. Change shell scripts to use \*.sh extension. #. Two versions, one with CPL and other with GPL license. #. Change subversion version of CppAD from GPL to CPL copyright. #. Change all files in cppad/local to use lower case and \*.hpp extension. #. CppAD_vector.h was generating a warning on version 4 of gcc. This have been fixed. #. Change the preprocessor ``# define`` commands in ``cppad/local/\*.hpp`` to use upper case names. #. Add the :ref:`stack_machine.cpp-name` example. 08-17 ===== Some error message occurred while executing :: valgrind --tool=memcheck example/example valgrind --tool=memcheck TestMore/TestMore These were not really bugs, but they have been fixed to avoid this conflict between CppAD and `valgrind `_. 07-14 ===== Make some improvements were made to the :ref:`Introduction-name` , :ref:`exp_eps.hpp-name` and :ref:`exp_eps_rev1-name` sections. 07-12 ===== Use a drop down menu for the navigation links, instead of a separate frame for the navigation links, for each section in the documentation. 06-29 ===== Newer versions of the gcc compiler generated an error because :ref:`erf-name` was using :ref:`CondExp-name` before it was defined. This was found by Kasper Kristensen and his fix has been included in the CppAD distribution. 06-22 ===== The :ref:`ADFun-name` operation *f* ( *x* , *y* ) no longer executes a zero order :ref:`Forward-name` operation when a new operation sequence is stored in *f* . In addition, the syntax for this operation was changed to *f* . ``Dependent`` ( *y* ) (see :ref:`Dependent-name` ). {xrst_comment ------------------------------------------------------ } 06-19 ===== The changes listed under 06-17 and 06-18 were made in the branches/ADFun branch of the CppAD subversion repository. They did not get merged into the trunk and become part of the distribution until 06-19. This accomplished the following goal, which was removed from the :ref:`wish_list-name` : "We would like to be able to erase the function values so that :ref:`ADFun-name` objects use less memory. We may even want to erase the AD operation sequence so that :ref:`ADFun-name` objects use even less memory and can be used for a subsequent AD operation sequence." #. 06-17: Added :ref:`capacity_order-name` which can be used to control the amount of memory used to store :ref:`Forward-name` results. Also :ref:`deprecated` ``taylor_size`` , and defined :ref:`size_order-name` in its place. #. 06-18: Added the :ref:`ADFun default constructor` and the ability to :ref:`store a new operation sequence` in an ``ADFun`` object with out having to use ``ADFun`` pointers together with ``new`` and ``delete`` . {xrst_comment ------------------------------------------------------ } 06-17 ===== The location where the distribution files are stored has changed and this broke the Download Current Version links for the unix and windows installation. This has been fixed. The compiling instructions for the :ref:`speed_cppad-name` routines have been improved. The :ref:`Value-name` function has been extended to allow for :ref:`glossary@Parameter` arguments even if the corresponding tape is in the Recording state. The :ref:`BenderQuad-name` documentation and example have been improved by changing *Vector* to *BAvector* to emphasize that it corresponds to a vector of *Base* objects. 06-15 ===== Change :ref:`BenderQuad-name` to use *Base* instead of ``AD`` < *Base* > where every possible. This allows for more calculations to be done in the base type; i.e., is more efficient. 06-09 ===== Add a size check (size one) for the :ref:`function value argument, g` in ``BenderQuad`` . 06-07 ===== Some major changes were made to the notation in :ref:`get_started.cpp-name` (to make it easier to start using CppAD). In the :ref:`Introduction-name` example, :math:`exp_eps` was changed to :math:`{\rm exp\_eps}`. 06-05 ===== Change :ref:`BenderQuad-name` :math:`F_y (x, y)` to :math:`H(x,y)` so applies in a more general setting. This was another change to the ``BenderQuad`` interface, *fun* . ``fy`` was changed to *fun* . ``h`` . 06-02 ===== Newer versions of the gcc compiler generated a warning for possible use of an uninitialized pointer. This was found by Michael Tautschnig and his fix has been included in the CppAD distribution. 05-31 ===== The interface to :ref:`BenderQuad-name` has been changed. Now all the function evaluation routines are member functions of one class object. This makes it easy for them to share common data. 05-29 ===== Change statement of command syntax to be in the same browser frame as the command documentation (for all the commands with a syntax statement). Now when a user links to a specific heading in a command's documentation, the syntax for that command is automatically included. Before the user needed to follow another link to see to the command syntax. 05-27 ===== Added :ref:`BenderQuad-name` for computing the Hessian of Bender's reduced objective function. Added special specifications for ``resize(0)`` to :ref:`CppAD_vector-name` . 05-03 ===== The g++ (GCC) 4.1.0 (Red Hat 4.1.0-3) compiler reported an error because certain functions were used before being defined (version 3.4.4 did not complain about this). This has been fixed. 04-29 ===== Change all of the example and test driver programs so that they return error codes; i.e., zero for no error and one for an error. Add more discussion and a reference for a ``gcc 3.4.4 -O2`` bug (since been removed). 04-28 ===== Improve the :ref:`get_started.cpp-name` example and move it so that it is visible at the too level of the documentation. 04-26 ===== The programs in :ref:`Introduction-name` have been converted to automated test that return true or false with the driver program :ref:`Introduction` . 04-25 ===== Add an :ref:`Introduction-name` section to the documentation (replaces old example that was part of the :ref:`Theory-name` section). 04-19 ===== A discussion was added near the end of the :ref:`FunCheck-name` documentation. And the cross references to the :ref:`CompareChange-name` discussion were changed to the FunCheck discussion. An operation sequence entry was added to the :ref:`wish_list-name` . 04-18 ===== The new definitions for :ref:`glossary@AD of Base` and :ref:`operation sequence` have been used throughout the documentation. Add the :ref:`FunCheck-name` section for checking that a sequence of operations is as intended. 04-17 ===== The documentation for :ref:`SpeedTest-name` and :ref:`Poly-name` was improved. Definitions were added for an atomic :ref:`glossary@Operation` and for an operation sequence being dependent and independent of the values of specific operands. The definition of AD sequence of operations was made abstract and moved to the glossary as :ref:`Type operation sequence` . 04-15 ===== The :ref:`mul_level-name` example was moved from :ref:`ADFun-name` to :ref:`General-name` . The documentation for :ref:`SpeedTest-name` was improved. 04-14 ===== Documentation and examples were improved for the following routines: :ref:`ForTwo-name` , :ref:`RevTwo-name` . In addition, the computation in ``RevTwo`` was made more efficient (it used to possibly calculate some first order partials that were not used). 04-13 ===== Documentation and examples were improved for the following routines: :ref:`Jacobian-name` , :ref:`ForOne-name` , :ref:`RevOne-name` , and :ref:`Hessian-name` . 04-08 ===== In the case where :ref:`fun_deprecated@use_VecAD` is true, the :ref:`ForSparseJac-name` calculation in only for the current independent variable values. In this case, the sparsity pattern can be (and has been) made more efficient; i.e., fewer true values (because it only applies to the current :ref:`forward_zero-name` ). The conversion from :ref:`VecAD@VecAD\::reference` to :ref:`AD-name` gave a compile error (this has been fixed). Code example for this fix :: VecAD V(1); AD zero = 0; V[zero] = 1.; static_cast< AD > ( V[zero] ); 04-06 ===== The :ref:`ForSparseJac-name` , :ref:`RevSparseJac-name` , :ref:`RevSparseHes-name` sparsity results are now valid for all independent variable values (if the AD operation sequence does no use any ``VecAD`` < *Base* > operands). In addition, the ``ForSparseJac`` , :ref:`RevSparseJac-name` and :ref:`RevSparseHes-name` documentation and examples were improved. The :ref:`useVecAD` member function was added to :ref:`ADFun-name` objects. The ``var_size`` member function was changed to :ref:`fun_property@size_var` (this is not backward compatible, but ``var_size`` was just added on :ref:`whats_new_06@mm-dd@04-03` ). 04-05 ===== The documentation and example for :ref:`CompareChange-name` were improved and moved to be part of the :ref:`Forward-name` section. 04-04 ===== The documentation and examples for :ref:`Reverse-name` were improved and split into :ref:`reverse_one-name` and :ref:`reverse_any-name` . 04-03 ===== Create separate sections for the :ref:`zero` and :ref:`forward_one-name` first order case of :ref:`Forward-name` mode. The ADFun :ref:`fun_deprecated@Size` member function has been deprecated (use :ref:`size_order-name` instead). The :ref:`Reverse-name` member function is now declared, and documented as, ``const`` ; i.e., it does not effect the state of the ADFun object. Change the examples that use :ref:`Reverse-name` to use the same return value notation as the documentation; i.e., ``dw`` . 04-02 ===== The member functions of :ref:`ADFun-name` that return properties of AD of *Base* :ref:`operation sequence` have been grouped into the :ref:`fun_property-name` section. In addition, the :ref:`fun_property.cpp-name` example has been added. The :ref:`CompareChange-name` function documentation was improved and moved to a separate section. Group the documentation for the :ref:`ADFun-name` member functions that evaluate functions and derivative values. This organization has since been changed. Remove the old ``Fun.cpp`` example and extend :ref:`independent.cpp-name` so that it demonstrates using different choices for the :ref:`SimpleVector-name` type. 04-01 ===== Move the :ref:`ADFun Constructor` to its own separate section, improve its documentation, and use :ref:`independent.cpp-name` for its example. The following member functions of :ref:`ADFun-name` have been :ref:`deprecated` : ``Order`` , ``Memory`` . The wish list entry for Memory usage was updated on 04-01. The request was implemented on :ref:`whats_new_06@mm-dd@06-19` and the entry was removed from the wish list. 03-31 ===== Add examples for the :ref:`Parameter, Variable` and :ref:`Independent-name` functions. Move the :ref:`con_dyn_var@Parameter` and :ref:`con_dyn_var@Variable` functions from the :ref:`ADFun-name` section to the :ref:`AD-name` section. In the examples for the :ref:`AD-name` sections, refer to the range space vector instead of the dependent variable vector because some of the components may not be :ref:`variables` . 03-30 ===== Move the :ref:`LuRatio-name` section below :ref:`lu_det_and_solve-name` . Move the definition of an AD of *Base* :ref:`operation sequence` from the glossary to the :ref:`AD-name` section. Improve the definition of tape state. Add mention of taping to :ref:`Erf-name` , :ref:`bool_fun-name` , :ref:`near_equal_ext-name` ,and :ref:`Pow-name` . Change the definition for :ref:`VecAD@VecAD\::reference` so that it stands out of the text better. 03-29 ===== Mention the :ref:`VecAD@VecAD\::reference` case in documentation and examples for :ref:`abs-name` , :ref:`atan2-name` , :ref:`erf-name` , and :ref:`pow-name` . Fix a bug derivative computation for ``abs`` ( *x* ) when *x* had type ``AD< AD >`` and *x* had value zero. Fix a bug using non-zero AD indices for :ref:`VecAD-name` vectors while the tape is in the empty state. Extend :ref:`erf-name` to include ``float`` , ``double`` , and ``VecAD`` < *Base* >:: ``reference`` . 03-28 ===== Mention the :ref:`VecAD@VecAD\::reference` case in documentation and examples for :ref:`unary_plus-name` , :ref:`unary_minus-name` , :ref:`ad_binary-name` , :ref:`compound_assign-name` , and :ref:`unary_standard_math-name` 03-27 ===== Extend and improve the :ref:`VecAD exceptions::reference@Exceptions>` . Mention the :ref:`VecAD@VecAD\::reference` case and generally improve :ref:`addition` documentation and examples. 03-26 ===== Improve documentation and examples for :ref:`VecAD-name` and change its element type from ``VecADelem`` < *Base* > to ``VecAD_reference`` < *Base* > (so that it looks more like :ref:`VecAD@VecAD\::reference` ). Mention the :ref:`VecAD@VecAD\::reference` case and generally improve :ref:`Value-name` , :ref:`ad_output-name` and :ref:`assignment` documentation and examples. Extend :ref:`Integer-name` and :ref:`PrintFor-name` to include the :ref:`VecAD@VecAD\::reference` case (and mention in documentation and examples). 03-24 ===== Move :ref:`VecAD-name` and :ref:`LuRatio-name` from the old ExtendDomain section to :ref:`AD-name` . 03-23 ===== Improve documentation and examples for :ref:`CondExp-name` and :ref:`Discrete-name` . Move both of these sections from ExtendDomain to :ref:`ADValued-name` . 03-22 ===== The documentation sections under :ref:`AD-name` have been organized into a new set of sub-groups. 03-18 ===== The documentation and example for :ref:`PrintFor-name` have been improved. The sections below :ref:`AD-name` in the documentation have been organized into subgroups. 03-17 ===== The documentation and examples have been improved for the following functions: :ref:`bool_fun-name` , and :ref:`near_equal_ext-name` . 03-16 ===== Improve the documentation and example for the :ref:`pow-name` function. This includes splitting out and generalizing the integer case :ref:`pow_int-name` . The copies of the ``atan2`` function were included in the CppAD namespace for the ``float`` and ``double`` types. 03-15 ===== Improve the introduction to CppAD on the top level page of the documentation. 03-11 ===== The file ``cppad/local/MathOther.h`` had a file name case error that prevented the documentation from building and tests from running (except under Cygwin which is not really case sensitive). This has been fixed. The term AD of *Base* :ref:`operation sequence` has been defined. It will be used to improve the user's understanding of exactly how an :ref:`ADFun-name` object is related to the C++ algorithm. 03-10 ===== The math functions that are not under :ref:`unary_standard_math-name` have been grouped under ``MathOther`` . The documentation and examples have been improved for the following functions: :ref:`abs-name` , :ref:`atan2-name` . 03-09 ===== The examples :ref:`cos.cpp-name` , :ref:`cosh.cpp-name` , :ref:`exp.cpp-name` , :ref:`log.cpp-name` , :ref:`log10.cpp-name` , :ref:`sin.cpp-name` , :ref:`sinh.cpp-name` , :ref:`sqrt.cpp-name` have been improved. 03-07 ===== The ``tan`` function has been added to CppAD. The examples :ref:`Acos.cpp-name` , :ref:`Asin.cpp-name` and :ref:`atan.cpp-name` have been improved. 03-05 ===== The AD standard math unary functions documentation has been grouped together with improved documentation in :ref:`unary_standard_math-name` . 02-28 ===== The :ref:`ad_output-name` and :ref:`Abs-name` documentation and example have been improved. Minor improvements were also made to the :ref:`lu_vec_ad.cpp-name` documentation. 02-25 ===== The :ref:`Compare-name` documentation and example have been improved. 02-24 ===== The documentation and examples have been improved for the following sections: :ref:`division` , :ref:`-=` , :ref:`\*=` , and :ref:`/=` . 02-23 ===== The :ref:`multiplication` documentation and example have been improved. 02-21 ===== The :ref:`subtraction` documentation and example have been improved. There was a bug :ref:`RevTwo-name` that was not detected by the :ref:`rev_two.cpp-name` test. This bug was reported by `Kasper Kristensen `_ A test was added ``TestMore/rev_two.cpp`` that detects this problem and the problem has been fixed. 02-15 ===== The :ref:`+=` documentation and example have been improved. 02-14 ===== The :ref:`addition` documentation and example have been improved. 02-13 ===== Combine the old binary operator and compound assignment documentation into :ref:`Arithmetic-name` documentation. The documentation and examples have been improved for the following sections: :ref:`assignment` , :ref:`unary_plus-name` , :ref:`unary_minus-name` . 02-11 ===== The documentation and examples have been improved for the following sections: :ref:`ad_ctor-name` , :ref:`ad_ctor-name` and :ref:`ad_assign-name` , and :ref:`Value-name` . 02-10 ===== This is the beginning of a pass to improve the documentation: The documentation sections The CopyBase (formerly FromBase and now part of :ref:`ad_ctor-name` and :ref:`ad_assign-name` ) and :ref:`AD copy constructor` (formerly Copy) documentation has been modified. Some of the error messaging during :ref:`ADFun-name` construction has been improved. 02-04 ===== There was a read memory access past the end of an array in :ref:`CppAD::vector::push_back` . This has been fixed and in addition :ref:`track_new_del-name` is now used to do and check the allocation in ``CppAD::vector`` . The routines :ref:`Runge45-name` and :ref:`Rosen34-name` had static vectors to avoid recalculation on each call. These have been changed to be plain vectors to avoid memory leak detection by :ref:`track_new_del@TrackCount` . 01-20 ===== Add software guidelines to the wish list. 01-18 ===== Improve the definition for :ref:`parameters` and :ref:`variables` . Remove unnecessary reference to parameter and variable in documentation for :ref:`Independent-name` . 01-08 ===== The aclocal program is part of the automake and autoconf system. It often generates warnings of the form: | |tab| / ``usr/share/aclocal/`` ...: ``warning: underquoted definition of`` | |tab| ... The shell script file ``FixAclocal`` , which attempts to fix these warnings, was added to the distribution. 01-07 ===== Change CppAD error handler from using the macros defined in ``cppad/CppADError.h`` to using a class defined in :ref:`include/cppad/utility/error_handler.hpp` . The macros ``CppADUnknownError`` and ``CppADUsageError`` have been deprecated (they are temporarily still available in the file ``cppad/local/CppADError.h`` ). 01-02 ===== Add the sed script ``Speed/gprof.sed`` to aid in the display of the profiling output. Make the following source code files easier to understand: ``Add.h`` , ``Sub.h`` , ``Mul.h`` , ``Div.h`` (in the directory ``cppad/local`` ). 01-05 ===== Make the following source code files easier to understand: ``RevSparseHes.h`` , ``Reverse.h`` , ``Fun.h`` , ``Forward.h`` , ``ForSparseJac.h`` , ``RevSparseJac.h`` (in the directory ``cppad/local`` ). {xrst_end whats_new_06}