Constructs a mapper that aggregates elements of the input state, so it can be used e.g. for weighted summation or integration over blocks of values.

## Usage

```
bru_mapper_aggregate(rescale = FALSE, n_block = NULL)
# S3 method for bru_mapper_aggregate
ibm_n(mapper, ..., input = NULL, state = NULL, n_state = NULL)
# S3 method for bru_mapper_aggregate
ibm_n_output(mapper, input = NULL, ...)
# S3 method for bru_mapper_aggregate
ibm_values(mapper, ..., state = NULL, n_state = NULL)
# S3 method for bru_mapper_aggregate
ibm_jacobian(mapper, input, state = NULL, ...)
# S3 method for bru_mapper_aggregate
ibm_eval(mapper, input, state = NULL, ..., sub_lin = NULL)
```

## Arguments

- rescale
logical; For

`bru_mapper_aggregate`

and`bru_mapper_logsumexp`

, specifies if the blockwise sums should be normalised by the blockwise weight sums or not:`FALSE`

: (default) Straight weighted sum, no rescaling.`TRUE`

: Divide by the sum of the weight values within each block. This is useful for integration averages, when the given weights are plain integration weights. If the weights are`NULL`

or all ones, this is the same as dividing by the number of entries in each block.

- n_block
Predetermined number of output blocks. If

`NULL`

, overrides the maximum block index in the inputs.- mapper
A mapper S3 object, inheriting from

`bru_mapper`

.- ...
Arguments passed on to other methods

- input
Data input for the mapper.

- state
A vector of latent state values for the mapping, of length

`ibm_n(mapper, inla_f = FALSE)`

- n_state
integer giving the length of the state vector for mappers that have state dependent output size.

- sub_lin
Internal, optional pre-computed sub-mapper information

## Details

For

`bru_mapper_aggregate`

,`input`

should be a list with elements`block`

and`weights`

.`block`

should be a vector of the same length as the`state`

, or`NULL`

, with`NULL`

equivalent to all-1. If`weights`

is`NULL`

, it's interpreted as all-1.

## See also

bru_mapper, bru_mapper_generics

Other mappers:
`bru_get_mapper()`

,
`bru_mapper()`

,
`bru_mapper.fm_mesh_1d()`

,
`bru_mapper.fm_mesh_2d()`

,
`bru_mapper_collect()`

,
`bru_mapper_const()`

,
`bru_mapper_factor()`

,
`bru_mapper_generics`

,
`bru_mapper_harmonics()`

,
`bru_mapper_index()`

,
`bru_mapper_linear()`

,
`bru_mapper_logsumexp()`

,
`bru_mapper_marginal()`

,
`bru_mapper_matrix()`

,
`bru_mapper_mesh_B()`

,
`bru_mapper_multi()`

,
`bru_mapper_pipe()`

,
`bru_mapper_scale()`

,
`bru_mapper_shift()`

,
`bru_mapper_taylor()`