43 conv(std::istream& is,
bool =
true)
const 59 o <<
"\\mathbb{N}_{\\text{min}}";
79 template <
typename RandomGenerator>
87 using super_t::super_t;
93 std::uniform_int_distribution<nmin::value_t>(super_t::min_, super_t::max_);
94 return dis(super_t::gen_);
static constexpr bool has_lightening_weights()
typename super_t::value_t value_t
Print as a parsable type string.
static value_t conv(b, b::value_t v)
weightset_mixin< detail::nmin_impl > nmin
ATTRIBUTE_NORETURN void raise_invalid_value(const ValueSet &vs, Args &&... args)
Cannot make a value from this.
char eat(std::istream &is, char c)
Check lookahead character and advance.
typename super_t::weight_t value_t
value_t conv(std::istream &is, bool=true) const
static nmin make(std::istream &is)
Build from the description in is.
Print as is. For instance, don't try to escape labels.
Generic declaration of the class which is specialized in each weightset.
Print as rich UTF-8 text, escaped.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
An input/output format for valuesets.
Abstract class for random weight generation.
Provide a variadic mul on top of a binary mul(), and one().
value_t pick_value_() const
static value_t conv(self_t, value_t v)
Print as plain (ASCII) text, escaped.
typename weightset_t::value_t weight_t
std::ostream & print_set(std::ostream &o, format fmt={}) const