Prev Next whats_new_17

@(@\newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\W}[1]{ \; #1 \; }@)@ This is cppad_mixed--20220519 documentation: Here is a link to its current documentation .
Changes and Additions to cppad_mixed During 2017

12-28
12-25
12-22
12-16
12-10
10-27
10-24
10-09
10-07
09-30
09-23
09-21
09-18
09-16
09-15
09-14
09-02
08-30
08-01
04-24
04-23
04-06
04-02
03-27
03-25
03-23
03-20
03-12
03-11
03-10
03-09
03-08
03-06
03-02
03-01
01-26
01-24
01-22
01-14

12-28
  1. API change: The ran_likelihood function was changed from having a2_vector to a3_vector arguments and results.
  2. The ran_likelihood_jac function was changed from having a1_vector to a2_vector arguments and results.
  3. 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_hes to using CppAD subgraph_jac_rev applied 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 in ar1_xam.sh where 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
  1. Advance to cppad-20171215.
  2. 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_xam initialize_seconds from 2.5 to 1.0 (on one test system).
  3. Change the mean_logit_probability used during make check from -0.25 to -0.50 (to reduce the chance of a random failure).
  4. Correct the threshold for error from 4.0 to 5.0 in the definition of capture_xam_ok .


12-10
  1. Move documentation from IHME to github; see
    https://bradbell.github.io/cppad_mixed/doc/index.html .
  2. The git program was added to the system requirements.
  3. The download instructions were changed to use git for distributing the program.


10-27
Reduce the chance of a random failure in capture_xam.cpp during the speed tests.

10-24
  1. Add comments about testing speed and memory .
  2. 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
  1. Improve error handling and messaging.
  2. 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
  1. The cmake.sh configuration flag log_fatal_error was removed.
  2. 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
  1. Improve the Ipopt example ipopt_xam/ by returning and checking the final solution for the primal variables.
  2. Include syntax and setting LD_LIBRARY_PATH in the bin/check_install.sh example.
  3. Add the hide_ipopt_scaling option 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
  1. Advanced to cppad-20170402. This fixes a bug in the CppAD optimizer.
  2. 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
  1. API: remove bool_sparsity from information_mat (use the corresponding derived_ctor argument in its place).
  2. 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
  1. API: Move the arguments bool_sparsity and A_rcv from initialize to the base class constructor cppad_mixed .
  2. API: Change a1d_vector and a2d_vector to a1_vector and a2_vector respectively.


03-06
  1. Advance to cppad-20170306. This fixes a bug in the sparsity pattern efficiency and in the optimization of conditional expressions in CppAD::ADFun<%Base%>% objects.
  2. Add the existing argument to the example install script.


03-02
  1. 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.sh scripts.)
  2. The configuration variable extra_cxx_flags has been changed to extra_cxx_flags .
  3. Document the necessary install order for special requirements .
  4. Make some improvements to the bin/install_omhelp.sh script (this can be used to build the documentation for cppad_mixed.)


03-01
  1. The solution check failed warning was being output because the check was not properly accounting for the scaling. This has been fixed.
  2. The scaling has be fixed to correctly account for the constraints corresponding to absolute value terms in the negative log-density .
  3. 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 .
Input File: omh/whats_new/17.omh