source: trunk/omh/whats_new_09.omh @ 1538

Last change on this file since 1538 was 1538, checked in by bradbell, 11 years ago

trunk: Bring visual studio example and test_more projects up to date.

  • Property svn:keywords set to Id
File size: 12.4 KB
Line 
1$Id: whats_new_09.omh 1538 2009-10-03 13:48:20Z bradbell $
2/* --------------------------------------------------------------------------
3CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-09 Bradley M. Bell
4
5CppAD is distributed under multiple licenses. This distribution is under
6the terms of the
7                    Common 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_09$$
14$spell
15        Microsoft
16        retape
17        isnan
18        atan
19        asin
20        acos
21        sqrt
22        OMhelp
23        doxygen
24        exp_eps_apx
25        cos
26        tarball
27        IpIpoptApplication
28        IpoptDir
29        autoconf
30        automake
31        config
32        jacobian
33        valgrind
34        svn
35        Prev
36        CppAD
37        Adolc
38        cppad
39        hpp
40        op
41        pycppad
42        cond_exp
43        VecAD
44        Jacobians
45        Jac
46$$
47
48$section Changes and Additions to CppAD During 2009$$
49
50
51$head Introduction$$
52This section contains a list of the changes to CppAD during 2009
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(Comments about developer documentation are only important if you are
57trying to read and understand the CppAD source code.)
58
59$head 10-03$$
60The Microsoft Visual Studio project files for
61$cref/examples and testing/InstallWindows/Examples and Testing/$$
62and for
63$cref/more correctness testing/InstallWindows/More Correctness Testing/$$
64were not including some new tests in their builds.
65This has been fixed.
66
67$head 09-30$$
68Added the $cref/cppad_sparse_jacobian.cpp/$$ speed test
69and increased the sizes used by $cref/link_sparse_hessian/$$.
70Some mistakes were fixed in the documentation for speed tests
71$cref/link_sparse_hessian/$$ and $cref/sparse_evaluate/$$.
72
73$head 09-29$$
74The documentation definition of the function $latex H(x)$$ in
75$cref/RevSparseHes/$$ was missing a factor of $latex R$$.
76This has been fixed.
77
78$head 09-28$$
79Changed $cref/RevSparseHes/$$ so that it uses a sparse
80representation when the corresponding call to
81$cref/ForSparseJac/$$ used a sparse representation.
82This should have been included with the change on 09-26
83because Hessian sparsity patters after $code ForSparseJac$$
84with $icode packed$$ did not work.
85Thus, this could be considered a bug fix.
86
87$head 09-26$$
88Added the $cref/packed/ForSparseJac/packed/$$ parameter to
89$cref/ForSparseJac/$$ and $cref/RevSparseJac/$$.
90If $icode packed$$ is false,
91a sparse instead of packed representation is used
92during the calculations of sparsity patterns.
93The sparse representation
94should be faster, and use less memory, for very large sparse Jacobians.
95The functions $code ForSparseJac$$ and $code RevSparseJac$$
96return packed representations.
97The plan is to eventually provide new member functions that return
98sparse representations.
99
100$head 09-20$$
101Fixed a bug in the $cref/Hessian Sparsity/RevSparseHes/$$ calculations
102that included use of $cref/VecAD/$$ objects.
103
104$head 09-19$$
105Some more memory allocation improvements (related to those
106on 09-18) were made.
107
108$head 09-18$$
109A bug was found in all the $cref/Sparsity/Sparse/$$ calculations.
110The result was that eight times the necessary memory was being used
111during these calculations.  This has been fixed.
112
113
114$head 08-25$$
115Add $cref/ad_fun.cpp/$$
116an example of how to create your own interface to an $cref/ADFun/$$ object.
117
118$head 08-14$$
119Add $cref/ad_in_c.cpp/$$
120an example of how to link CppAD to other languages.
121
122$head 08_13$$
123Add an option to $cref/optimize/$$ an operation sequence.
124$pre
125
126$$
127$bold Begin Merge$$
128$pre
129$$
130of changes from the directory $code branches/optimize$$
131in the CppAD subversion repository.
132The subheading dates below represent when the correspond change was made in
133$code branches/optimize$$.
134
135$subhead 08-13$$
136An automatic check of the $cref/ForwardZero/$$ results was added
137after each call to $cref/f.optimize()/optimize/$$
138(this $cref/check/optimize/Checking Optimization/$$
139is skipped when $code NDEBUG$$ is defined).
140In addition, all of the $codei%speed/cppad/%*%.cpp%$$ tests
141now check and use the speed test
142$cref/optimize/speed_main/option_list/optimize/$$ flag.
143
144$subhead 08-11$$
145Change the speed test $cref/main program/speed_main/$$ so
146that it uses a list of options instead of a boolean flag for each option.
147This will make it possible to add options in the future with out
148having to change all the existing tests because the options are now
149global variables instead of arguments to the speed test routines; for example,
150see $cref/retape/speed_main/option_list/retape/$$.
151
152$subhead 08-10$$
153The routine for $cref/optimizing/optimize/$$ the operation sequence
154has been added has been further tested using $code test_more/optimize.cpp$$.
155Some bugs have been fix and the routine can
156now be trusted to work correctly.
157$pre
158
159$$
160The function
161$cref/size_VecAD/SeqProperty/size_VecAD/$$ function was added
162so that the user could see the $code VecAD$$ vectors
163and elements corresponding to an operation sequence.
164
165$subhead 08-09$$
166A routine for $cref/optimizing/optimize/$$ the operation sequence
167has been added.
168This is a preliminary version and needs more testing before it can
169be trusted to work correctly.
170$pre
171$$
172$bold End Merge$$
173
174
175$head 08-06$$
176Add hash table coding to reduce the number of copies of the same
177parameter value necessary in a tape recording.
178In addition, add the function
179$cref/size_par/SeqProperty/size_par/$$ was added
180so that the user could see the number of parameters
181corresponding to an operation sequence.
182
183$head 08-02$$
184Fix bug in new version of how $cref/ForSparseJac/$$ handles
185$cref/VecAD/$$ objects.
186$pre
187
188$$
189Fix bug in overnight build where HTML version and entire documentation
190as one page versions of documentation were not being built.
191$pre
192
193$$
194Fix missing new line under
195$cref/Using Value/SimpleVector/Element Access/Using Value/$$
196heading for simple vector documentation.
197
198$head 08-01$$
199Fix bug in reverse mode Jacobian $cref/sparsity/RevSparseJac/$$
200for $cref/VecAD/$$ objects.
201
202$head 07-31$$
203The $cref/forward/ForSparseJac/$$ and $cref/reverse/RevSparseJac/$$
204sparse Jacobian routines have been improved so the resulting sparsity
205patterns are valid for all values of the independent variables
206(even if you use $cref/CondExp/$$ or $cref/VecAD/$$).
207
208$head 07-26$$
209Convert developer documentation from
210forward and reverse mode sweep routines from OMhelp to doxygen.
211
212$head 07-25$$
213Add developer documentation for $cref/PrintFor/$$ operations.
214
215$head 07-24$$
216Add developer documentation for $cref/Discrete/$$ operations.
217
218$head 07-23$$
219Add developer documentation for tape evaluation of $cref/VecAD/$$ store
220operations. (a store operation changes the value of a VecAD element).
221$pre
222
223$$
224Improve the $cref/vec_ad.cpp/$$ user example.
225
226$subhead 07-06$$
227Fixed a bug in second or higher order reverse mode calculations
228that used $cref/VecAD/$$.
229This bug was demonstrated by the test case $code SecondOrderReverse$$
230in the file $code test_more/vec_ad.cpp$$.
231$pre
232
233$$
234Add developer documentation for tape evaluation of the
235VecAD load operations
236(a load operation accesses an element of the vector but
237does not change it.)
238$pre
239
240$$
241Fix $code isnan$$ undefined in $code example/cond_exp.cpp$$ error
242introduced on 07-04 change.
243
244$head 07-04$$
245Add developer documentation for the
246$cref/CompareChange/$$ operations during tape evaluation.
247$pre
248
249$$
250$bold Begin Merge$$
251$pre
252$$
253of changes from the directory $code branches/sweep$$
254in the CppAD subversion repository.
255The subheading dates below represent when the correspond change was made in
256$code branches/sweep$$.
257
258$subhead 07-04$$
259Fixed a bug in second or higher order reverse mode calculations
260that included $cref/conditional expressions/CondExp/$$.
261This bug was demonstrated by the test case $code SecondOrderReverse$$
262in the file $code test_more/cond_exp.cpp$$.
263$pre
264
265$$
266A simpler and useful example was provided for
267$cref/conditional expressions/CondExp/$$;
268see $cref/CondExp.cpp/$$.
269
270
271$subhead 07-03$$
272Some minor improvements were made to the documentation for
273$cref/CondExp/$$.
274To be specific, a newer OMhelp option was used to change the formatting
275of the syntax, some of the argument names were changed to be more descriptive.
276
277$subhead 07-02$$
278Add developer doxygen documentation of
279tape evaluation for power (exponentiation) operators.
280
281$subhead 07-01$$
282Fix an example indexing error in
283$code introduction/exp_apx/exp_eps_for2.cpp$$ (found by valgrind).
284$pre
285
286$$
287Add developer doxygen documentation of
288tape evaluation for multiplication and division operators.
289
290$subhead 06-30$$
291Add developer doxygen documentation of
292tape evaluation for addition and subtraction operators.
293
294$subhead 06-29$$
295Add developer doxygen documentation of
296tape evaluation for sin, sinh, cos, and cosh.
297
298$subhead 06-28$$
299Add developer doxygen documentation of
300tape evaluation for atan, asin, acos, sqrt, log.
301$pre
302$$
303$bold End Merge$$
304
305$head 06-25$$
306The tarball for most recent release (of the subversion trunk for CppAD)
307was not being placed in the
308$href%http://www.coin-or.org/download/source/CppAD/%download%$$
309directory. 
310This has been fixed.
311
312$head 06-22$$
313Fix compiler warnings during the $cref openmp_run.sh$$ test.
314$pre
315
316$$
317Changed $cref speed_example.cpp$$ to omit the $code speed_test$$ from
318the correctness result.
319In stead, a message is printed explaining that timing tests need
320to be run without a lot of other demands on the system.
321
322$head 06-21$$
323The configure instructions for $cref/IpoptDir/InstallUnix/IpoptDir/$$
324had the wrong path for $code IpIpoptApplication.hpp$$.
325This has been fixed.
326
327$head 06-20$$
328Upgrade to from autoconf 2.61 to 2.63,
329and from automake 1.10.1 to 1.11.
330$pre
331
332$$
333Fix conflict between CppAD's use of config.h preprocessor symbols
334and other packages use of the same symbol names.
335
336$head 06-06$$
337Using complex of an AD type (instead of AD of complex) was not working
338correctly in $cref/not_complex_ad.cpp/$$ because the
339$cref/default/Default/$$ constructor for an AD object has an unspecified value.
340This has been fixed for the complex type by changing the default constructor
341to use value zero.
342$pre
343
344$$
345Fixing the $code not_complex_ad.cpp$$ problem above also fixed a warning
346generated by $href%/http://valgrind.org/%valgrind%$$.
347Now $code valgrind$$ runs the CppAD $code example/example$$ program
348with out any warning or error messages.
349In addition, a minor initialization error was fixed in the
350$code test_more/jacobian.cpp$$ routine so now
351$code valgrind$$ also runs the CppAD $code test_more/test_more$$ program
352with out any warnings or error messages.
353
354$head 05-20$$
355A change was make to the trunk on 05-19 (svn revision 1361) that broke the
356$cref/Unix install/InstallUnix/$$ procedure.
357This was has been fixed (revision 1362).
358
359$head 03-24$$
360Added cross references in
361the $cref/examples/ListAllExamples/$$ to occurrence of the following tokens:
362$cref/AD/$$,
363$cref/ADFun/FunConstruct/$$,
364$cref/CPPAD_TEST_VECTOR/test_vector/$$,
365$cref/Forward/$$,
366$cref/Independent/$$,
367$cref/Jacobian/$$
368$cref/NearEqual/$$,
369$cref/Reverse/$$.
370
371$head 02-20$$
372Demonstrate using AD to compute the derivative
373of the solution of an ODE with respect to a parameter
374(in the $cref runge_45_2.cpp$$ example).
375
376$head 02-15$$
377Change the distribution
378$cref/tar files/InstallUnix/Download/Unix Tar Files/$$
379to only contain one copy of the documentation.
380Link to the current Internet documentation for the other three copies.
381
382
383$head 02-01$$
384Move the $code Prev$$ and $code Next$$ buttons at the top of the documentation
385to the beginning so that their position does not change between sections.
386This makes it easier to repeatedly select this links.
387
388
389$head 01-31$$
390Modify $code cppad/local/op_code.hpp$$ to avoid incorrect warning by
391g++ version 4.3.2 when building $code pycppad$$ (a python interface to CppAD).
392
393$head 01-18$$
394Sometimes an error occurs while taping AD operations.
395The $cref/abort_recording/$$ function has been added
396to make it easier to recover in such cases.
397$pre
398
399$$
400Previously, CppAD speed and comparison tests used Adolc-1.10.2.
401The version used in the tests has been upgraded to
402$href%
403        http://www.math.tu-dresden.de/~adol-c/%
404        Adolc-2.0.0.
405%$$
406$pre
407
408$$
409A discussion has been added to the documentation for $cref/Jacobian/$$
410about its use of
411$cref/forward or reverse/Jacobian/Forward or Reverse/$$
412mode depending on which it estimates is more efficient.
413$pre
414
415$$
416A minor typo has been fixed in the description of
417$cref/W(t, u)/reverse_any/W(t, u)/$$ in $cref/reverse_any/$$.
418To be specific,
419$latex o ( t^{p-1} ) * t^{1-p} \rightarrow 0$$
420has been replaced by
421$latex o ( t^{p-1} ) / t^{1-p} \rightarrow 0$$.
422
423$head 01-06$$
424Made some minor improvements to the documentation in
425$cref/FunConstruct/$$.
426
427$end
Note: See TracBrowser for help on using the repository browser.