|
Prev | Next | whats_new_16 |
mingw system. Theses have also been fixed.
cppad/local directory to the cppad/core directory.
The remaining symbols, in the cppad/local directory, are now
in the CppAD::local namespace.
Note that a class in the CppAD name space, may have a member
function that is not part of the user API.
sparse_pack class.
This improves the speed for
vector of boolean
sparsity pattern calculations.
sparse branch which has const_iterator,
instead of next_element for the
sparse_list and sparse_pack classes.
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
.
std::chrono::steady_clock instead of
std::chrono::high_resolution_clock.
warning: this 'if' clause does not guard... [-Wmisleading-indentation]
using the gcc-6.2.1 compiler, was fixed and it may have fixed a bug.
HAS_C99_TR1_CMATH was being defined twice.
This has been fixed by leaving it up to the sacado install to determine
if this symbol should be defined.
speed_cppad program.
(There was a problem whereby the speed_cppad
program did not properly detect when colpack was available.)
optimize.hpp and set_union.hpp
(when compiling with MS Visual Studio 2015).
atanh.hpp
(when compiling with MS Visual Studio 14).
eigen_mat_inv.hpp example.
for_sparse_jac, rev_sparse_jac,
for_sparse_hes, and rev_sparse_hes.
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.
PrintFor function.
04-17 below).
example/atomic.cpp when
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.cpp to checkpoint_ode.cpp
and
atomic_extended_ode.cpp to checkpoint_extended_ode.cpp
.
mat_mul
to atomic_mat_mul. This example use of the name mat_mul
in the atomic_mat_mul.cpp
example / test.
*.hpp
files. For example,
# ifndef CPPAD_UTILITY_VECTOR_HPP
# define CPPAD_UTILITY_VECTOR_HPP
appears in the file 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.hpp to atomic_mat_mul.hpp
.
atomic_ode.cpp and atomic_extended_ode.cpp examples.
reverse_any.cpp to reverse_checkpoint.cpp
.
extern std::map<std::string, bool> global_option;
example/sparsity/sparsity.cpp example.
This example has since been changed to
atomic_set_sparsity.cpp
.
--with-sparse_set and --with-sparse_set options
were removed from the autotools
install procedure.
f
is
independent
of
the independent variables was added to the statement about
the validity of the sparsity patterns; see
x
in
ForSparseJac
,
RevSparseJac
, and
RevSparseHes
.
cppad_sparse_list
has been removed (because it is so much better than the other option).
cppad_sparse_list class (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:
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 ]
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.
valgrind warning about use of uninitialized memory
in the test test_more/checkpoint.cpp (the problem was in the test).
valgrind warning 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.
adouble to_string
functions
required a special implementation; see
adouble to_string
.
base_alloc.hpp example.
CppAD::sin and std::sin,
and other standard math functions,
when using
using namespace std;
using namespace CppAD;
This is OK for simple programs, but not generally recommended.
See double version of base class definitions for
Unary Standard Math
for more details.
sin function
(as per Eigen's array class documentation).