\(\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}} }\)
2020¶
View page sourceRelease Notes for 2020¶
mm-dd¶
12-28¶
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).
Move
compiled_fun
to code_gen_fun , to emphasize the fact that it used the CppADCodeGen package.
12-27¶
Include the example implementations
compiled_fun.hpp
andcompiled_fun.cpp
in the documentation.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¶
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.
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).
Move poly.cpp , pow_int , runge_45.cpp , and rosen_34.cpp from
example/general
toexample/utility/
.
12-20¶
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.
Fix a bug in the ADFun swap , which was added on 12-19.
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:
API Change: The SizeVector class in sparse_rc and sparse_rcv must support the
swap
operation.The
swap
operator was added to the sparse_rc and sparse_rcv template classes.A move semantics version of the assignment operator was added to the sparse_rc sparse_rcv template classes.
The job option was added to the det_minor and sparse_jacobian speed tests.
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.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¶
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 likestd::vector
.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.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¶
Use pkg-config to determine install prefix for adolc, eigen, ipopt, and cppadcg; see include_adolc , Eigen , include_ipopt , and include_cppadcg .
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
configure 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¶
The configure configuration would fail when it tried to compile a cppadcg include file (the autotools configuration does not support
cppadcg
). This has been fixed.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.
Add more documentation for the cppad_profile_flag and fix some problems building the
speed_profile
program. (We also usecallgrind
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¶
Advance get_ipopt.sh to ipopt-3.13.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¶
05-23¶
The
optimize
hash coding used to remove identical expressions was improved. The can make a big difference for very large programs.The collision_limit option was added to the
optimize
command.The exceed_collision_limit function was added so one can check if a larger collision limit might make a difference.
05-01¶
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.
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¶
Add the cppadcg_sparse_jacobian.cpp speed test.
The speed main program correct test results were printed as
package _ test _ optionlist _
ok
= resultThis has been changed to
package _ test _ optionlist _
correct
= result
01-24¶
Add the cppadcg_det_minor.cpp speed test. This is the first test using cppadcg (this package generates C source code for the derivatives).
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¶
Add a json_get_started.cpp example.
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
( x , y )
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¶
The VecAD documentation was re-written.
An empty directory with the name
omh
was being install below the include directory. This has been fixed.