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.
atomic_two_mat_mul.cpp
example so that on atomic object
works for matrices of any size.
(This has since been changed to the atomic_three_mat_mul.cpp
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
is not available
(bug introduced when atomic_two_eigen_mat_mul.cpp
was added).
example/atomic/makefile.am
(introduced on 03-22).
atomic_ode.cpp
to chkpoint_one_ode.cpp
and
atomic_extended_ode.cpp
to chkpoint_one_extended_ode.cpp
.
mat_mul
to atomic_mat_mul
. This example use of the name mat_mul
in the atomic_two_mat_mul.cpp
example / test.
(This has since been changed to the atomic_three_mat_mul.cpp
example.)
*.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_two_mat_mul.cpp
to atomic_mat_mul_xam.cpp
(moved back on 03-21
.
atomic_matrix_mul.hpp
to atomic_three_mat_mul.hpp
.
atomic_ode.cpp
and atomic_extended_ode.cpp
examples.
reverse_any.cpp
to rev_checkpoint.cpp
.
chkpoint_one_mul_level.cpp
example.
atomic_two_forward.cpp
,
atomic_two_reverse.cpp
,
atomic_two_for_sparse_jac.cpp
,
atomic_two_rev_sparse_jac.cpp
,
atomic_two_for_sparse_hes.cpp
,
atomic_two_rev_sparse_hes.cpp
.
extern std::map<std::string, bool> global_option;
example/sparsity/sparsity.cpp
example.
This example has since been changed to
atomic_two_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/chkpoint_one.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).