What an implementation of a particle in Beluga should provide.
P
is a Particle
type if given:
p
of P
.cp
of P
.The following is satisfied:
beluga::state(cp)
is a valid expression and returns the particle state.beluga::weight(cp)
is a valid expression and returns the particle weight.beluga::state(p)
is a valid expression and returns a mutable reference to the particle state.beluga::weight(p)
is a valid expression and returns a mutable reference to the particle weight.Both beluga::state
and beluga::weight
are customization point objects. Users have two customization alternatives: