mingwsystem. Theses have also been fixed.
cppad/localdirectory to the
cppad/coredirectory. The remaining symbols, in the
cppad/localdirectory, are now in the
CppAD::localnamespace. Note that a class in the
CppADname space, may have a member function that is not part of the user API.
sparse_packclass. This improves the speed for vector of boolean sparsity pattern calculations.
sparsebranch which has
const_iterator, instead of
sparse_packclasses. These classes are not part of the CppAD API and hence their specifications can change (as in this case). They can be used to get more efficient representations of sparsity patterns .
using the gcc-6.2.1 compiler, was fixed and it may have fixed a bug.
warning: this 'if' clause does not guard... [-Wmisleading-indentation]
HAS_C99_TR1_CMATHwas being defined twice. This has been fixed by leaving it up to the sacado install to determine if this symbol should be defined.
speed_cppadprogram. (There was a problem whereby the
speed_cppadprogram did not properly detect when
set_union.hpp(when compiling with MS Visual Studio 2015).
atanh.hpp(when compiling with MS Visual Studio 14).
x, that contains the parameters in an atomic function call to the user following atomic functions: for_sparse_jac , rev_sparse_jac , for_sparse_hes , rev_sparse_hes . This enables one to pass parameter information to these functions; e.g., the dimensions of matrices that the function operates on.
example/atomic.cppwhen eigen_prefix is not available (bug introduced when atomic_eigen_mat_mul.cpp was added).
example/atomic/makefile.am(introduced on 03-22).
atomic_ode.cppto checkpoint_ode.cpp and
atomic_extended_ode.cppto checkpoint_extended_ode.cpp .
atomic_mat_mul. This example use of the name
mat_mulin the atomic_mat_mul.cpp example / test.
*.hppfiles. For example,
appears in the file# ifndef CPPAD_UTILITY_VECTOR_HPP # define CPPAD_UTILITY_VECTOR_HPP
cppad/utility/vector.hpp. This makes it easier to avoid conflicts when choosing addon names.
atomic_mat_mul_xam.cpp(moved back on 03-21 .
atomic_matrix_mul.hppto atomic_mat_mul.hpp .
reverse_any.cppto reverse_checkpoint.cpp .
extern std::map<std::string, bool> global_option;
example/sparsity/sparsity.cppexample. This example has since been changed to atomic_set_sparsity.cpp .
--with-sparse_setoptions were removed from the autotools install procedure.
fis independent of the independent variables was added to the statement about the validity of the sparsity patterns; see
xin ForSparseJac , RevSparseJac , and RevSparseHes .
cppad_sparse_listhas been removed (because it is so much better than the other option).
cppad_sparse_listclass (not part of user API) uses reference counters to reduce the number of copies of sets that are equal. This improved the speed of sparsity pattern computations that use the vector of sets representation. For example, the results for the cppad_sparse_hessian.cpp test compare as follows:
Note that the improvement is only for large problems. In fact, for large problems, preliminary testing indicates that the new vector of sets representation preforms better than the vector of boolean representation.sparse_hessian_size = [ 100, 400, 900, 1600, 2500 ] sparse_hessian_rate_old = [ 1480, 265.21, 93.33, 41.93, 0.86 ] sparse_hessian_rate_new = [ 1328, 241.61, 92.99, 40.51, 3.80 ]
valgrindwarning about use of uninitialized memory in the test
test_more/checkpoint.cpp(the problem was in the test).
valgrindwarning about use of uninitialized memory when using the adouble base type. This required an optional base_hash function and the special adouble hash_code implementation.
adoubleto_string functions required a special implementation; see adouble to_string .
std::sin, and other standard math functions, when using
This is OK for simple programs, but not generally recommended. Seeusing namespace std; using namespace CppAD;
doubleversion of base class definitions for Unary Standard Math for more details.
sinfunction (as per Eigen's array class documentation).