$Id: whats_new_14.omh 3262 2014-05-16 15:35:57Z bradbell $
/* --------------------------------------------------------------------------
CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-14 Bradley M. Bell

CppAD is distributed under multiple licenses. This distribution is under
the terms of the 
                    GNU General Public License Version 3.

A copy of this license is included in the COPYING file of this distribution.
Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
-------------------------------------------------------------------------- */

$begin whats_new_14$$
$dollar @$$
$spell
	op
	hpp
	taylor
	forwardzero
	forwardone
	forwardany
	const
	doxygen
	ipopt
	adolc
	colpack
	Jacobian
	openmp
	pthread
	bthread
	isnan
	onetape
	retape
	fadbad
	sacado
	boolsparsity
	cmake
	docdir
	CppAD
	cppad
	datadir
$$

$section CppAD Changes and Additions During 2014$$

$head Introduction$$
This section contains a list of the changes to CppAD during 2014
(in reverse order by date).
The purpose of this section is to
assist you in learning about changes between various versions of CppAD.

$head 05-16$$
There was a mistake in printing the arguments for 
$code CSumOp$$ and $code CSkipOp$$ when using the undocumented
$code TRACE$$ option during forward mode (available in files of the form 
$codei%cppad/local/%*%sweep.hpp/%$$).
This has been fixed.

$head 05-14$$
$list number$$
There were some global variables in the file 
$code cppad/local/op_code.hpp$$ that might have caused multiple definitions
during link time for CppAD applications. 
These variables have been changed to be local so that this cannot happen.
$lnext
There was a mistaken assert that the number of arguments for the 
$code BeginOp$$ was zero that caused an abort when using the undocumented
$code TRACE$$ option available in files of the form 
$codei%cppad/local/%*%sweep.hpp/%$$.
This has been fixed.
$lend

$head 03-18$$
$list number$$
The 
$cref/size_taylor/FunDeprecated/size_taylor/$$
and
$cref/capacity_taylor/FunDeprecated/capacity_taylor/$$
functions were deprecated;
use $cref size_order$$ and $cref capacity_order$$ instead.
$lnext
The documentation for $cref forward$$ and the examples
$cref forward.cpp$$, $cref forward_order.cpp$$, have been improved. 
To be more specific, $cref forward_order$$ now references the special
cases $cref forward_zero$$, $cref forward_one$$ and the new case
$cref forward_two$$.
$lend

$head 03-17$$
The 
$cref/move semantics/CppAD_vector/Assignment/Move Semantics/$$
version of the $code CppAD::vector$$ assignment statement
was not checking vector sizes.
This has been fixed so that things work the same with compilers
that do not have move semantics.
(Note that with move semantics, no extra memory allocation is done
even if the target vector has a different size.)

$head 03-09$$
The documentation links
$code forwardzero$$, $code forwardone$$, and $code forwardany$$
have been changed to
$cref forward_zero$$, $cref forward_one$$, 
and $cref forward_order$$ respectively.
This may affect links from other web pages to the CppAD documentation.

$head 03-05$$
The names $icode p$$ and $icode q$$ in the 
$cref/forward/forward_order/$$,
$cref/reverse/reverse_any/$$,
$cref atomic_forward$$, and 
$cref atomic_reverse$$ functions
were reverse so that $icode%p% <= %q%$$. 
This is only a notational change to make the arguments easier to remember.

$head 03-02$$
$list number$$
In the output for the speed
$cref/correct/speed_main/test/correct/$$ test,
mention which tests are not available. 
Note that the set of available tests can depend on the
$cref/list of options/speed_main/option_list/$$.
$lnext
In the documentation for
$cref/n_sweep/sparse_jacobian/n_sweep/$$,
mention that it is equal to the number of colors determined by the
$cref/color_method/sparse_jacobian/work/color_method/$$.
$lnext
The $cref speed_cppad$$ tests were simplified by removing the printing
of auxillary information related to the 
$cref/optimize/speed_main/option_list/optimize/$$ option.
Future auxillary information will be passed back in a manner similar to
$cref/n_sweep/link_sparse_jacobian/n_sweep/$$ for the sparse jacobian test.
$lnext
$cref/Move semantics/CppAD_vector/Assignment/Move Semantics/$$
were added to the $code CppAD::vector$$ assignment operator.
$lend

