stock column in likelihood data can now contain
name parts as well as full stock namesg3_to_r-produced model functions will accept both a
list & data.frame parameter templateg3_to_r models can include arbitary R functions, see
vignettes/writing_actions #194g3_array_agg, g3_array_combine #193
#213g3a_spmodel
#209g3_array_plotdetail_x__num to dstart_x__num
#200g3a_spawn() splits offspring into multiple stocks
correctly?g3a_predate /
?g3a_predate_catchability_predator #29g3a_otherfood, g3a_otherfood_normalparam,
g3a_otherfood_normalcv #155g3l_catchdistribution
#95g3l_distribution_surveyindices_*() can now be broken
down by age without errorg3_parameterized('x', by_year = 1998:2099) to
override year range for parametersg3a_initialconditions_normalcv for
initialconditions driven by a lencv parameterg3a_renewal_normalcv for initialconditions driven
by a lencv parameterby_predator parameter for
g3_parameterizedg3_suitability_exponentiall50g3_init_val() helper, to replace
gadgetutils::g3_init_guess()g3_areas() helper to create numbered area
vectorsg3_distribution_preview() helper to see how
observatation data will be converted to arrayperiod now optional for g3l_random_walk(),
g3l_random_dnorm()g3l_bounds_penalty() can now generate bounds from
actions which update automaticallyg3l_distribution_surveyindices_* now default to
beta = 1, set beta = NULL to restore previous
behaviour.stock_param() & stock_param_table()
replaced with stock_prepend()g3_to_tmb(adreport_re) option #60M now by-age by default #113g3_suitability_andersenfleet() now uses
by_predator = TRUE by default #133g3_parameterized('x', by_step = TRUE) for seasonal
parameters #115group_by(length = cut(...)) can be used as well as MFDB for
groupings #112g3l_understocking(),
g3a_naturalmortality(),
g3a_renewal_normalparam()g3a_renewal_vonb_t0() &
g3a_renewal_vonb_recl(), with
g3a_renewal_vonb() being an alias to the latterscale = 0.001 from default K
parameters in g3a_grow, g3a_renew_*g3a_renewal_vonb_t0() is now the default mean_f for
*_normalparam()g3a_initialconditions_normalparam() now offsets any
age in mean_f (i.e. the VonB formula) by
cur_step_size, in effect running at step -1.g3_suitability_andersen() now produces sensible values
- https://github.com/gadget-framework/gadget3/issues/108g3a_age() now supports stocks with a single age
(i.e. minage == maxage)recage parameter to g3a_renewal_vonb /
g3a_renewal_initabundg3_suitability_andersenfleet(), a fleet-specialised
andsersen suitability function.g3_is_stock() publicg3_eval(), to evaluate snippets of a gadget3
model.g3l_distribution_*(transform_fs = ...) now happens
before aggregation, not after. Any matrix used now has to be expressed
in terms of the stock, not aggregated age.
g3_param_table() now returns NaN (and warns) on a
missing value, instead of aborting.
optim(g3_tmb_par(...)) is now an error. When
optimising, always use obj.fun$par.
as.vector(array) in TMB formulas, so arrays can
be used with TMB vectorized functions,
e.g. pnorm(as.vector(ar[,1])).