Prev Next whats_new_21

@(@\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 2021

12-17
Add forward mode calculations using AD<double> to the atomic_four_vector example.

12-16
Change virtual to override in all the atomic_three_example files and multi_atomic_three_user .

12-10
  1. Added the example atomic_four_vector .
  2. Fix some compiler warnings when building with NDEBUG defined.


12-08
Update to a newer version of the autotools .

09-04
There was a bug in the atan2 function. For example, the derivative of atan2(0,1) was incorrect; see issue 120 . This has been fixed and the atan2.cpp example has been extended to do more testing.

08-31
There was a bug in the CMake configuration files such that make check_example_multi_thread was not being constructed. Hence make check did not include the multi_thread tests. This has been fixed.

08-27
The following error occurred
    compile_source_test: cplusplus_201100_ok is defined before expected
if the cmake command was run twice, without first removing the CMakeCache.txt file. This has been fixed.

08-26
The cmake command was extended to allow for one to specify CMAKE_BUILD_TYPE . This forced changing the default for cppad_debug_which from debug_all to the empty string.

07-31
Do more work on pkgconfig files: Remove duplicates and put -L entries before -l entries in Libs section. Furthermore, move all information from private to normal section.

07-30
Fix a bug in the pkgconfig files. To be specific, there was an extra -l at the front of the list of library flags; e.g., -l-lcppad_lib was changed to -lcppad_lib.

07-12
  1. Change all the scripts called by get_optional.sh to use all the processing units available on the system when compiling and linking the optional packages.
  2. Fix get_colpack.sh so that it does not leave behind ltmain.sh and test-driver in the top source directory.
  3. Change the cmake script use of CHECK_CXX_SOURCE_RUNS to CHECK_CXX_SOURCE_COMPILES. This makes it easier to use CppAD in a cross compiling context.


06-22
Improve Var2Par documentation and var2par.cpp example by separating dynamic and constant parameters.

06-06
The CppAD::vector assignment statement no longer requires the size of the vectors to be the same; see check size .

06-02
  1. Remove microsoft_timer which is no longer needed by elapsed_seconds because c++11 required (starting this year).
  2. Remove any use of CMAKE_SOURCE_DIR. This allows CppAD's top source directory to be used as a subdirectory of a larger CMake package.


05-12
  1. The cmake include_cppadcg option was not working when cppadcg was the only optional package. This has been fixed.
  2. The smallest size for the det_minor speed test was changed from one to two (a 2 by 2 matrix).


04-30
  1. The conditional expression example cond_exp.cpp was improved.
  2. Restore the sparse_rcv copy constructor which was removed by mistake when the sparse_rcv move semantics constructor was added.


04-28
  1. The change to the pow(x,y) function on 02-06 handled the case where x is zero. The pow_nan.cpp example was modified to show when the new version of this function generates nans.
  2. Remove some uses of the deprecated nan(zero) function.


04-27
Fix the msys2 and cygwin system builds so that they use static (instead of dynamic) libraries. This is necessary so that static variables (in include files) can not have multiple instances in Windows.

04-26
There was a problem with the cmake command when ipopt was the only optional package installed. This was related to the ipopt include directories problem.

04-16
Improve the instruction for adding a new speed test package; see speed_xpackage .

04-09
The cpp_graph_print operation was failing when there were atomic or discrete functions. This has been fixed.

04-07
Documentation was added for the print_graph_op operator. This is different from the function cpp_graph_print which prints an entire graph.

04-05
The cpp_graph_print operation was modified so that it printed the text corresponding to atomic function names, discrete function names, and print operators.

04-02
The enum value dis_graph_op was corrected to discrete_graph_op in the documentation for discrete_graph_op .

03-29
Include the dependent_vec in the output of cpp_graph_print ; see y nodes in print_graph.cpp example output.

03-24
The C++ AD graph constructor, cpp_graph_ctor , cannot be called the first tile in parallel mode. This condition has been added to the documentation and assets were added to make sure it is true.

03-11
Improve the discussion of identically equal; see more complicated case .

03-09
Simplify the fabs.cpp example.

03-08
For years the following comment in reverse.hpp was forgotten:
    // ? should use += here, first make test to demonstrate bug
A test case was created to demonstrate this bug and it was fixed (see duplicate_dependent_var in test_more/general/reverse.cpp). This only affects reverse mode when w has size q * m and two of the dependent variables in the range of f are identically equal (actually the same variable).

03-07
  1. Fix bug in f.to_graph that ocurred when f had fabs dynamic parameter operators. To be more specific, if NDEBUG was not defined, an error from an unknown source would be detected in the file to_graph.hpp.
  2. Make UnaryMinus an atomic operation, instead of using binary subtraction of zero minus the value being negated. In addition, add it to the json_graph unary operators and the graph_op_enum values values.


02-21
Add specifications for what is conditionally installed by the include_eigen and include_ipopt options. In addition, make it clearer that include_cppadcg should only be used for testing.

02-16
There was a problem with atomic functions, optimize , and reverse mode that would lead to unexpected nans. This has been fixed by changing values, that the optimizer determines are not used, from nan to zero. A discussion of this was added below azmul in the atomic reverse documentation.

02-14
  1. Add the print command to the cpp_graph class.
  2. Change the name of a documentation section form seq_property to fun_property .
  3. Add setting and getting a ADFun function's name .


02-12
  1. In the case where cppad_debug_which is debug_all (debug_none) the corresponding CMAKE_BUILD_TYPE is now specified as Debug (Release).
  2. Fix the Policy CMP0054 warning during the cmake command .
  3. Fix the Visual Studio build. This included commenting out part of the CppAD vector test because the MSC compiler is confused between the vector's const_iterator and iterator; see # ifndef _MSC_VER in cppad_vector.cpp .


02-11
Fix some problems with the linking of the cppad_lib library when using the Microsoft compiler.

02-08
Fix some problems in the cppad.pc file; see pull request 95 .

02-06
A special version of the pow(x, y) function was added for the special case where y is a parameter. This properly handles the special case where x is zero and y is greater than the order of the derivative. In addition, it only requires one tape variable (instead of three) for each pow operation.

01-27
There was a bug in the converting to abs_normal form when the function f made use of the pow operator. To be specific, when compiling without NDEBUG defined, an assert was generated even though the code was correct. This has been fixed.

01-26
Change the prototype for the cmake command options to use true_or_false , instead of true to highlight the fact that one can choose either true or false.

01-08
On some systems, the file cppad_lib/json_lexer.cpp would not compile because the std::isdigit function was not defined. This has been fixed.

01-07
The example pow_nan.cpp was added.

01-05
  1. Improve discussion of cppad_cxx and make sure all uses are exactly as described. In addition, change mention of optional features from C++11 to C++17.
  2. The required version of cmake was advanced from 2.8.4 to 3.0. This fixes a policy CMP0042 warning on Mac systems.
  3. If the compiler, plus the flags in cppad_cxx_flags , does not by default support C++11, cmake is used to find and add the flags necessary for this support.


01-03
  1. Fix a bug in reverse mode for an ADFun< AD<Base> > function that has dynamic parameters and value of one of these parameters was zero or one when the function was recorded.
  2. Fix a bug in the autotools building of cppad_lib.

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