\(\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}} }\)
2014¶
View page sourceRelease Notes for 2014¶
mm-dd¶
12-30¶
There was a bug in the cmake whereby it would sometimes mistakenly exit with the error message
cppad_max_num_threads is not an integer greater than or equal 4
This has been fixed.
12-29¶
The example not_complex_ad.cpp
was using the type
std::complex< CppAD::AD<double> >
and was failing to compile with the clang
complier.
This example has been removed because it is not consistent with the
C++ standard; see
complex FAQ .
12-28¶
Fix some warnings generated by clang 3.5 about local functions that were not being used; e.g., sub-tests that were not being executed.
Fix
cmake
settingcppad_implicit_ctor_from_any_type
Note that this cmake option has since been replaced bycppad_deprecated
option.The
clang++
compiler was optimizing out the calculations in the time_test.cpp and speed_test.cpp examples. This caused these tests to hang while trying to determine how many times to repeat the test. This has been fixed.
12-27¶
More work on the bug in optimizing conditional expressions.
12-26¶
A minimal example for computing cross terms in atomic operation
Hessian sparsity patterns atomic_two_rev_sparse_hes.cpp
was added.
12-25¶
More work on the bug in optimizing conditional expressions.
12-23¶
The c++11 standard includes the error function erf in
cmath
.
If the c++ compiler has the error function defined in cmath
,
the complier version of the error function is used and it corresponds to an
atomic operation.
Fix typo in tangent reverse mode theory for Positive Orders .
12-22¶
There was a bug related to optimizing conditional expressions. This has been fixed.
12-17¶
Fix some compiler warnings and speed program names when using the deprecated configure install procedure.
12-16¶
If the c++11
include file <cstdint>
defines all the standard types, they can be used by to specify
cppad_tape_addr_type and
cppad_tape_id_type .
12-15¶
Correct the title and index entries for forward_two from first to second order.
11-28¶
Improve the index and search
using
a new version of the omhelp
documentation tool.
11-27¶
Add alignment to the get_memory and create_array specifications and thread_alloc example .
Advance the deprecated unix install utilities to autoconf-2.69 and automake-1.13.4.
09-28¶
Fix more bugs related to optimizing condition conditional expressions.
Using old instead of new operator indices.
Not properly following dependence back through atomic operations.
Aborting during forward order zero, when skipping computation for a variable that was already completed (the skip is still useful for higher orders and for reverse mode).
Reverse mode not properly handling the variable number of arguments in the conditional skip operation.
Reverse mode tracing not properly handling the variable number of argument operations; i.e., conditional skip and cumulative summation.
09-27¶
Fix a bug that occurred when f.optimize was used with a function f that contained calls to user defined atomic operations and conditional expressions .
09-25¶
Fix a bug that occurred when f.optimize was used with a function f that contained Discrete functions.
09-21¶
Fix a typo in documentation for any order reverse . To be specific, \(x^{(k)}\) was changed to be \(u^{(k)}\).
05-28¶
Change the boolsparsity so that it only affects the sparsity speed tests sparse_jacobian and sparse_hessian ; i.e., it is now ignored by the other tests.
Improve the speed documentation page.
05-27¶
The
cppad_colpack.cpp
file was not being copied to the specified directory. In addition, the specified directory was changed from an include directory to data directory becausecppad_colpack.cpp
is not an include file.If colpack_prefix was specified, the CppAD pkgconfig file was missing some information. This has been fixed.
05-23¶
The speed test instructions were converted from using the old autotools unix install instructions to use the cmake install instructions. These instructions should work on any system, not just unix.
05-22¶
Add multiple direction for mode forward_dir and use it to speed up the forward version of sparse_jacobian . Below is an example run of cppad_sparse_jacobian.cpp results before this change:
cppad_sparse_jacobian_size = [ 100, 400, 900, 1600, 2500 ] cppad_sparse_jacobian_rate = [ 2973, 431.94, 142.25, 78.64, 26.87 ]
and after this change:
cppad_sparse_jacobian_size = [ 100, 400, 900, 1600, 2500 ] cppad_sparse_jacobian_rate = [ 6389, 954.26, 314.04, 180.06, 56.95 ]
Due to the success of this change,
multiple direction
items were added to the wish list (they were later removed).Improve the forward mode tracing of arguments to, and results from, user defined atomic operations.
05-20¶
Move
speed/adolc/alloc_mat.hpp
tospeed/adolc/adolc_alloc_mat.hpp
so it has the same name is its# ifndef
command.Fix
# ifndef
command incppad/ipopt/solve_callback.hpp
.Add
# ifndef
command totest_more/extern_value.hpp
.
05-19¶
In the files
cppad/local/asin_op.hpp
and cppad/local/acos_op.hpp
there were assignments of the form uj = 0.
where u_j
has type Base .
These may have not be defined operations in certain cases and
have been converted to uj = Base(0)
.
05-16¶
There was a mistake in printing the arguments for
CSumOp
and CSkipOp
when using the undocumented
TRACE
option during forward mode (available in files of the form
include/cppad/local/
* sweep.hpp/
).
This has been fixed.
05-14¶
There were some global variables in the file
cppad/local/op_code.hpp
that might have caused multiple definitions during link time for CppAD applications. These variables have been changed to be local so that this cannot happen.There was a mistaken assert that the number of arguments for the
BeginOp
was zero that caused an abort when using the undocumentedTRACE
option available in files of the forminclude/cppad/local/
*sweep.hpp/
. This has been fixed.
03-18¶
The size_taylor and capacity_taylor functions were deprecated; use size_order and capacity_order instead.
The documentation for Forward and the examples forward.cpp , forward_order.cpp , have been improved. To be more specific, forward_order now references the special cases forward_zero , forward_one and the new case forward_two .
03-17¶
The
Move Semantics
version of the CppAD::vector
assignment statement
was not checking vector sizes.
This has been fixed so that things work the same with compilers
that do not have move semantics.
(Note that with move semantics, no extra memory allocation is done
even if the target vector has a different size.)
03-09¶
The documentation links
forwardzero
, forwardone
, and forwardany
have been changed to
forward_zero , forward_one ,
and forward_order respectively.
This may affect links from other web pages to the CppAD documentation.
03-05¶
The names p and q in the forward , reverse , atomic_two_forward , and atomic_two_reverse functions were reverse so that p <= q . This is only a notational change to make the arguments easier to remember.
03-02¶
In the output for the speed correct test, mention which tests are not available. Note that the set of available tests can depend on the list of options .
In the documentation for n_sweep , mention that it is equal to the number of colors determined by the color_method .
The speed_cppad tests were simplified by removing the printing of auxiliary information related to the optimize option. Future auxiliary information will be passed back in a manner similar to n_color for the sparse jacobian test.
Move Semantics were added to the
CppAD::vector
assignment operator.
03-01¶
Change the prototype for row and col in the link_sparse_jacobian speed test to be
const
; i.e., they are not changed.Move x near end of link_sparse_hessian speed test parameter list, (as is the case for link_sparse_jacobian ).
02-28¶
The data function was added to the
CppAD::vector
template class.
02-27¶
The CppAD developer documentation for the subdirectory
cppad/ipopt
was not being built by the command
bin/run_doxygen.sh
.
This has been fixed.
02-26¶
The adolc and cppad sparse jacobian speed tests now print out n_sweep .
The size of some of the speed test cases has been increased to test behavior for larger problems.
A link to ode_evaluate was missing in the Speed Utility Routines table. This has been fixed.
02-23¶
The color_method option was added to the sparse Jacobian calculations. This enables one to use ColPack do color the rows or columns. The speed test colpack option was also added (but not yet implemented for sparse_hessian speed tests).
02-22¶
The program names in
thread_test.cpp where changes from
threading _ test
to multi_thread_
threading
where threading is openmp
, pthread
or bthread
.
02-17¶
Fix ambiguous call to isnan during MS Visual Studio 2012 compilation.
02-15¶
The boolsparsity option was added to the speed_main program.
The
retape
option what changed to onetape so that the default is to retape (option not present). This was done because fadbad and sacado always retape.The documentation, and example source code, for all the speed options was improved (made clearer).
Improve the success rate for speed_test.cpp and time_test.cpp .
01-26¶
The destination directory for the
cppad documentation
is now set separately from the data directory
using the cmake
option
-D cmake_install_docdir
= cmake_install_docdir
This has increased the flexibility of the documentation installation and removed the need for the option
-D cppad_documentation
= yes_or_no
which has been removed.
01-21¶
The destination directory for the cppad documentation used to be one of the following:
doc/cppad-
versiondoc/
postfix cppad-
versionThis has been changed by dropping the version number at the end of the directory name.
01-10¶
The change on 2013-12-27
caused a conversion error in atan2 when it was used with
AD< AD<double> >
arguments (and other similar cases).
This has been fixed.