source: trunk/omh/whats_new/whats_new_14.omh @ 3367

Last change on this file since 3367 was 3367, checked in by bradbell, 6 years ago

Fix bug in conditional skipping of calls to atomic functions.

opt_atomic.sh: test fix here.
optimize.hpp: fix bug here.

  • Property svn:keywords set to Id
File size: 10.4 KB
Line 
1$Id: whats_new_14.omh 3367 2014-09-27 11:55:27Z bradbell $
2/* --------------------------------------------------------------------------
3CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-14 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_14$$
14$dollar @$$
15$spell
16        alloc
17        ifndef
18        asin
19        acos
20        uj
21        op
22        hpp
23        taylor
24        forwardzero
25        forwardone
26        forwardany
27        const
28        doxygen
29        ipopt
30        adolc
31        colpack
32        Jacobian
33        openmp
34        pthread
35        bthread
36        isnan
37        onetape
38        retape
39        fadbad
40        sacado
41        boolsparsity
42        cmake
43        docdir
44        CppAD
45        cppad
46        datadir
47$$
48
49$section CppAD Changes and Additions During 2014$$
50
51$head Introduction$$
52This section contains a list of the changes to CppAD during 2014
53(in reverse order by date).
54The purpose of this section is to
55assist you in learning about changes between various versions of CppAD.
56
57$head 09-27$$
58Fix a bug that occurred when
59$cref/f.optimize/optimize/$$ was used with a function $icode f$$
60that contained calls to user defined $cref atomic$$ operations.
61
62$head 09-25$$
63Fix a bug that occurred when
64$cref/f.optimize/optimize/$$ was used with a function $icode f$$
65that contained $cref discrete$$ functions.
66
67$head 09-21$$
68Fix a typo in documentation for
69$cref/any order reverse/reverse_any/$$.
70To be specific, $latex x^{(k)}$$ was changed to be $latex u^{(k)}$$.
71
72$head 05-28$$
73$list number$$
74Change the $cref/boolsparsity/speed_main/Sparsity Options/boolsparsity/$$
75so that it only affects the sparsity speed tests
76$cref/sparse_jacobian/link_sparse_jacobian/$$ and
77$cref/sparse_hessian/link_sparse_hessian/$$;
78i.e., it is now ignored by the other tests.
79$lnext
80Improve the $cref speed$$ documentation page.
81$lend
82
83$head 05-27$$
84$list number$$
85The $cref/cppad_colpack.cpp/colpack_prefix/cppad_colpack.cpp/$$
86file was not being copied to the specified directory.
87In addition, the specified directory was changed from an include
88directory to data directory
89($code cppad_colpack.cpp$$ is not an include file).
90$lnext
91If $cref colpack_prefix$$  was specified, the CppAD
92$cref pkgconfig$$ file was missing some information.
93This has been fixed.
94$lend
95
96$head 05-23$$
97The $cref speed$$ test instructions were converted from using
98the old auto-tools $cref/unix install/InstallUnix/$$ instructions
99to use the $cref cmake$$ install instructions.
100These instructions should work on any system, not just unix.
101
102$head 05-22$$
103$list number$$
104Add multiple direction for mode
105$cref forward_dir$$ and use it to speed up the forward
106version of $cref sparse_jacobian$$.
107Below is an example run of $cref cppad_sparse_jacobian.cpp$$ results
108before this change:
109$codep
110        cppad_sparse_jacobian_size = [ 100, 400, 900, 1600, 2500 ]
111        cppad_sparse_jacobian_rate = [ 2973, 431.94, 142.25, 78.64, 26.87 ]
112$$
113and after this change:
114$codep
115        cppad_sparse_jacobian_size = [ 100, 400, 900, 1600, 2500 ]
116        cppad_sparse_jacobian_rate = [ 6389, 954.26, 314.04, 180.06, 56.95 ]
117$$
118Due to the success of this change, other
119$cref/multiple direction/WishList/Multiple Directions/$$ items
120were added to the wish list.
121$lnext
122Improve the  forward mode tracing of arguments to,
123and results from, user defined $cref atomic$$ operations.
124$lend
125
126$head 05-20$$
127$list number$$
128Move $code speed/adolc/alloc_mat.hpp$$ to
129$code speed/adolc/adolc_alloc_mat.hpp$$ so it has the
130same name is its $code # ifndef$$ command.
131$lnext
132Fix $code # ifndef$$ command in
133$code cppad/ipopt/solve_callback.hpp$$.
134$lnext
135Add $code # ifndef$$ command to $code test_more/extern_value.hpp$$.
136$lend
137
138
139$head 05-19$$
140In the files
141$code cppad/local/asin_op.hpp$$ and $code cppad/local/acos_op.hpp$$
142there were assignments of the form $code uj = 0.$$ where $code u_j$$
143has type $cref/Base/glossary/Base Type/$$.
144These may have not be defined operations in certain cases and
145have been converted to $code uj = Base(0)$$.
146
147
148$head 05-16$$
149There was a mistake in printing the arguments for
150$code CSumOp$$ and $code CSkipOp$$ when using the undocumented
151$code TRACE$$ option during forward mode (available in files of the form
152$codei%cppad/local/%*%sweep.hpp/%$$).
153This has been fixed.
154
155$head 05-14$$
156$list number$$
157There were some global variables in the file
158$code cppad/local/op_code.hpp$$ that might have caused multiple definitions
159during link time for CppAD applications.
160These variables have been changed to be local so that this cannot happen.
161$lnext
162There was a mistaken assert that the number of arguments for the
163$code BeginOp$$ was zero that caused an abort when using the undocumented
164$code TRACE$$ option available in files of the form
165$codei%cppad/local/%*%sweep.hpp/%$$.
166This has been fixed.
167$lend
168
169$head 03-18$$
170$list number$$
171The
172$cref/size_taylor/FunDeprecated/size_taylor/$$
173and
174$cref/capacity_taylor/FunDeprecated/capacity_taylor/$$
175functions were deprecated;
176use $cref size_order$$ and $cref capacity_order$$ instead.
177$lnext
178The documentation for $cref forward$$ and the examples
179$cref forward.cpp$$, $cref forward_order.cpp$$, have been improved.
180To be more specific, $cref forward_order$$ now references the special
181cases $cref forward_zero$$, $cref forward_one$$ and the new case
182$cref forward_two$$.
183$lend
184
185$head 03-17$$
186The
187$cref/move semantics/CppAD_vector/Assignment/Move Semantics/$$
188version of the $code CppAD::vector$$ assignment statement
189was not checking vector sizes.
190This has been fixed so that things work the same with compilers
191that do not have move semantics.
192(Note that with move semantics, no extra memory allocation is done
193even if the target vector has a different size.)
194
195$head 03-09$$
196The documentation links
197$code forwardzero$$, $code forwardone$$, and $code forwardany$$
198have been changed to
199$cref forward_zero$$, $cref forward_one$$,
200and $cref forward_order$$ respectively.
201This may affect links from other web pages to the CppAD documentation.
202
203$head 03-05$$
204The names $icode p$$ and $icode q$$ in the
205$cref/forward/forward_order/$$,
206$cref/reverse/reverse_any/$$,
207$cref atomic_forward$$, and
208$cref atomic_reverse$$ functions
209were reverse so that $icode%p% <= %q%$$.
210This is only a notational change to make the arguments easier to remember.
211
212$head 03-02$$
213$list number$$
214In the output for the speed
215$cref/correct/speed_main/test/correct/$$ test,
216mention which tests are not available.
217Note that the set of available tests can depend on the
218$cref/list of options/speed_main/option_list/$$.
219$lnext
220In the documentation for
221$cref/n_sweep/sparse_jacobian/n_sweep/$$,
222mention that it is equal to the number of colors determined by the
223$cref/color_method/sparse_jacobian/work/color_method/$$.
224$lnext
225The $cref speed_cppad$$ tests were simplified by removing the printing
226of auxillary information related to the
227$cref/optimize/speed_main/option_list/optimize/$$ option.
228Future auxillary information will be passed back in a manner similar to
229$cref/n_sweep/link_sparse_jacobian/n_sweep/$$ for the sparse jacobian test.
230$lnext
231$cref/Move semantics/CppAD_vector/Assignment/Move Semantics/$$
232were added to the $code CppAD::vector$$ assignment operator.
233$lend
234
235$head 03-01$$
236$list number$$
237Change the prototype for $icode row$$ and $icode col$$ in the
238$cref link_sparse_jacobian$$ speed test to be $code const$$; i.e.,
239they are not changed.
240$lnext
241Move $icode x$$ near end of $cref link_sparse_hessian$$ speed test
242parameter list,
243(as is the case for $cref link_sparse_jacobian$$).
244$lend
245
246$head 02-28$$
247The $cref/data/CppAD_vector/data/$$ function was added to the
248$code CppAD::vector$$ template class.
249
250$head 02-27$$
251The CppAD developer documentation for the subdirectory
252$code cppad/ipopt$$ was not being built by the command
253$code bin/run_doxygen.sh$$.
254This has been fixed.
255
256$head 02-26$$
257$list number$$
258The
259$cref/adolc/speed_adolc/$$ and
260$cref/cppad/speed_cppad/$$ sparse jacobian speed tests now print out
261$cref/n_sweep/sparse_jacobian/n_sweep/$$.
262$lnext
263The size of some of the $cref speed$$ test cases has been increased
264to test behavior for larger problems.
265$lnext
266A link to $cref ode_evaluate$$ was missing in the
267$cref/Speed Utility Routines/speed_utility/Speed Utility Routines/$$ table.
268This has been fixed.
269$lend
270
271
272$head 02-23$$
273The $cref/color_method/sparse_jacobian/work/color_method/$$
274option was added to the sparse Jacobian calculations.
275This enables one to use $cref/ColPack/colpack_prefix/$$
276do color the rows or columns.
277The speed test $cref/colpack/speed_main/Sparsity Options/colpack/$$ option
278was also added (but not yet implemented for
279$cref/sparse_hessian/link_sparse_hessian/$$ speed tests).
280
281
282$head 02-22$$
283The program names in
284$cref  thread_test.cpp$$ where changes from
285$icode%threading%_test%$$ to $codei%multi_thread_%threading%$$
286where $icode threading$$ is $code openmp$$, $code pthread$$ or $code bthread$$.
287
288$head 02-17$$
289Fix ambiguous call to $cref/isnan/nan/isnan/$$
290during MS Visual Studio 2012 compilation.
291
292$head 02-15$$
293$list number$$
294The $cref/boolsparsity/speed_main/Sparsity Options/boolsparsity/$$ option
295was added to the $cref speed_main$$ program.
296$lnext
297The $code retape$$ option what changed to
298$cref/onetape/speed_main/option_list/onetape/$$ so that the default
299is to retape (option not present).
300This was done because
301$cref/fadbad/fadbad_prefix/$$ and
302$cref/sacado/sacado_prefix/$$ always retape.
303$lnext
304The documentation, and example source code, for all the speed
305$cref/options/speed_main/option_list/$$ was improved
306(made clearer).
307$lnext
308Improve the success rate for
309$cref speed_test.cpp$$ and $cref time_test.cpp$$.
310$lend
311
312$head 01-26$$
313The destination directory for the
314$cref/cppad documentation/cmake/cmake_install_docdir/$$
315is now set separately from the data directory
316using the $code cmake$$ option
317$codei%
318        -D cmake_install_docdir=%cmake_install_docdir%
319%$$
320This has increased the flexibility of the documentation installation
321and removed the need for the option
322$codei%
323        -D cppad_documentation=%yes_or_no%
324%$$
325which has been removed.
326       
327$head 01-21$$
328The destination directory for the
329cppad documentation
330used to be one of the following:
331$codei%
332        %prefix%/%datadir%/doc/cppad-%version%
333        %prefix%/%datadir%/doc/%postfix%cppad-%version%
334%$$
335This has been changed by dropping the $icode version$$ number
336at the end of the directory name.
337
338$head 01-10$$
339The change on $cref/2013-12-27/whats_new_13/12-27/$$
340caused a conversion error in $cref atan2$$ when it was used with
341$code AD< AD<double> >$$ arguments (and other similar cases).
342This has been fixed.
343
344$end
Note: See TracBrowser for help on using the repository browser.