\(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\R}[1]{ {\rm #1} }\) \(\newcommand{\W}[1]{ \; #1 \; }\)
2017¶
View page sourceRelease Notes for 2017¶
mm-dd¶
12-28¶
API change : The ran_likelihood function was changed from having
a2_vectortoa3_vectorarguments and results.The
ran_likelihood_jacfunction was changed from havinga1_vectortoa2_vectorarguments and results.The method for computing the Hessian of the random likelihood with respect to the random effects; \(f_{uu} ( \theta , u )\) was changed from using
sparse_hesto using CppADsubgraph_jac_revapplied to the gradient of the random likelihood \(f_u ( \theta , u )\). This resulted in the following difference in the ar1_xam.sh : before initialize_seconds =34.16 , after initialize_seconds =0.82 . The following settings inar1_xam.shwhere modified for this test: number_random =50000 and random_seed =123 .
12-25¶
Change an the user_examples to use template implementations of the virtual public base_class functions.
12-22¶
Improve comments in example_install.sh .
12-16¶
Advance to
cppad-20171215.The sparsity pattern for the random Hessian (Hessian of random likelihood w.r.t random effects) was changed from using CppAD’s Hessian sparsity patterns to using CppAD’s subgraphs of the Jacobian of the gradient of the random likelihood . This changed the
ar1_xaminitialize_seconds from 2.5 to 1.0 (on one test system).Change the mean_logit_probability used during make check from -0.25 to -0.50 (to reduce the chance of a random failure).
Correct the threshold for error from 4.0 to 5.0 in the definition of capture_xam_ok .
12-10¶
10-27¶
Reduce the chance of a random failure in capture_xam.cpp during the Speed tests.
10-24¶
Add comments about Testing Speed and Memory .
Add the for_hes_sparsity argument to the configuration script.
10-09¶
The data_mismatch.cpp example was failing when
use_atomic_cholesky was yes .
This was because
the Eigen package was short circuiting operations when values were zero.
This caused the CppAD operation sequence to be incorrect for non-zero values
of the independent variables.
The initialize routine has been changed to perturb zero values
to avoid this problem. This is not a bullet proof solution because
zero may result from calculations.
10-07¶
Fix a bug in the Newton step initialize routine.
This bug was probably introduced on the master branch on 2017-03-22
and only affected the case where
use_atomic_cholesky was yes .
09-30¶
There was a mistake in the logic for recovering from random effect optimization failures during optimization of the fixed effects. This has been fixed.
09-23¶
Improve error handling and messaging.
Make the exception class public.
09-21¶
If optimizing the fixed effects, trap errors in optimizing random effects at the fixed effects level, so do not terminate but rather cut back and try a smaller fixed effects step size.
09-18¶
If during optimize_random an nan occurs in the random
objective, the corresponding source code is re-run with the random
effects corresponding to the last such occurrence.
This often provides more useful error messaging.
09-16¶
The optimization of the random effects, optimize_random ,
has been changed to back up when it detects a nan in the function
evaluation. This is similar to how optimize_fixed works.
09-15¶
The
cmake.shconfiguration flaglog_fatal_errorwas removed.An Ipopt intermediate_callback function was added to the Ipopt example.
09-14¶
The fixed_solution structure was changed to be public.
This was necessary because it is the type for the return
value of optimize_fixed which is a public routine.
09-02¶
Instructions were added for building both
Debug and Release
version of cppad_mixed .
08-30¶
Advance to cppad-20170830. This fixes a problem with the cmake command; to be specific,
Policy CMP0046 is not set: Error on non-existent dependency
08-01¶
The clang-802.0.42 compiler complained that
routine ran_obj_tst was not defined in the statement
friend bool ::ran_obj_tst(void);
in the file include/cppad/mixed/cppad_mixed.hpp .
This has been fixed.
04-24¶
Add fixed_scale for specifying the scale for the fixed effects optimization. Change the optimize_fixed.cpp example to use fixed_scale to continue an optimization from where it left off.
04-23¶
Improve the Ipopt example
ipopt_xam/by returning and checking the final solution for the primal variables.Include Syntax and setting LD_LIBRARY_PATH in the
bin/check_install.shexample.Add the
hide_ipopt_scalingoption to the install configuration script run_cmake.sh . (This option was removed on 2018-02-10 .)
04-06¶
Add LD_LIBRARY_PATH to
the bin/check_install.sh example.
04-02¶
Advanced to
cppad-20170402. This fixes a bug in the CppAD optimizer.Simplify the install procedure by using build_type and prefix values in run_cmake.sh during the other installs. The install_unix procedure has been modified to reflect this change.
03-27¶
Add no_conditional_skip option to CppAD function optimization
when optimize_cppad_function
is yes .
03-25¶
Advance to cppad-20170320 .
This gave a significant improvement in
optimize_fixed_seconds for ar1_xam.cpp
and both
optimize_fixed_seconds , initialize_bytes ,
for capture_xam.cpp .
This was due to a change in the way CppAD computes sparse Hessians
(see the heading 03-25 on the CppAD whats new page for 2017).
03-23¶
API:
The actual fields in the initialize return value are no longer
specified; see size_map .
03-20¶
API: remove bool_sparsity from information_mat (use the corresponding derived_ctor argument in its place).
Advance to
cppad-20170320.
03-12¶
API:
change information_rcv
from type sparse_mat_info to
d_sparse_rcv .
This removes the last use of sparse_mat_info from the
public part of the cppad_mixed base_class .
The intention here is to remove the private use
(not part of user API) slowly over time.
03-11¶
API change A_rcv from type sparse_mat_info to d_sparse_rcv .
03-10¶
Advance to cppad-20170310
(has a sparse_rc sizing constructor).
03-09¶
Move some type definitions from the cppad_mixed class
to the CppAD::mixed namespace; see
typedef .
03-08¶
API: Move the arguments bool_sparsity and A_rcv from initialize to the base class constructor cppad_mixed .
API: Change
a1d_vectoranda2d_vectortoa1_vectoranda2_vectorrespectively.
03-06¶
Advance to
cppad-20170306. This fixes a bug in the sparsity pattern efficiency and in the optimization of conditional expressions inCppAD::ADFun<%Base%>%objects.Add the existing argument to the example install script.
03-02¶
Simplify the install procedure. Now it is only necessary to adjust the settings in run_cmake.sh . (These settings are now automatically used by all the
bin/install_package .shscripts.)The configuration variable extra_cxx_flags has been changed to extra_cxx_flags .
Document the necessary install order for Special Requirements .
Make some improvements to the
bin/install_omhelp.shscript (this can be used to build the documentation forcppad_mixed.)
03-01¶
The
solution check failedwarning was being output because the check was not properly accounting for the scaling. This has been fixed.The scaling has be fixed to correctly account for the constraints corresponding to absolute value terms in the negative log-density .
Document the fact that an nlp_scaling_method cannot be specified for the fixed effects.
01-26¶
Change the objective and constraint function scaling so that it is done by Ipopt using it’s user-scaling option. This fixes the ipopt_trace so that it prints the original objective (instead of the scaled object which depends on the starting point).
01-24¶
The fixed effects objective and constraint functions are now scaled so that the maximum absolute norm of the gradient of each of these functions is one; see nlp_scaling_method .
01-22¶
Some of the tests were using the integer function std::abs by mistake.
Change abs to fabs so this does not happen.
01-14¶
Increase the trace-adaptive field width
for step size from 7 to 11 characters
(so that exponential format fits in the field); see
derivative_test .