Prev Next whats_new_20

@(@\newcommand{\W}[1]{ \; #1 \; } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} } \newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} } \newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} } \newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }@)@ This is cppad-20221105 documentation. Here is a link to its current documentation .
Changes and Additions to CppAD During 2020

12-28
  1. Add the PASS_SPARSE_JACOBIAN_TO_CODE_GEN option to the cppadcg sparse jacobian speed test so one can compare passing a function, or its sparse Jacobian, to CppADCodeGen (for the same eventual result).
  2. Move compiled_fun to code_gen_fun , to emphasize the fact that it used the CppADCodeGen package.


12-27
  1. Include the example implementations compiled_fun.hpp and compiled_fun.cpp in the documentation.
  2. Add the PASS_JACOBIAN_TO_CODE_GEN option to the cppadcg det_minor speed test so one can compare passing the determinant or its Jacobian to CppADCodeGen (for the same eventual result).


12-21
  1. Add a move semantics version of the copy constructor to ADFun , sparse_rc , sparse_rcv , and vectorBool template classes. This should improve the speed of handling function return values that have these types.
  2. The default ADFun copy constructor was deleted so that its use is now a compile error (it used to generate a run time error message).
  3. Move poly.cpp , pow_int , runge_45.cpp , and rosen_34.cpp from example/general to example/utility/.


12-20
  1. The rosen_34.cpp example was changed to use dynamic parameters so it does not need to record a new function for every argument value. The new version of this example also uses the ADFun swap operation to avoid making a separate copy of an ADFun object.
  2. Fix a bug in the ADFun swap , which was added on 12-19.
  3. Add a move semantic version of the copy constructor to the cppad_vector template class. (This should improve the speed of handling function return values that are vectors.)


12-19
Merge in cg branch which had the following changes:
  1. API Change: The SizeVector class in sparse_rc and sparse_rcv must support the swap operation.
  2. The swap operator was added to the sparse_rc and sparse_rcv template classes.
  3. A move semantics version of the assignment operator was added to the sparse_rc sparse_rcv template classes.
  4. The job option was added to the det_minor and sparse_jacobian speed tests.
  5. The compiled_fun example for using CppADCodeGen was added (since moved to code_gen_fun ). In addition, cppadcg_sparse_jacobian.cpp and cppadcg_det_minor.cpp examples were modified to use this utility.
  6. The ADFun swap operation, and move semantics copy constructor, were added. This ensures the move semantics assignment operator does not make any copies.


12-12
Change the location where the source code for the optional packages is stored from build/external to external. This enables one to remove the old build directory without having to rebuild the optional packages.

12-11
Change the autotools configure script so that it does better detection of the microsoft cl compiler. In addition, add documentation for the --enable-msvc option.

12-06
Fix bin/get_cppadcg.sh install of newer version of cppadcg.

12-05
Advance to Oct 9, 2020 version of cppadcg.

12-04
  1. The cppad vector resize operation now preserves the data even if the new size does not fit in the old capacity of the array. This makes cppad_vector more like std::vector.
  2. Fix a problem with the autotools build and the is_pod function. This function, which is not in the CppAD user API, was simplified because it is no longer necessary to handle the c++98 case.
  3. Fix the example/utility/to_string.cpp test; see issue 44 .


12-03
API Change:
support of c++11 is required for this, and future versions of CppAD.

12-02
The pkgconfig files were modified to make user of the fields Requires.private and Libs.private. In addition, the extra definitions were added.

12-01
There was a mistake in the 20201130 version that caused CPPAD_HAS_IPOPT and CPPAD_HAS_ADOLC to be undefined, instead of 0 or 1, this has been fixed.

11-29
  1. Use pkg-config to determine install prefix for adolc, eigen, ipopt, and cppadcg; see include_adolc , include_eigen , include_ipopt , and include_cppadcg .
  2. Fix warning that the variable not_used_rec_base was not initialized.


10-26
Improve the documentation for building the CppAD tests using Visual Studio .

10-23
Version cmake-3.19 of cmake had an change that was not backward compatible; see CHECK_CXX_SOURCE_RUNS . This broke the CppAD install and was fixed. Thus versions of CppAD before 20201023 do not work with version of CMake at or after 3.18.

10-22
Add ar-lib to github repository distribution. This fixes a problem with autotools build when using the Microsoft C++ compiler and msys2.

10-21
Modify the source file match_op.hpp to avoid a possibly un-initialized warning on some compilers.

10-20
The have_ar variable has been removed from the autotools configuration and the configuration now exits if AM_PROG_AR does not find an archiving tool. This was done to try and solve some configuration problems with a combination of msys2 and the Visual Studio compiler.

10-17
  1. The autotools configuration would fail when it tried to compile a cppadcg include file (the autotools configuration does not support cppadcg). This has been fixed.
  2. The autotools configuration for he profiling version of the speed tests was out of date. It is sufficient to do speed profiling using the cmake configuration, so it has been removed from the autotools configuration.
  3. Add more documentation for the cppad_profile_flag and fix some problems building the speed_profile program. (We also use callgrind to do CppAD speed profiling.)


09-05
Fix some errors and warnings when building with Visual Studio 2019; e.g. see issue 60 .

06-08
Fix compiler warning in match_op.hpp about possibly uninitialized variable.

06-04
  1. Advance get_ipopt.sh to ipopt-3.13.2.
  2. Fix some compiler warnings generated by g++-10.1.1.


05-27
If include_ipopt is on the cmake command line, ipopt_solve is automatically included by cppad/cppad.hpp. The sparse2eigen utility can still be used even if include_eigen is not specified on the cmake command line.

05-26
  1. There was a bug in conditional expressions when the left or right argument is a dynamic parameter and the other is a parameter and NDEBUG is not defined. There was a mistaken assertion that has been fixed.
  2. Advance most recent release from 20200000.2 to 20200000.3.


05-23
  1. The optimize hash coding used to remove identical expressions was improved. The can make a big difference for very large programs.
  2. The collision_limit option was added to the optimize command.
  3. The exceed_collision_limit function was added so one can check if a larger collision limit might make a difference.


05-01
  1. A problem was fixed in the get_adolc.sh installation of the optional package Adolc . To be specific, to be specific the Adolc source moved from Gitlab to Github. In addition, advance to Adolc master on 2020-04-01.
  2. The no_cumulative_sum_op option was added to the optimize routine because, in some cases, gathering cumulative summations interferes with recognizes pieces of summations that are the same in different cumulative sums.


03-11
The CppAD::vector constructor was extended to allow its size to be a int (this used to generate a warning when using the clang compiler).

02-02
The get_optional.sh prefix was extended so that it could be a relative path . In addition configuration instructions were added to cover the case where the prefix is changed.

02-01
The get_optional.log and get_optional.err files were added so one can see the progress of the get_optional.sh script.

01-29
  1. Add the cppadcg_sparse_jacobian.cpp speed test.
  2. The speed main program correct test results were printed as
        
    package_test_optionlist_ok = result
    This has been changed to
        
    package_test_optionlist_correct = result

01-24
  1. Add the cppadcg_det_minor.cpp speed test. This is the first test using cppadcg (this package generates C source code for the derivatives).
  2. The package name was removed from the speed test size output (because the sizes do not depend on the package); see speed results .


01-22
  1. Add a json_get_started.cpp example.
  2. Move the section example_abs_normal below the section abs_normal_fun .


01-18
Modify the option package install scripts so they all use the same install prefix that the user can change in the file bin/get_optional.sh. In addition, these scripts were updated to use more recent versions of the optional packages.

01-17
Create an example / template for adding a new package to the speed tests; see speed_xpackage .

01-12
Documentation was added for the special requirements when the Base type does not support ordered comparison. As a consequence, the reverse mode the derivative of pow(xy) may result in zero (not nan) when x is zero; see the reverse mode wish list item.

01-06
The VecAD objects have been extended to work with dynamic parameters. However, this is not as efficient as it should be; see efficiency and VecAD vectors under dynamic parameters in the wish list.

01-04
  1. The VecAD documentation was re-written.
  2. An empty directory with the name omh was being install below the include directory. This has been fixed.

Input File: omh/appendix/whats_new/20.omh