![]() |
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).