source: trunk/omh/whats_new/whats_new_16.omh @ 3805

Last change on this file since 3805 was 3805, checked in by bradbell, 4 years ago

merge to branch: trunk
from repository: https://github.com/coin-or/CppAD
start hash code: 624601e5e709d2872b5873f628fae76d5f575a9b
end hash code: 256147abd1ffb46688686cc6cd53908c9a64d957

commit 256147abd1ffb46688686cc6cd53908c9a64d957
Author: Brad Bell <bradbell@…>
Date: Tue Mar 22 12:56:16 2016 -0700

Change atomic_ode.cpp -> checkpoint_ode.cpp,
and atomic_extended_ode.cpp -> checkpoint_extended_ode.cpp.

commit 42eb37c2c38a377bf165ea2dcdd9721d251da800
Author: Brad Bell <bradbell@…>
Date: Tue Mar 22 09:05:32 2016 -0700

Add the eigen_mat_mul.cpp example (still under construction).


ode.cpp: minor corrections to typos in documentation.

commit 6126e82c2a9b3f10d15ee792bf9d32796eb9561c
Author: Brad Bell <bradbell@…>
Date: Tue Mar 22 04:57:55 2016 -0700

Reduce level of indent on public and private commands in atomic examples.

commit 50b8a65b81a0d4e3b0d9d03b188966eb5b366bec
Author: Brad Bell <bradbell@…>
Date: Tue Mar 22 04:46:22 2016 -0700

  1. Advance version to 20160322.
  2. Move atomic_mat_mul_xam.cpp -> atomic_mat_mul.cpp.

commit bb5a5300f882891dafff643ab6899a131fa477b0
Author: Brad Bell <bradbell@…>
Date: Mon Mar 21 05:40:28 2016 -0700

test_one.sh.in: use path to file instead of dir file.
mat_mul.hpp: add missing virtual (did not matter).

commit 955919bc43857a7f9b953af96be30f0cf524ae1c
Merge: ceb9087 3eece08
Author: Brad Bell <bradbell@…>
Date: Sun Mar 20 12:52:01 2016 -0700

Do not know how master got out of sync with local copy, but this merge
does not see to have any changes.

commit ceb9087c686d99279687134dc0af4da0150a0bc5
Author: Brad Bell <bradbell@…>
Date: Sun Mar 20 11:23:46 2016 -0700

Use utility/set_union to simplify atomic examples and tests.

commit 60e9db895ee11bddfb02b1e2f8a96b9dd8a01e49
Author: Brad Bell <bradbell@…>
Date: Sun Mar 20 11:02:21 2016 -0700

  1. Sort some lists.
  2. Add some references to set_union (missing in previous commit).

commit 3eece08b8e9af5f9cf2633bc300c4e5477acd2b1
Author: Brad Bell <bradbell@…>
Date: Sun Mar 20 10:00:56 2016 -0700

  1. Sort some lists.
  2. Add some references to set_union (missing in previous commit).

commit 309e461bf32d95b9330f65bbffaf4fa24d5f11d6
Author: Brad Bell <bradbell@…>
Date: Sun Mar 20 09:34:14 2016 -0700

Add utility/set_union.hpp.

