| bm_logsumexp | R Documentation |
Constructs a mapper
that aggregates elements of exp(state), with optional non-negative
weighting, and then takes the log(), so it can be used e.g.
for v_k=\log[\sum_{i\in I_k} w_i \exp(u_i)]
and v_k=\log[\sum_{i\in I_k} w_i \exp(u_i) / \sum_{i\in I_k} w_i]
calculations. Relies on the input handling methods for
bm_aggregate, but also allows the weights to be supplied on a
logarithmic scale as log_weights. To avoid numerical overflow, it uses the
common method of internally shifting the state blockwise;
v_k=s_k+\log[\sum_{i\in I_k} \exp(u_i + \log(w_i)- s_k)]
,
where s_k=\max_{i\in I_k} u_i + \log(w_i) is the
shift for block k.
bm_logsumexp(rescale = FALSE, n_block = NULL)
bru_mapper_logsumexp(...)
rescale |
logical; For
|
n_block |
Predetermined number of output blocks. If |
... |
Arguments passed on to |
A bm_logsumexp/bm_aggregate mapper object.
bru_mapper, bru_mapper_generics
Other mappers:
bm_aggregate(),
bm_collect(),
bm_const(),
bm_expr(),
bm_factor(),
bm_fm_mesh_1d,
bm_fmesher(),
bm_harmonics(),
bm_index(),
bm_linear(),
bm_logitaverage(),
bm_marginal(),
bm_matrix(),
bm_multi(),
bm_pipe(),
bm_reparam(),
bm_repeat(),
bm_scale(),
bm_shift(),
bm_sum(),
bm_taylor(),
bru_get_mapper(),
bru_mapper()
m <- bm_logsumexp()
ibm_eval2(m, list(block = c(1, 2, 1, 2), weights = 1:4), 11:14)
ibm_eval2(m, list(block = c(1, 2, 1, 2), weights = 1:4, n_block = 3), 11:14)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.