Prev Next whats_new_08

Changes and Additions to CppAD During 2008

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

08-19
Add push of a vector to the CppAD::vector template class. This makes it easy to accumulate multiple scalars and simple vectors into one large CppAD::vector.

08-08
There was an indexing bug in the Ipopt example that affected the retape equal to false case. This has been fixed. In addition, the missing retape documentation was added.

07-02
Extend configure command to check for extras libraries that are necessary for linking the ipopt example.

06-18
Add specifications for the Ipopt class ipopt_cppad_nlp . This is only an example class it may change with future versions of CppAD.

06-15
The nonlinear programming example ipopt_cppad.cpp was added. This is a preliminary version of this example.

06-11
The sparsity pattern for the Hessian was being calculated each time by SparseHessian . This is not efficient when the pattern does not change between calls to SparseHessian. An optional sparsity pattern argument was added to SparseHessian so that it need not be recalculated each time.

06-10
The sparsity pattern for the Jacobian was being calculated each time by SparseJacobian . This is not efficient when the pattern does not change between calls to SparseJacobian. An optional sparsity pattern argument was added to SparseJacobian so that it need not be recalculated each time.

05-08
The sparse_jacobian routine has been added.

The example in sparse_hessian pointed to Hessian.cpp instead of sparse_hessian.cpp . This has been fixed.

05-03
The retape flag has been added to speed_main . In addition the routines link_det_minor , link_poly , and link_ode pass this flag along to the speed test implementations (because the corresponding tests have a fixed operation sequence). If this flag is false, a test implementation is allowed to just tape the operation sequence once and reuse it. The following tests use this flag: adolc_det_minor.cpp , cppad_det_minor.cpp , cppad_ode.cpp , adolc_poly.cpp , cppad_poly.cpp .

Create specialized zero order forward mode routine that should be faster, but does not test out as faster under cygwin g++ (GCC) 3.4.4.

04-20
Added the ode_evaluate speed test utility in preparation for having ode speed tests. Created ode speed test for the cppad and double cases; see speed_main . In addition, added the examples ode_evaluate.cpp and sparse_hessian.cpp .

Changed the speed_main routines defined for each package from compute_name to link_name . For example, in speed/cppad/det_minor.cpp, the function name compute_det_minor was changed to link_det_minor.

04-18
Fix a problem in the link_poly correctness test. Also add double_sparse_hessian.cpp to the set speed and correctness tests (now available).

04-10
Change all the Adolc speed examples to use TrackNewDel instead of using new and delete directly. This makes it easy to check for memory allocation errors and leaks (when NDEBUG is not defined). Also include in documentation sub functions that indicate the sparse_hessian speed test is not available for double_sparse_hessian.cpp , fadbad_sparse_hessian.cpp , and sacado_sparse_hessian.cpp .

04-06
The following wish list entry has been completed and removed from the list: "Change private member variables names (not part of the user interface) so that they all end with an underscore."

04-04
Fix a problem compiling the speed test main program with gcc 4.3.

03-27
Corrected cppad_sparse_hessian.cpp so that it uses the sparse case when USE_CPPAD_SPARSE_HESSIAN is 1. Also added a wish list sparse Hessian entry.

Change the name of speedtest.cpp to speed_program.cpp .

02-05
Change windows install instructions instructions to use Unix formatted files (so only two instead of four tarballs are necessary for each version). The Microsoft project files for speed/cppad, speed/double, and speed/example were missing. This has also been fixed.

02-03
There was an ambiguity problem (detected by g++ 4.3) with the following operations
     
x op y
where x and y were AD<double> and op was a member operator of that class. This has been fixed by making all such member functions friends instead of members of AD<double>.

Remove computed assignment entry from wish list (it was fixed on 2007-05-26 ). Add expression hashing , library , and scripting languages entries to the wish list.

01-26
The LuFactor routine gave a misleading error message when the input matrix had not a number or infinity in it. This has been fixed.

01-24
The postfix directory has been added to the configure command line options.

01-21
A sparse Hessian case was added to the speed tests; see sparse_hessian .

01-20
CppAD can now be installed using yum on Fedora operating systems.

01-11
The CppAD correctness tests assume that machine epsilon is less than 1e-13. A test for this has been added to the test_more/test_more program; see --with-Testing in Unix install instructions or more correctness testing in Windows install instructions.

01-08
Added a sparse_hessian routine and extended Hessian to allow for a weight vector w instead of just one component l.
Input File: omh/whats_new_08.omh