const int &y. In the implementation for pow make the integer base case agree with the documentation; i.e., change from
const int &x.
ipopt_cppad/ipopt_cppad_odeexample was provided in the section ipopt_cppad_ode .
warning C4396:%...%for every template function that is declared as a both a friend and inline (it thinks it is only doing this for specializations of template functions). The warnings are no longer generated because these
inlinedirectives are converted to empty code when a Microsoft Visual C++ is used.
tanh(x)was added to the unary_standard_math functions. The
erffunctions were removed from the Base requirements . The restrictions about the Base class were removed from abs , atan2 , LuRatio , erf .
Visual Studio Version 9.0 could not handle the large number of static constants in the CppAD erf function. This function was changed to a simpler representation that is much faster and that is differentiable at all points (not defined differently on subregions). The down side to this is that the new version is not as accurate.
ipopt_cppad/ipopt_cppad_odehelper routines to use
cppad_ipopt_nlp(since removed), multiple argument forward (completed with forward_dir ), and sparsity patterns (sparsity patterns has been fulfilled).
ipopt_cppad/ipopt_cppad_odeto use @(@ y(t) @)@ for the solution of the ODE to distinguish it for @(@ x @)@, the vector we are optimizing with respect to.
ipopt_cppad/ipopt_cppad_odeto a case where @(@ x(t) @)@ is a pair of exponential functions instead of a linear and quadratic. Fixed some of the comments in this example and included the source code in the documentation (which was missing by mistake).
ipopt_cppad/ipopt_cppad_odeto a case where there are two components in the ODE (instead of one). Also removed an initialization section that was only intended for tests with a specific initial value.
ipopt_cppad/ipopt_cppad_ode, an example and test that optimizes the solution of an ODE. Change
eval_rin ipopt_cppad_nlp . Fix a dimension of
In ipopt_cppad_nlp , combined
fg_info->range_index()into a single function called
fg_info->index(). Also added more error checking (if
NDEBUGis not defined).
This did not show up in testing because there currently is no test offor(j = 0; j < n_; j++) - x_ad_vec = x[j]; + x_ad_vec[j] = x[j];
ipopt_cppad_nlpwhere the operation sequence depends on the value of @(@ x @)@.
ipopt_cppad_nlp.cppto be more efficient.
push_vectormember function was missing from the vectorBool class. This has been fixed. In addition, it seems that for some cases (or compilers) the assignment
did not work properly when both
x[i] = y[j]
vectorBool. This has been fixed.
The ipopt_cppad_nlp example has been extended so that it allows for both scalar and vector evaluation of the objective and constraints; see the argument
fg_vectorin ipopt_cppad_nlp . In the case where there is not a lot of common terms between the functions, the scalar evaluation may be more efficient.
CppAD::vectortemplate class. This makes it easy to accumulate multiple scalars and simple vectors into one large
falsecase. This has been fixed. In addition, the missing
retapedocumentation was added.
SparseHessian. An optional sparsity pattern argument was added to
SparseHessianso that it need not be recalculated each time.
SparseJacobian. An optional sparsity pattern argument was added to
SparseJacobianso that it need not be recalculated each time.
The example in sparse_hessian pointed to hessian.cpp instead of sparse_hessian.cpp . This has been fixed.
retapeflag has been added to speed_main . In addition the routines link_det_minor , link_poly , and link_ode pass this flag along to the speed test implementations (because the corresponding tests have a fixed operation sequence). If this flag is false, a test implementation is allowed to just tape the operation sequence once and reuse it. The following tests use this flag: adolc_det_minor.cpp , cppad_det_minor.cpp , cppad_ode.cpp , adolc_poly.cpp , cppad_poly.cpp .
Create specialized zero order forward mode routine that should be faster, but does not test out as faster under cygwin g++ (GCC) 3.4.4.
doublecases; see speed_main . In addition, added the examples ode_evaluate.cpp and sparse_hessian.cpp .
Changed the speed_main routines defined for each package from
link_name. For example, in
speed/cppad/det_minor.cpp, the function name
compute_det_minorwas changed to
deletedirectly. This makes it easy to check for memory allocation errors and leaks (when
NDEBUGis not defined). Also include in documentation sub functions that indicate the
sparse_hessianspeed test is not available for double_sparse_hessian.cpp , fadbad_sparse_hessian.cpp , and sacado_sparse_hessian.cpp .
1. Also added a wish list sparsity pattern entry (the sparsity pattern entry has been fulfilled).
Change the name of
speedtest.cppto speed_program.cpp .
speed/examplewere missing. This has also been fixed.
x op y
opwas a member operator of that class. This has been fixed by making all such member functions friends instead of members of
Remove compound assignment entry from wish list (it was fixed on 2007-05-26 ). Add an expression hashing entry to the wish_list (it has since been removed). Add Library and Scripting Languages to the wish list (this has since been fulfilled by the example ad_in_c.cpp ).
configurecommand line options.
1e-13. A test for this has been added to the
winstead of just one component