![]() |
Prev | Next | whats_new_2015 |
cppad
and cppad_mixed
.
to_string
utility in place off
dismod_at/include/to_string.hpp
.
cppad_mixed
(rerun bin/install_cppad_mixed.sh
).
This fixed a bug in that package.
cppad
(rerun bin/install_cppad.sh
).
This should have been done on 12-09 when we converted to using
cppad_mixed
package.
cppad_mixed
(rerun bin/install_cppad_mixed.sh
).
cppad_mixed
(rerun bin/install_cppad_mixed.sh
).
dismod_at
that has
cppad_mixed
split out as a separate package.
The following definitions are no longer used by the
dismod_at cmake command
:
cppad_mixed_set_sparsity
,
cppad_mixed_libdir
, and
cppad_mixed_prefix
.
fit_residual
table to the
fit_data_subset_table
.
This is a better name as evidenced by the fact that a
separate data_subset_id
column is no longer necessary;
see dev::fit_data_subset_table::fit_data_subset_id
.
start_command
to have the
source
argument.
The
source
corresponding to its previous usage is
prior_mean
.
The fit_var
option
uses the results of one fit as the starting value for the next.
None
(not empty string) when the corresponding database value is null
.
The effected the
smooth_table
values for
mulstd_value_prior_name
,
mulstd_dage_prior_name
,
mulstd_dtime_prior_name
.
It also effected the
rate_table
values for
parent_smooth
,
child_smooth
.
bin/import_cascade.py
example now outputs its files
in the same direction as its option.csv
file,
(instead of a subdirectory with the same name as the cascade run).
This is because the option file is not general purpose
and should be in a directory that is special for the particular case.
test/ihme/22906.py
, a test (under construction)
that fits ihme model number 22906.
bin/database2csv.py
data.csv
file so
meas_value
is next to
avgint
.
prior_none
and prior_zero_one
the first
two priors so they are easy to reference by their
prior_id
.
test/ihme/22906.py
allow for jump between age 30
and 31 (at any time).
bin/import_cascade.py
.
fit_command
was using the mean for the variable values,
instead of the values specified in start_var_table
.
This has been fixed.
cppad_mixed ipopt_fixed_check_grad_f
(not yet part of cppad_mixed
user API).
fit_var_value
column in the fit table has been changed to
the fit_var_value
column.
cppad_mixed ran_like
was non-empty.
This has been fixed.
In addition, the cppad_mixed
sub-package now detects
when this is the case and reports the error.
Furthermore, there were some cases where the model for the data
did not depend on the random effects, but the Laplace approximation
was still being applied (correct but not efficient).
This has also been fixed.
cppad_mixed capture_xam.cpp
.
bin/setup.py
that could cause the
python install
command to fail.
This has been fixed.
bin/import_cascade.py
to take advantage of the
null
option for the rate
parent_smooth_id
and
child_smooth_id
.
cppad_mixed fixed likelihood
@(@
g(\theta)
@)@.
cppad_mixed constraint
function
@(@
c(\theta)
@)@
when cppad_mixed quasi_fixed
is false.
age_id
,
time_id
and
var_id
the var_table
.
bin/install_cppad.sh
.
speed
directory.
Increase the number of random effects in cppad_mixed capture_xam.cpp
to
reduce the change of false negative tests.
Increase the number of data points in user_speed.py
for the same reason.
(This is reasonable because cppad_mixed
is now faster and uses
less memory.)
dev::get_table_column.cpp
so it will handle upper case for
column types. In addition, if a column has an invalid type, report the
table and column and invalid type.
dismod_at
that a specific
parent rate (child rate effect) is always zero by setting
parent_smooth_id
( child_smooth_id
)
to null
.
This reduces the number of model_variables
.
example/user/speed.py
test was modified to take advantage
of this feature.
The memory requirement reported by massif decreased from
21.45 MB to 12.64 MB.
The time in Ipopt decreased from
6.142 sec to 2.477 sec
the time in NLP function evaluations decreased from
16.760 to 10.321.
The number of grid points for each of the child rate effects
(random effects) was then increased from one to four.
mixed_cppad
to cppad_mixed
.
cppad_mixed optimize_random
and
cppad_mixed optimize_fixed
.
This is represented by
bound_random
in the option table.
relrisk
and mtwith
integrands were not being
computed properly.
This has been fixed.
database2csv.py
output files (when they should have been there).
This has been fixed.
bin/database2csv.py
to display simulated data
fit_simulate_index
is not empty.
fit_simulate_index
to fit simulated data; see user_fit_sim.py
.
iota_pos_rho_zero
and iota_zero_rho_pos
rate_case
options were reversed.
This bug was introduced on 10-29
and has been fixed.
cppad_mixed ran_like
virtual
function must be implemented for both a1_double
and a2_double
(one used to only need to implement a2_double
).
bin/database2csv.py
to only take one argument.
dismod_at file_name command
i.e., switch the order of
file_name
and
command
.
bin/database2csv.py
.
This is just an example of how one might view the
information in the database.
It is not documented or tested and may change with time.
bin/import_cascade.py
,
another undocumented example that may change with time.
valgrind --tool=massif
reported the following
reduction for the maximum memory required by simulated.py
:
old = 21.73 MB
,
new = 478.8 KB
.
In addition, Ipopt reported the following
total CPU secs in NLP function evaluations:
old = 12.98
,
new = 8.724
.
node_rate_value_info
was reverted because it used three times
as much memory and time.
The name was however changed from node_rate_value_info
to
rate_case
to avoid confusion with
dev::pack_info_node_rate.cpp
.
In addition, the correction of the bug in dev::eigen_ode2.cpp
was retained.
nan
appears in the database;
see real cannot be nan
.
dev::residual_density.cpp
function that should not be negative.
This gives feedback as to the cause of CppAD's message that
a forward mode result is nan
.
bin/install_cppad.sh
speed
directory.
They are now run separately from the correctness tests with the command
make speed
See instructions for running the
tests
.
lower <= mean <= upper
,
except for the uniform density case
std > 0
,
and in the log density cases
eta
is not null.
dev::eigen_ode2.cpp
routine whereby
nan
could result even if the rates satisfied their prescribed
conditions. This has been fixed.
dev::eigen_ode2.cpp
so that it works for all combinations of rates
and remove node_rate_value_info
from the option_table
.
Note that this is different from dev::pack_info_node_rate.cpp
(which is only in the developer documentation).
{ 'name':'parent_node_id' , 'value':'parent_node_id' }
was replace by the row
{ 'name':'parent_node_name' , 'value':'parent_node_name' }
cppad_mixed
package; see
cppad_mixed quasi_fixed
.
test/cppad_mixed/binomial.cpp
test failed by chance
during testing
.
cppad_mixed optimize_fixed
effects
procedure can now uses a BFGS method (and requires much less memory).
The
cppad_mixed_newton
option in the
setup
can be used to select the old Newton method.
cppad_mixed_set_sparsity
option was also added to the
setup
.
approx_mixed
sub-package name was changed to
cppad_mixed
. In addition example names of the form
approx_name
where changed to
mixed_name
; e.g.,
cppad_mixed mixed_derived
.
cppad_mixed_eigen
library was not being installed
and the bin/check_cppad_mixed.sh
test failed.
This has been fixed.
cppad_mixed data_mismatch_xam.cpp
.
test/devel/cppad_mixed/zero_random.cpp
and
test/user/zero_random.py
.
cppad_mixed ipopt_options
was added for the random effect in
cppad_mixed optimize_random
and
cppad_mixed optimize_fixed
.
bin/install_cppad.sh
to be re-run.
world
and should have been canada
).
This has been fixed.
In addition, the fitted values are now checked at the end of the example
(so that in the future, this type of mistake will be automatically detected).
bin/install_cppad.sh
to be re-run.
cppad_mixed newton_step
function was not taking advantage
of the recent memory saving changes to CppAD
(using bool_sparsity_enum
instead of pack_sparsity_enum
).
This has been fixed.
cppad_mixed newton_step
was being recorded, but not used,
and hence more memory was used, instead of memory being saved.
This has been fixed.
example/devel/cppad_mixed/user/capture_xam.cpp
(takes longer to run).
nullptr
during
cmake command
cppad_mixed
sub-package.
This required some recent improvements to CppAD and hence requires
bin/install_cppad.sh
to be re-run.
example/devel/cppad_mixed/user/capture_xam.cpp
(takes longer to run).
null
instead of empty) see
text can be null, not empty
).
null
can be used to
the same effect for
standard deviation multipliers
).
-i
flag on Mac systems.
This has been fixed.
cppad_mixed
and
cppad_mixed_eigen
libraries.
cppad_mixed theory
section.
cppad_mixed
problem
representation; see cppad_mixed size_map
.
avg_case_table
to avgint_table
.
08-13
below).
var_command
was changed back to the init_command
(because it creates more than just the var_table
).
null
for a standard deviation multiplier now
eliminates it from the list of variables; see smooth_table
.
var_command
when there were
covariate multipliers
for multiple integrands
or multiple rates.
This has been fixed and is tested by the user example
meas_covariate.py
.
dev::data_subset.cpp
was changes to pre-allocate its
result instead of growing the vector as needed.
This resulted in a huge savings (in one test case a 24 minute
run time was reduced to 3.5 minutes).
dev::get_db_input.cpp
routine now checks the lower and upper limits
implied by the choice of node_rate_value_info
.
This was removed on 2015-10-27
.
var_command
(because it creates the var_table
).
rate_mean
to
rate_value
.
node_rate_value_info
choice in the
option table.
'
in it.
usage
message that is printed when dismod_at
is executed with no command arguments.
mulcov_type
column.
test/binomial_test.cpp
.
cppad_mixed
sub-package
using the cppad_mixed_libdir
option to the
cmake command
.
cmake command
script was not using bash
as its shell
for all systems. This has been fixed.
test/devel/n_mixture.cpp
(using more simulated data).
cppad_mixed random negative log likelihood
.
This reduces the number of necessary recordings and corresponding memory.
cppad_mixed ran_like
function was changed from
use a3_double
objects to a2_double
objects.
cppad_mixed capture_xam.cpp
example and test.
This is both a correctness and speed test.
cppad_mixed ran_like
function was changed from
use a5_double
objects to a3_double
objects.
cppad_mixed fixed likelihood
Fixed Likelihood, g(theta)
/
.
cppad_mixed random likelihood
Random Likelihood, f(theta, u)
/
.
cppad_mixed no_random_xam.cpp
,
create_database.py
.
It was also fixed for the following developer examples:
dev::avgint_subset_xam.cpp.cpp
,
dev::subset_data_xam.cpp.cpp
.
cppad_mixed fix_like
is empty.
cppad_mixed
examples in the
section cppad_mixed user
.
dev::cpp_create_table.cpp
routine,
and replace all uses of dev::put_table_row.cpp
by create_table
(much faster).
laplace
and log_laplace
densities
.
cppad_mixed optimize_random
is called
in a case where there are no random effects.
cppad_mixed p(z | theta)
instead of
cppad_mixed p(y | theta, u)
.
This speeds up the computation and enables one to use
Laplace and Log-Laplace likelihoods for this data
(with out affecting the Laplace approximation for the integral).
cppad_mixed
sub-package was extended to work in the case
were there are
cppad_mixed no random effects
.
value
message_type
from the log
table
(not yet necessary due to change above).
cppad_mixed z
in the discussion of the cppad_mixed
cppad_mixed problem
.
Also fix a @(@
\B{p} ( y , \theta )
@)@ that was written as
@(@
\B{p} ( y | \theta )
@)@ in the problem discussion.
argument_table
was change to the option_table
.
Some bugs were fixed in the
cppad_mixed constraint
option.
var
table.
This has been fixed.
solution check failed
warning would sometimes print
incorrectly when a fixed effect was at its lower or upper bound.
This has been fixed.
cppad_mixed
sub-package that works with
cppad_mixed constraints
; e.g., see
cppad_mixed mixed_constraint_xam.cpp
.
solution check failed
warning was printing
when the check actually passed (since 07-15).
This has been fixed.
value
message type to the log table
(it has since been removed).
cppad_mixed
sub-package,
changed joint_density
to
cppad_mixed ran_like
and changed prior_density
to
cppad_mixed fix_like
.
_dict
when
they are a list of dictionaries, so similar to
table_dict
.
Error:
(Warning:
)
to beginning of error messages (warning messages).
dev::open_connection
,
use log_table
to record all error messages before exiting.
cppad_mixed fatal_error
was added to the cppad_mixed
derived class.
This enabled dismod_at
to log the cppad_mixed
error messages.
null
integer values; see
integer
.
dev::sim_random_xam.cpp.cpp
was missing from documentation.
Increase
sample_size
in sim_random_xam.cpp
(to reduce change of random failure).
In addition, print random seed when test does fail.
null
instead of -1
in the following cases:
There is no parent
node,
there is no dage_prior_id
,
there is no dtime_prior_id
.
null
.
sample
table column sample_value
was changed to var_value
.
avgint_subset_table
was added as an output
of the init_command
.
var_command
to init_command
and use this command to initialize output tables whenever
the input
tables change.
argument_table
instead of on the command line (except for the file name of the database).
make check
without first running
make
.
This has been fixed.
var_command
to create the var_table
and put the fit_command
results in a separate fit_var_table
.
pack_info
class
(no longer necessary now that var_table
has more information).
get_started.py
example to fit_command.py
.
variable_name
from the var_table
,
add extra columns to specify the exact variable using
foreign keys
.
mean_mean
covariate multiplier type to
meas_value
.
cov_type
equal rate_value
, meas_value
,
and meas_std
, change
cov_type_mulcov_n_cov -> mulcov_cov_type_n_cov
cov_type_mulcov_info -> mulcov_cov_type_info
see
mulcov_rate_value
,
mulcov_meas_value
and
mulcov_meas_noise
.
create_table
now adds the
unique
constraint to
name columns
.
This in turn is used by, and does the same for, create_database
.
In addition, the C++ examples for dev::devel_table
were changed to include constraints; e.g.,
dev::get_integrand_table_xam.cpp.cpp
.
table_name_id must start at zero and increment by one.
Detected in table_name table at table_name_id = index.
where
table_name
is any table name.
This has been fixed.
n_age_ode
and
n_time_ode
are now computed automatically
have been removed from the fit_command
argument list.
make
command to build the dismod_at executable and library
when installing
dismod_at.
In addition, running the tests
is now optional.
node_rate_value_info
argument
to the fit command.
(This was removed on 2015-10-27
.)
This enables taking advantage of cases where
rho
or
iota
are zero (to speed integration).
In addition, it allows for some cases where
chi
is zero.
incidence
has been changes to Sincidence
to
emphasize that it is relative to the susceptible population.
In addition the new integrand Tincidence
has been
added (which is relative to the total population).
_prior_id
.
To be explicit, the following column names have been changed:
Old name | New name |
mulcov_value |
mulcov_value_prior_id |
mulcov_dage |
mulcov_dage_prior_id |
mulcov_dtime |
mulcov_dtime_prior_id
|
dev::weight_info.cpp
constructor
when the ages or times were not increasing.
This was fixed and a second version for this date was created.
variable_name
for measurement covariate and rate covariate multipliers
from empty string to a descriptive name.
(This column of the var table was later removed.)
nullptr
feature was not being suppressed
when using a compiler that does not support this feature.
This has been fixed.
dev::open_connection.cpp
,
cppad_mixed ipopt_xam
, and
dev::get_column_max_xam.cpp.cpp
,
that gave compiler errors on some systems.
This has been fixed.
commit
and close
at the end; see
python sqlite
.
variable_name
for the smoothing standard deviation multipliers
from empty string to a descriptive name.
(This column of the var table was later removed.)
fit_arg_table
and the var_table
.
dismod_at
is available to be downloaded and installed;
see install_unix
.