File size: 6.4 KB
Line 
1$Id$
2/* --------------------------------------------------------------------------
3CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-16 Bradley M. Bell
4
5CppAD is distributed under multiple licenses. This distribution is under
6the terms of the
7                    Eclipse Public License Version 1.0.
8
9A copy of this license is included in the COPYING file of this distribution.
10Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
11-------------------------------------------------------------------------- */
12
13$begin whats_new_16$$
14$spell
15        alloc
16        hpp
17        valgrind
18        uninitialized
19        adouble
20        CppAD
21        Eigen
22        std
23        namespace
24        cppad
25        Hes
26        Jac
27        mul
28        ifndef
29        xam
30$$
31
32$section Changes and Additions to CppAD During 2016$$
33
34$head Introduction$$
35The sections listed below contain a list of the changes to CppAD
36in reverse order by date.
37The purpose of these sections is to
38assist you in learning about changes between various versions of CppAD.
39
40$head 03-22$$
41$list number$$
42Add the $cref atomic_eigen_mat_mul.cpp$$ example; see
43$cref/under construction/atomic_eigen_mat_mul.cpp/Under Construction/$$.
44$lnext
45change $code atomic_ode.cpp$$ to $cref checkpoint_ode.cpp$$ and
46$code atomic_extended_ode.cpp$$ to $cref checkpoint_extended_ode.cpp$$.
47$lend
48
49$head 03-21$$
50Change the $cref atomic_mat_mul.hpp$$ class name from $code mat_mul$$
51to $code atomic_mat_mul$$. This example use of the name $code mat_mul$$
52in the $cref atomic_mat_mul.cpp$$ example / test.
53
54$head 03-20$$
55$list number$$
56Include the sub-directory name to the include guards
57in $icode%*%.hpp%$$ files. For example,
58$codep
59        # ifndef CPPAD_UTILITY_VECTOR_HPP
60        # define CPPAD_UTILITY_VECTOR_HPP
61$$
62appears in the file $code cppad/utility/vector.hpp$$. This makes it
63easier to avoid conflicts when choosing $cref addon$$ names.
64$lnext
65Add the $cref set_union$$ utility and use it to simplify the
66$cref atomic$$ examples that use
67$cref/vector of sets/glossary/Sparsity Pattern/Vector of Sets/$$
68sparsity patterns.
69$lend
70
71
72$head 03-19$$
73$list number$$
74Move $cref atomic_mat_mul.cpp$$ to $code atomic_mat_mul_xam.cpp$$
75(moved back on $cref/03-21/whats_new_16/03-21/$$.
76$lnext
77Move $code atomic_matrix_mul.hpp$$ to $cref atomic_mat_mul.hpp$$.
78$lend
79
80$head 03-17$$
81Add the
82$code atomic_ode.cpp$$ and $code atomic_extended_ode.cpp$$ examples.
83
84$head 03-12$$
85$list number$$
86Move the example $code reverse_any.cpp$$ to $cref reverse_checkpoint.cpp$$.
87$lnext
88Add the $cref atomic_mul_level.cpp$$ example.
89$lend
90
91$head 03-05$$
92The following atomic function examples were added
93These examples are for a specific atomic operation.
94In addition, the domain and range dimensions for these examples
95are not one and not equal to each other:
96$cref atomic_forward.cpp$$,
97$cref atomic_reverse.cpp$$,
98$cref atomic_for_sparse_jac.cpp$$,
99$cref atomic_rev_sparse_jac.cpp$$,
100$cref atomic_for_sparse_hes.cpp$$,
101$cref atomic_rev_sparse_hes.cpp$$.
102
103
104$head 03-01$$
105$list number$$
106Improve documentation of implementation requirements for the atomic
107$cref/rev_sparse_jac/atomic_rev_sparse_jac/Implementation/$$.
108$lnext
109Make some corrections to the $cref atomic_for_sparse_hes$$ documentation.
110and fix a bug in how CppAD used these functions.
111$lend
112
113$head 02-29$$
114$list number$$
115Merged sparse into master branch. This makes the
116$cref ForSparseHes$$ routine available for use.
117$lnext
118Changed the
119$cref/global options/speed_main/Global Options/$$
120in the speed test main program to use one global variable with prototype
121$srccode%cpp%
122        extern std::map<std::string, bool> global_option;
123%$$
124$lend
125
126
127$head 02-28$$
128Fix a mistake in the old atomic
129$code example/sparsity/sparsity.cpp$$ example.
130This example has since been changed to
131$cref atomic_set_sparsity.cpp$$.
132
133
134$head 02-27$$
135The $code --with-sparse_set$$ and $code --with-sparse_set$$ options
136were removed from the $cref auto_tools$$ install procedure.
137
138$head 02-26$$
139The condition that the operation sequence in $icode f$$ is
140$cref/independent/glossary/Operation/Independent/$$ of
141the independent variables was added to the statement about
142the validity of the sparsity patterns; see $icode x$$ in
143$cref/ForSparseJac/ForSparseJac/x/$$,
144$cref/RevSparseJac/RevSparseJac/x/$$, and
145$cref/RevSparseHes/RevSparseHes/x/$$.
146
147$head 02-25$$
148The $cref cmake$$ command line argument $code cppad_sparse_list$$
149has been removed (because it is so much better than the other option).
150
151$head 02-23$$
152A new version of the
153$code cppad_sparse_list$$ class (not part of user API) uses
154reference counters to reduce the number of copies of sets that are equal.
155This improved the speed of sparsity pattern computations that use
156the $cref/vector of sets/glossary/Sparsity Pattern/Vector of Sets/$$
157representation.
158For example, the results for the
159$cref cppad_sparse_hessian.cpp$$ test compare as follows:
160$codep
161        sparse_hessian_size     = [  100,    400,   900,  1600, 2500 ]
162        sparse_hessian_rate_old = [ 1480, 265.21, 93.33, 41.93, 0.86 ]
163        sparse_hessian_rate_new = [ 1328, 241.61, 92.99, 40.51, 3.80 ]
164$$
165Note that the improvement is only for large problems. In fact,
166for large problems, preliminary testing indicates that
167the new vector of sets representation preforms better than
168the $cref/vector of boolean/glossary/Sparsity Pattern/Vector of Boolean/$$
169representation.
170
171
172$head 01-21$$
173Fix a $code valgrind$$ warning about use of uninitialized memory
174in the test $code test_more/checkpoint.cpp$$ (the problem was in the test).
175
176$head 01-20$$
177$list number$$
178Fix a $code valgrind$$ warning about use of uninitialized memory
179when using the $cref/adouble/base_adolc.hpp/$$ base type.
180This required an optional $cref base_hash$$ function and the special
181$cref/adouble hash_code/base_adolc.hpp/hash_code/$$ implementation.
182$lnext
183The $code adouble$$ $cref to_string$$ functions
184required a special implementation; see
185$cref/adouble to_string/base_adolc.hpp/to_string/$$.
186$lnext
187Add the $cref/to_string/base_alloc.hpp/to_string/$$ and
188$cref/hash_code/base_alloc.hpp/hash_code/$$ examples
189to the $code base_alloc.hpp$$ example.
190$lend
191
192$head 01-18$$
193$list number$$
194Fix ambiguity between $code CppAD::sin$$ and $code std::sin$$,
195and other standard math functions,
196when using
197$codep
198        using namespace std;
199        using namespace CppAD;
200$$
201This is OK for simple programs, but not generally recommended.
202See $code double$$ version of base class definitions for
203$cref/Unary Standard Math/base_double.hpp/Unary Standard Math/$$
204for more details.
205$lnext
206Change Eigen array example
207$cref eigen_array.cpp$$
208to use member function version of $code sin$$ function
209(as per Eigen's array class documentation).
210$lend
211
212$end
Note: See TracBrowser for help on using the repository browser.