---------------------------------------------- lines 6-1049 of file: xrst/whats_new/2018.xrst ---------------------------------------------- {xrst_begin 2018} {xrst_spell cholmod da dd dt eigen gcc grep hpp ik mm msg mtother rel sql subvector suitesparse txt un wconversion wpedantic wshadow } Release Notes for 2018 ###################### mm-dd ***** 12-19 ===== The add_var_scale_log noise covariate option would sometimes fail to converge when the initial value of corresponding covariate multiplier :ref:`data_like@Measurement Noise Covariates@gamma_j (a, t)` was zero. This was because the derivative of the object w.r.t. this multiplier was zero even though zero is not the solution. This has been fixed by changing the definition when adding variances to use *gamma_j* for the variance (instead of the standard deviation). The :ref:`user_fit_meas_noise.py-name` example was modified so that it demonstrates how the new definition affects the :ref:`scaling of gamma` . 12-15 ===== Add options for how the measurement noise effect :ref:`option_table@meas_noise_effect` is defined. The gives the choice of :ref:`adding variances or standard deviations` . It also gives the choice to :ref:`scale` the added standard deviations for non-log densities. 12-14 ===== Add :ref:`user_fit_meas_noise.py-name` , an example that fits :ref:`gamma` using simulated data. 10-30 ===== #. The *avg_age_split* option was changed to the :ref:`option_table@Age Average Grid@age_avg_split` option. This way the :ref:`age_avg_table-name` does not appear to have the same primary key as the :ref:`age_table-name` . #. The :ref:`age_avg_table@Age Average Grid` is now output in the :ref:`age_avg_table-name` to make :ref:`option_table@Age Average Grid@age_avg_split` easier to use. #. There was a bug in the age_avg_split option when two splits occurred in the same :ref:`option_table@Age Average Grid@ode_step_size` interval. This has been fixed. #. There was a bug in the age_avg_split option when the minimum and maximum age in the :ref:`age_table-name` were equal. This case now results in an error message. #. If the :ref:`set option` command had an empty string for a value, the empty string was placed in the option table. This violated the :ref:`database@Null@Text can be Null, not Empty` rule and has been fixed. #. If the :ref:`option_table@Age Average Grid@age_avg_split` was not sorted, the program would error even if the :ref:`set_command-name` was trying to fix it. This has been changed so the set command can fix it. #. A check of the file :ref:`avg_age.csv` was added to the :ref:`db2csv_command.py-name` example. 10-22 ===== Start work on an :ref:`math_abstract-name` to the mathematics of dismod_at. 10-21 ===== Change the way that average integrands are computed; see :ref:`numeric_average-name` . This enables using a step size that varies with age; see :ref:`age_avg_table@Age Average Grid` . Here is one case of a speed comparison for this change using a uniformly spaced grid: before 4.9 seconds, after 3.6 second. Here is the memory comparison for the same case: before 288.7 MB, after 121.8 MB. This test takes advantage of the fact that the new method only integrates one cohort when *age_lower* = *age_upper* and *time_lower* = *time_upper* . It does not use *age_avg_split* to vary the spacing of the age grid. 10-13 ===== #. The :ref:`option_table@Age Average Grid@ode_step_size` documentation was changed to reflect the fact that it is also used for approximating the integrals in the average integrand. #. The documentation for the age corresponding to :ref:`rate_table@rate_name@pini` was fixed. To be specific, the corresponding age is the minimum age in the :ref:`age_table-name` , not the age corresponding to :ref:`age_table@age_id` zero. 10-05 ===== Fix typos in the :ref:`avg_integrand@Data or Avgint Table Notation` . To be specific, change :math:`a_i` to :math:`b_i`, :math:`s_i` or :math:`t_i` where appropriate. 09-30 ===== #. The *n_data_per_child* argument to the speed test has been replaced by :ref:`user_speed.py@ode_step_size` . #. Advance to cppad-0180925 and cppad_mixed-0180925. This had the following effect timing result for ``bin/speed.sh`` : .. csv-table:: :widths: auto ,user time,memory before,10.395 sec,1.265 GB after,9.376 sec,1.247 GB 09-28 ===== The program did not report an error when a :ref:`data_table@weight_id` in the data table was null. This has been fixed. 09-24 ===== The :ref:`ode` wish list entry has been extended and moved to the front of the list. 09-14 ===== An :ref:`smooth_table@Empty` smooth table would cause the program to crash. An error message is now printed for this case. 08-30 ===== The documentation for the :ref:`rate_table@child_smooth_id` and :ref:`rate_table@child_nslist_id` was improved. To be specific, these specify priors for the child :ref:`rate effects` and not for the child rates. 08-29 ===== Advance to ``cppad-20180827`` and ``cppad_mixed-20180829`` (working on speed). 08-22 ===== #. Add ``dismodat.py`` to the documentation under the command section. #. Advance to cppad-20180820 and cppad_mixed-20180821. This uses a new CppAD feature and resulted in the following change for :ref:`user_speed.py-name` : old_time=9.33 seconds, new_time=7.39 seconds. 08-13 ===== The fit_data_subset table had a an extra column (that was not in the API) named *data_subset_id* which has been removed. This extra column was identically equal to the :ref:`fit_data_subset_table@fit_data_subset_id` column. Note that *fit_data_subset_id* is a foreign key for :ref:`data_subset_table@data_subset_id` in the data_subset table. This follows the :ref:`database@Foreign Key` convention for the dismod_at database. 08-09 ===== #. Fix some bugs in :ref:`csv2db_command-name` . #. Advance to ``cppad-20180809`` and ``cppad_mixed-20180809`` . This fixes a bug in cppad (that originally showed up in dismod_at testing). 08-08 ===== Edit the :ref:`wish_list@ODE Solution@Prevalence ODE` wish list item. 08-07 ===== Add the :ref:`csv2db_command-name` wish list items (removed on :ref:`2019-09-24<2019@mm-dd@09-24>` ). 08-06 ===== #. The measurement integrand name, in the :ref:`get_started_db.py@Discussion` of the get started database, has been corrected from ``mtother`` to ``susceptible`` . #. The data column ``data_info`` was changed to ``c_data_info`` and a :ref:`get_started_db.py@Discussion` of this column was added to the get started example. 07-31 ===== Put more emphasis on the difference between the :ref:`parent rates` , :ref:`child rate effects` , and :ref:`adjusted rates` . 07-30 ===== #. Add the :ref:`install_settings.py@build_type` to the usage message that is printed when no command line arguments are give to ``dismod_at`` . #. Some dismod_at :ref:`commands` (e.g., :ref:`predict_command-name` ) were not trapping and reporting exceptions. This has been fixed. #. The following sentence was added to the :ref:`wish_list@ODE Solution@Prevalence ODE` item: This formulation of the ODE also have the advantage that it is stable even as :math:`S + C \rightarrow 0`; i.e, it will not get the associated nans cause by division of zero by zero. 07-27 ===== Add the :ref:`wish_list@ODE Solution@Prevalence ODE` wish list item. 07-26 ===== API Change ========== The :ref:`predict_table@sample_index` in the predict table was changed to be null (not zero) when the source for the last predict command is not :ref:`predict_command@source@sample` . This also change the :ref:`db2csv_command@predict.csv@s_index` in the ``predict.csv`` file generated by the db2csv command to be empty (not zero) for this case. Other Changes ============= #. Improve the discussion of the :ref:`csv2db_command@mtother` data in the db2csv command. #. Execute :ref:`db2csv_command-name` at end of :ref:`user_csv2db.py-name` example. #. A :ref:`predict_command-name` was added to the end of the user ``csv2db.py`` example and a discussion of these :ref:`csv2db_command@Predictions` was added. 07-25 ===== #. Add mention that, during a ``db2csv`` command, the age-time grid for rates is the same as the user's choice of grid for :ref:`csv2db_command@integrand@mtother` . #. Add discussion of why the default the prefix for eigen is different from the other prefixes. #. Change the default value of :ref:`install_settings.py@build_type` to ``debug`` . You have to change this to get the faster (``release`` ) version of dismod_at. #. Improve discussion of the :ref:`install_unix@Paths` needed during and after the install process. #. Advance to ``cppad_mixed-20180725`` . This should improve detection (during the :ref:`install` ) of when the default settings for :ref:`install_settings.py@extra_cxx_flags` do not work. 07-23 ===== #. Advance to ``cppad-20180723`` . #. Fix :ref:`log_table@unix_time` for the end of the commands that use ``dismodat.py`` was mistakenly reported as the same as the begin time. This has been fixed. #. Added the :ref:`csv2db_command-name` to help one get started using dismod_at. #. More discussion has been added for when an :ref:`set_command@option@init` is required after a set option command. 07-21 ===== Add restrictions on ( *a* , *t* ) arguments to :ref:`create_database@weight_table` *fun* ( *a* , *t* ) and smooth_table :ref:`fun(a, t)` in ``create_database`` . 07-13 ===== Advance to ``cppad_mixed-20180713`` . 06-30 ===== Advance to ``cppad-20180630`` , ``cppad_mixed-20180630`` , and remove ``checkpoint_newton_step`` from :ref:`install_settings.py-name` . This should make be faster and use less memory when :ref:`option_table@Optimize Fixed Only@quasi_fixed` is false. For the :ref:`user_speed.py-name` example with *n_children* =30 , *n_data_per_child* =20 , and *quasi_fixed* = ``false`` the elapsed time improved from ``14.1`` to ``8.3`` seconds. 06-29 ===== Advance to ``cppad-20180627`` and ``cppad_mixed-20180629`` . Again this is expected to be an improvement to the optimization of cppad functions when :ref:`install_settings.py@build_type` is ``release`` . 06-21 ===== #. Add text about failures during the dismod_at install correctness :ref:`tests` . #. The :ref:`init_command-name` and :ref:`db2csv_command-name` would hang if :ref:`node_table@parent` and *node_id* were equal in the node table. An error message is now generated for any case where a node was a descendant of itself. 06-20 ===== Advance to ``cppad-20180620`` and ``cppad_mixed-20180620`` . This should use less memory, and increase speed, during the optimization of cppad functions, which is only done when :ref:`install_settings.py@build_type` is ``release`` . 06-18 ===== Change the set command so that the possible sources include the :ref:`scale, truth` tables. 06-14 ===== Advance to ``cppad-20180613`` and ``cppad_mixed-20180614`` . This should use less memory during the optimization of cppad functions, which is only done when :ref:`install_settings.py@build_type` is ``release`` . In addition, it should fix a problem with ``cppad_mixed`` finding the file ``cholmod.h`` on some systems. 06-09 ===== Advance to using version 20180609 of :ref:`install_unix@Special Requirements@cppad_mixed` . This changes ``suitesparse`` from a special requirement to a :ref:`system requirement` . 06-04 ===== Advance to using version 20180604 of :ref:`install_unix@Special Requirements@cppad` and :ref:`install_unix@Special Requirements@cppad_mixed` . This will probably have no effect but might reduce the amount of memory ``dismod_at`` uses. 05-24 ===== A wish list :ref:`wish_list@meas_std` entry was added and the minimum_meas_cv entry was removed (because it was completed). 05-23 ===== **Warning** : this is not a backward compatible change to the user API. The ``minimum_meas_cv`` option was removed from the :ref:`option_table-name` and the column :ref:`integrand_table@minimum_meas_cv` was added to the integrand table. This enable one to used different minimum measurement coefficients of variation for different integrands. 05-21 ===== Advance to using :ref:`cppad-20180521` , and :ref:`cppad_mixed-20180521` . This should both reduce memory usage. 05-14 ===== There was a bug in the simulation of age difference and time difference prior means introduced on :ref:`04-24<2018-name>` . To be specific :math:`\sigma` was being used where :math:`\delta` should have been. 05-09 ===== A minimum_meas_cv and a :ref:`command diagram` entry were added to the wish list. The minimum_meas_cv entry has been completed; see :ref:`integrand_table@minimum_meas_cv` . 05-08 ===== Round off error could make some values in :ref:`fit_var_table-name` not satisfy the lower and upper limits for the corresponding variables. This has been fixed. 05-07 ===== Advance to using :ref:`cppad-20180507` , and :ref:`cppad_mixed-20180507` . This should both increase speed and reduce memory usage. 05-05 ===== #. The text describing the purpose of the :ref:`prior table` , :ref:`smooth table` , and :ref:`smooth_grid table` was improved. #. The :ref:`model_variables-name` section was improved. To be specific, the term subvector was changed to group of variables and more mention was made of the corresponding function. 05-04 ===== #. Advance to using :ref:`cppad-20180503` , and :ref:`cppad_mixed-20180503` . This should reduce the amount of memory used without adversely affecting its speed. #. Use :ref:`child rate effect` when referring to the a random effect :ref:`u_ik` . This distinguishes it from the corresponding rate for that child :ref:`r_ik` . 05-02 ===== #. It is possible for the :ref:`start_var_table-name` values to violate the lower and upper limits for a variable. An error message that specifies which variable's starting value violates the constraints is printed. (The fit used to terminate with no message when this occurred.) #. The :ref:`sample simulate` used to start its fits at the :ref:`truth_var_table-name` values. This has been changed to use the :ref:`start_var_table-name` values. 04-30 ===== #. A description of the log entries when using the :ref:`python_main` syntax was added. #. The documentation for log entry at the end of a command was corrected from ``done`` to :ref:`end` . #. The ``sql_command`` was modified to return its :ref:`sql_command@result` . #. The under construction warning was removed from the :ref:`modify_command-name` . 04-26 ===== #. The columns :ref:`db2csv_command@variable.csv@sim_v, sim_a, sim_t` were added to the :ref:`db2csv_command@variable.csv` file. #. The :ref:`modify_command-name` was marked as under construction. 04-25 ===== #. Add Instructions for running one :ref:`get_started` or :ref:`user` . #. Improve the :ref:`user_fit_random.py-name` example. #. Improve ``user_fit_fixed.py`` and move it to :ref:`user_fit_fixed_both.py-name` . #. Add the ``user_sample_simple.py`` example. #. There was a bug in the :ref:`sample_command-name` and the fit :ref:`fit_command@simulate_index` when the data set was empty. These have been fixed. #. The :ref:`fit_command@simulate_index@prior_sim_table` was note being used to replace the prior means when fitting with a *simulate_index* . This has been fixed. 04-24 ===== Change the simulate command to also output the :ref:`simulate_command@prior_sim_table` . Use this table to include variation of the prior means when using the ``sample`` command with the :ref:`sample_command@simulate` method; see :ref:`posterior@Simulation` in the discussion of the posterior distribution for maximum likelihood estimates. 04-23 ===== Improve the description for :ref:`posterior@Simulation` from the posterior distribution of maximum likelihood estimators that use priors. 04-22 ===== Add a proof that prevalence does not depend on other cause mortality; see :ref:`prev_dep-name` . 04-21 ===== **Warning** : this is not a backward compatible change to the user API. Change the name of the ``simulate_table`` to :ref:`data_sim_table-name` . In the data sim table change ``simulate_value`` to :ref:`data_sim_table@data_sim_value` and ``simulate_delta`` to ``data_sim_delta`` . 04-16 ===== #. Add a linear matrix :math:`B` to the prior in :ref:`posterior@Lemma 2` so that it can apply to computing the posterior statistics when we have difference priors. #. Add :ref:`posterior@Simulation` to the posterior simulation discussion. 04-13 ===== #. Add some text to make it easier to follow the final step in the :ref:`posterior@Lemma 2@Proof` of Lemma 2 of the posterior distribution section. #. Print an error and exit when the set option :ref:`set_command@option@name` is not a valid choice (the program used to put the invalid option in the option table). 04-12 ===== #. There is a problem with using the sample command :ref:`sample_command@simulate` method. The new :ref:`posterior-name` model section discusses the problem. #. The requirements for the last age (last time) priors were changed so they do not need to be null; see null under :ref:`dage_prior_id` and :ref:`dtime_prior_id` . This made it possible to modify the example :ref:`user_change_grid.py-name` so that it removes the last age (instead of one in the middle of the grid) without having to change any *dage_prior_id* values. There is a problem with using the sample command :ref:`sample_command@simulate` method. The model section :ref:`posterior-name` discusses the problem. 04-11 ===== Instructions for :ref:`smooth_table@Removing an Age or Time` from a smoothing grid were added. This is useful when one determines (through fitting) that there is not enough data to determine a variable, or that a variable is nearly linear in a region. 04-10 ===== The ``fit_random.py`` user example has been improved including a :ref:`user_fit_random.py@Discussion` of what is going on. 04-09 ===== There was a mistake in the :ref:`get_started_db.py@Discussion` of the ``get_started_db.py`` example. The adjusted other cause mortality for this example is :math:`\exp ( \alpha x ) \omega` not :math:`\alpha x \omega`. This has been fixed. 04-08 ===== Some uses have complained that it is hard to navigate the documentation. The links at the top of every page have been changed in an attempt to make this clearer. 04-07 ===== #. Add :ref:`option_table@Optimize Fixed Only@limited_memory_max_history_fixed` to the option table. The default for this option was previously hard coded into the program and could not be changed. As it turns out, we seem to get better convergence with larger values for this option when :ref:`option_table@Optimize Fixed Only@quasi_fixed` true. #. The documentation for the optimizer options have been split up into three groups: :ref:`fixed and random` , :ref:`fixed only` , and :ref:`random only` . 04-06 ===== #. The ``init`` command documentation was improved to include a list of the :ref:`init_command@Deleted Tables` . #. The :ref:`depend_var_table-name` was added to the set of tables deleted by the ``init`` command because it must be the same length as the :ref:`var_table-name` or the :ref:`db2csv_command-name` will fail. #. The db2csv command was improved so that it prints an error message when the length of any of the variable tables is not the same as the :ref:`var_table-name` . #. Advance to ``cppad_mixed-20180406`` . This allows for testing some new ideas, but does not yet have any effect on ``dismod_at`` . 03-21 ===== In the definition of :ref:`delta_i` , The text :math:`delta_i ( \theta )` was changed to :math:`\delta_i ( \theta )`. 03-13 ===== The documentation of the restrictions on the priors for the :ref:`random effects` has been improved. See :ref:`rate_table@Child Value Priors` and :ref:`rate_table@Child Difference Priors` . In addition, the error messages when these restrictions are violated has also been improved. 03-10 ===== The install :ref:`download` procedure was changed to use the following command to determine the version number: :: grep '^SET(dismod_at_version' CMakeLists.txt 03-08 ===== There was a mistake in the error message for wrong column type detected in an :ref:`input-name` table. To be specific, a syntax error would occur on the line :: msg = 'expected type ' + ty ++ ' for column ' + name This was fixed by changing ``++`` to ``+`` . 03-06 ===== #. Some users were using the type names ``INTEGER`` , ``REAL`` , and ``TEXT`` . The database specifications have been extended to allow for these :ref:`database@Type Names` , and the necessary changes were made. #. The error messaging when :ref:`db2csv_command-name` detected an invalid :ref:`database@Primary Key` has been improved. #. Change :ref:`db2csv_command-name` so it checks the type of all the columns in the :ref:`input-name` tables. 02-20 ===== Advance to ``cppad_mixed-20180220`` . This fixes a problem, for some compilers, where some friend functions in ``cppad_mixed.hpp`` were not defined. 02-17 ===== Change the user_diabetes.py example so that it constrains the child omega rates to vary with age and time using the parent_age_grid and *parent_time_grid* . 02-14 ===== #. Add child_age_grid and child_time_grid to the diabetes example problem parameters. #. Improve documentation of :ref:`rate_table@child_nslist_id` . 02-13 ===== The changes below are for user_diabetes.py : #. Add random_seed and tolerance_fixed to the problem parameters. #. Change fit_with_noise_in_data to be false, so less data can result in tests passing; i.e, makes automated testing faster. #. Change max_abs_rel_err to accept_rel_err . #. Change ode_step_size to be larger to make the automated testing run faster. 02-12 ===== The changes below are for user_diabetes.py : #. Add two child nodes (random effects) to the node_list . #. Changes so the example with random effects runs faster: Increase the :ref:`tolerance_fixed` . Reduce the number of points in the age and time grids. #. Set the :ref:`scale_var_table-name` equal to the :ref:`start_var_table-name` . This avoids nans during evaluation of the objective with random effects. #. Optimize first with no random effects and then use that as a starting point for optimizing with random effects. #. Fix a list by changing it from time_index_rate_parent to time_index_rate_child. #. Change number of time grid points in random effects from two to one (random effects are constant for this example). 02-11 ===== #. Advance to ``cppad_mixed-20180208`` (no change from user's perspective). #. Change ``db2csv_command`` so that it displays *eta_v* when ever it affects the fixed effects :ref:`scaling` ; see :ref:`db2csv_command@variable.csv@prior_info` . The changes below are for user_diabetes.py : #. Remove two priors that are no longer being used. #. Change the priors for the rates so use log :ref:`scaling` during the optimization process. #. Add derivative_test_fixed , and mulcov_dict to the set of problem parameters. #. Increase the number of points in the age and time grids. #. Correct documentation for covariate Multipliers . 02-09 ===== #. Detect and report an error when a data table :ref:`density` is ``log_students`` and :ref:`data_table@eta` is less than zero or null. #. Update the values used for *option_name* in the :ref:`option_table.py-name` example. 02-08 ===== #. Add :ref:`start_var` to the possible sources for the ``set`` command. #. Advance to ``cppad_mixed-20180208`` . This fixes a bug in the Laplace :ref:`density` in the data table when :ref:`option_table@Optimize Fixed Only@quasi_fixed` was ``false`` . #. Detect and report an error when the density in the data table is :ref:`density_table@Notation@Nonsmooth` . 02-05 ===== Advance to ``cppad_mixed-20180205`` . This is expected to improve the scaling of the fixed effect optimization (in some cases). 02-04 ===== The variable.csv :ref:`db2csv_command@variable.csv@start` column was only correct when :ref:`db2csv_command@variable.csv@var_type` was ``rate`` . This has been fixed. The changes below are for user_diabetes.py : #. Add truth2start , accept_rel_err , to the problem parameters. #. Add fitting of multipliers for the following covariates: market scan 2000 on :ref:`mulcov_table@mulcov_type@meas_value` , body mass index and sex on the :ref:`mulcov_table@mulcov_type@rate_value` for iota. 02-03 ===== The age and time limits in the :ref:`db2csv_command@data.csv` file were rounded off (as are most of its other columns) to reduce the space used when viewing the columns in a spread sheet program. The changes below are for user_diabetes.py : #. Make the standard deviations in the parent rate differences Problem Parameters . #. Change node_list example to only the parent node. #. Add integrand_list , ode_step_size , meas_repeat , quasi_fixed , to the problem parameters. 02-02 ===== All these changes are to user_diabetes.py which is still under construction. #. Added age and time variation to omega and chi. #. Increased number of optimizer iterations because there is feed back from the initial iota to prevalence at all ages. #. Increase number of age grid points to 9 so ages are closer to being integer valued. #. The Problem Parameters were moved into the documentation section of the this example. 02-01 ===== Added time variation to :ref:`rate_table@rate_name@iota` in the user_diabetes.py example. This example is still under construction, but it has some interesting techniques for simulating data and testing models. 01-31 ===== #. The :ref:`db2csv_command@variable.csv@start` column was added to the ``variable.csv`` file created by the :ref:`db2csv_command-name` . #. The :ref:`db2csv_command.py-name` example was improved to better demonstrate (and test) which field in :ref:`db2csv_command@variable.csv` are empty 01-30 ===== Improve the documentation for the :ref:`create_database@smooth_table` argument to the ``create_database`` python function. 01-28 ===== #. Add mention that :ref:`predict_table@sample_index` is always zero when the source for the predict command is :ref:`predict_command@source@fit_var` or :ref:`predict_command@source@truth_var` . #. Mention that under normal circumstances, :ref:`option_table@Optimize Fixed and Random@derivative_test` should be ``none`` . 01-26 ===== #. A special discussion of the prior mean, in the case where the density is :ref:`prior_table@mean@uniform` , was added. #. Improve error message when number of unique ages (times) :ref:`smooth_grid_table-name` does not agree with the corresponding :ref:`smooth_table@n_age` ( :ref:`smooth_table@n_time` ) in smooth table. #. The definition of the :ref:`adjusted standard deviation` for the log transformed densities was changed so that the standard deviation effect multiplies :ref:`Delta` . #. There was a bug in how :ref:`db2csv_command-name` determined the reference value for covariates in the :ref:`avgint_table-name` . This has been fixed. 01-25 ===== Add mention that the :ref:`simulate_command@meas_value` is not used during the simulate command. 01-24 ===== Change the specification for the :ref:`create_database@smooth_table` function ( *v* , *da* , *dt* ) = *fun* ( *a* , *t* ) so that ``None`` can be returned for *da* and *dt* when there is no such forward difference. In addition, change the :ref:`user_example-name` examples to use this feature. 01-23 ===== #. Improve documentation of which data points require a separate solution of the :ref:`integrand_table@integrand_name@ODE` . In addition, we added a discussion of the purpose of the ODE grid. #. Advance to ``cppad_mixed-20180123`` . This fixed a bug in ``cppad_mixed-20180122`` . 01-22 ===== #. Advance to ``cppad_mixed-20180122`` . This only makes sure the new version works and should not result in any change to ``dismod-at`` . #. Improve the instructions for combining both :ref:`install_settings.py@dismod_at_prefix@Debug and Release` versions of dismod_at on the same system. 01-21 ===== #. Include discussion of the :ref:`weighted residual` in the :ref:`simulate_command-name` documentation. #. Some other minor improvements and corrections were made to the documentation. #. The calculation of the :ref:`data_sim_table@data_sim_value` was corrected to allow for negative values in :ref:`density_table@Notation@Linear` cases. (The mistake fixed here was made during the changes on :ref:`2018@mm-dd@01-20` ; see below.) #. Check for and abort with an error message when there is a ``null`` value in the data table :ref:`data_table@meas_value` column. 01-20 ===== #. The method used by the :ref:`simulate_command-name` was simplified and documented. To be specific, the average integrand, instead of the simulated data value, was used to compute the transformed standard deviation. #. The fields *meas_value* and *meas_std* in the data_sim table were changed to :ref:`data_sim_table@data_sim_value` and *data_sim_delta* . 01-18 ===== #. The flags ``-Wpedantic`` , ``-Wshadow`` and ``-Wconversion`` were added to the default value of :ref:`install_settings.py@extra_cxx_flags` . In addition, fix the corresponding warning messages generated by gcc during the :ref:`install_unix@dismod_at` part of the instal process. #. Fix an un-used variable warning when :ref:`install_settings.py@build_type` is ``release`` . #. Replace the default acceptable tolerance by the :ref:`tolerances` specified in the options table. (The acceptable tolerance is used when the optimizer is having trouble obtaining the desired tolerance.) #. Advance to ``cppad_mixed-20180117`` . This fixes warnings with the new compiler flags above. 01-16 ===== The ``data.csv`` file did not include the :ref:`db2csv_command@data.csv@sim_value` and *sim_std* columns when there was no :ref:`fit_command@simulate_index` in the previous fit command. If there is a :ref:`data_sim_table-name` the default value zero is used for *simulate_index* when it does not appear in the previous fit command. 01-12 ===== There was a bug in the change on 01-09. To be specific, the case where a child had no :ref:`random effects` , and the child had data with no rate covariates, was not handled correctly. This has been fixed. 01-09 ===== A change was made to speed up the calculations for measurements that have the reference value for all the rate covariates; see :ref:`mulcov_table@mulcov_type@rate_value` in the mulcov table documentation. {xrst_end 2018}