$head 03-01$$
$list number$$
Change the prototype for $icode row$$ and $icode col$$ in the 
$cref link_sparse_jacobian$$ speed test to be $code const$$; i.e.,
they are not changed.
$lnext
Move $icode x$$ near end of $cref link_sparse_hessian$$ speed test
parameter list,
(as is the case for $cref link_sparse_jacobian$$).
$lend

$head 02-28$$
The $cref/data/CppAD_vector/data/$$ function was added to the
$code CppAD::vector$$ template class.

$head 02-27$$
The CppAD developer documentation for the subdirectory
$code cppad/ipopt$$ was not being built by the command 
$code bin/run_doxygen.sh$$. 
This has been fixed.

$head 02-26$$
$list number$$
The 
$cref/adolc/speed_adolc/$$ and
$cref/cppad/speed_cppad/$$ sparse jacobian speed tests now print out
$cref/n_sweep/sparse_jacobian/n_sweep/$$.
$lnext
The size of some of the $cref speed$$ test cases has been increased
to test behavior for larger problems.
$lnext
A link to $cref ode_evaluate$$ was missing in the
$cref/Speed Utility Routines/speed_utility/Speed Utility Routines/$$ table.
This has been fixed.
$lend


$head 02-23$$
The $cref/color_method/sparse_jacobian/work/color_method/$$
option was added to the sparse Jacobian calculations.
This enables one to use $cref/ColPack/colpack_prefix/$$ 
do color the rows or columns.
The speed test $cref/colpack/speed_main/option_list/colpack/$$ option 
was also added (but not yet implemented for 
$cref/sparse_hessian/link_sparse_hessian/$$ speed tests).


$head 02-22$$
The program names in
$cref  thread_test.cpp$$ where changes from
$icode%threading%_test%$$ to $codei%multi_thread_%threading%$$
where $icode threading$$ is $code openmp$$, $code pthread$$ or $code bthread$$.

$head 02-17$$
Fix ambiguous call to $cref/isnan/nan/isnan/$$ 
during MS Visual Studio 2012 compilation.

$head 02-15$$
$list number$$
The $cref/boolsparsity/speed_main/option_list/boolsparsity/$$ option
was added to the $cref speed_main$$ program.
$lnext
The $code retape$$ option what changed to 
$cref/onetape/speed_main/option_list/onetape/$$ so that the default
is to retape (option not present).
This was done because 
$cref/fadbad/fadbad_prefix/$$ and
$cref/sacado/sacado_prefix/$$ always retape.
$lnext
The documentation, and example source code, for all the speed
$cref/options/speed_main/option_list/$$ was improved
(made clearer).
$lnext
Improve the success rate for 
$cref speed_test.cpp$$ and $cref time_test.cpp$$.
$lend

$head 01-26$$
The destination directory for the
$cref/cppad documentation/cmake/cmake_install_docdir/$$
is now set separately from the data directory
using the $code cmake$$ option
$codei%
	-D cmake_install_docdir=%cmake_install_docdir%
%$$
This has increased the flexibility of the documentation installation
and removed the need for the option
$codei%
	-D cppad_documentation=%yes_or_no%
%$$
which has been removed.
	
$head 01-21$$
The destination directory for the
cppad documentation
used to be one of the following:
$codei%
	%prefix%/%datadir%/doc/cppad-%version%
	%prefix%/%datadir%/doc/%postfix%cppad-%version%
%$$
This has been changed by dropping the $icode version$$ number
at the end of the directory name.

$head 01-10$$
The change on $cref/2013-12-27/whats_new_13/12-27/$$
caused a conversion error in $cref atan2$$ when it was used with
$code AD< AD<double> >$$ arguments (and other similar cases).
This has been fixed.

$end
