|
fmcs
v0.2.1
|
A unordered map with value type equal to a sum type of input type and one or more distribution types, parameterized by an update Policy. More...
#include "update.hpp"
Public Types | |
| using | value_t = unique_variant_t< typename cat< std::variant< Ds... >, data_types< Ds... >, Input >::type > |
Public Member Functions | |
| bool | contains (std::string name) |
| template<typename D > | |
| Policy< D >::type | extract (std::string name) |
| Return a distribution according to a Policy. More... | |
| template<typename V > | |
| V | extract_value (std::string name) |
| Return a value or distribution according to original value. More... | |
| void | insert_or_assign (std::string name, value_t obj) |
| template<typename D > | |
| bool | is_transformed (std::string address) |
| Is the distribution at the address transformed via a Policy? More... | |
Public Attributes | |
| std::unordered_map< std::string, value_t > | map_ |
A unordered map with value type equal to a sum type of input type and one or more distribution types, parameterized by an update Policy.
The Policy parameter defines an injection \(policy: \{D_i\}_{i \in I} \rightarrow \{D_j\}_{j \in J}\), \(J \subseteq I\). This is implemented as typename Policy<D>::type, which may be a bijection (e.g., when updating parameters in the same distributional family) or may not (e.g., a normal approximation).
| Policy | encapsulates the types of distributions that can be returned by get. Must define type with a using-declaration. |
| I | The input type |
| Ds | The universe of allowable distribution types |