Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
storm::umb::ValueEncoding Class Reference

#include <ValueEncoding.h>

Static Public Member Functions

template<bool Signed, std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, uint64_t>
static storm::NumberTraits< storm::RationalNumber >::IntegerType decodeArbitraryPrecisionInteger (InputRange &&input)
template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, uint64_t>
static auto uint64ToRationalRangeView (InputRange &&input, uint64_t const numberSize)
template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, uint64_t>
static auto uint64ToRationalIntervalRangeView (InputRange &&input, uint64_t const numberSize)
template<bool Signed>
static uint64_t getSizeOfIntegerEncoding (typename storm::NumberTraits< storm::RationalNumber >::IntegerType const &value)
template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, storm::RationalNumber>
static uint64_t getMinimalRationalSize (InputRange &&input, bool multiplesOf64)
template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, storm::RationalInterval>
static uint64_t getMinimalRationalIntervalSize (InputRange &&input, bool multiplesOf64)
template<bool Signed>
static void appendEncodedInteger (std::vector< uint64_t > &result, typename storm::NumberTraits< storm::RationalNumber >::IntegerType const &value, uint64_t uint64BucketsPerInteger)
static void appendEncodedRational (std::vector< uint64_t > &result, storm::RationalNumber const &value, uint64_t uint64BucketsPerInteger)
template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, storm::RationalNumber>
static std::vector< uint64_t > createUint64FromRationalRange (InputRange &&input, uint64_t const numberSize)
template<std::ranges::input_range InputRange>
requires storm::IsIntervalType<std::ranges::range_value_t<InputRange>>
static std::vector< uint64_t > createUint64FromRationalIntervalRange (InputRange &&input, uint64_t const numberSize)
template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, double>
static auto doubleToIntervalRangeView (InputRange &&input)
template<typename BaseType, std::ranges::input_range InputRange>
requires storm::IsIntervalType<std::ranges::range_value_t<InputRange>>
static auto intervalToBaseRangeView (InputRange &&input)
template<typename ValueType>
static auto applyDecodedVector (auto &&func, storm::umb::GenericVector const &input, storm::umb::SizedType const &sourceType)
 returns func(<decoded_input>) where <decoded_input> is a range that (if necessary) decodes and converts the given input.
template<typename ValueType>
static std::vector< ValueType > createDecodedVector (storm::umb::GenericVector const &input, storm::umb::SizedType const &sourceType)

Detailed Description

Definition at line 18 of file ValueEncoding.h.

Member Function Documentation

◆ appendEncodedInteger()

template<bool Signed>
void storm::umb::ValueEncoding::appendEncodedInteger ( std::vector< uint64_t > & result,
typename storm::NumberTraits< storm::RationalNumber >::IntegerType const & value,
uint64_t uint64BucketsPerInteger )
inlinestatic

Definition at line 128 of file ValueEncoding.h.

◆ appendEncodedRational()

void storm::umb::ValueEncoding::appendEncodedRational ( std::vector< uint64_t > & result,
storm::RationalNumber const & value,
uint64_t uint64BucketsPerInteger )
inlinestatic

Definition at line 165 of file ValueEncoding.h.

◆ applyDecodedVector()

template<typename ValueType>
auto storm::umb::ValueEncoding::applyDecodedVector ( auto && func,
storm::umb::GenericVector const & input,
storm::umb::SizedType const & sourceType )
inlinestatic

returns func(<decoded_input>) where <decoded_input> is a range that (if necessary) decodes and converts the given input.

Parameters
funca function that takes a range of value type and returns the result
inputthe input vector
sourceTypeThe type that the input vector represents
sourceTypeSizethe number of bits of the encoding for the source type. This is necessary for non-trivially encoded source types (like rational).
Returns

Definition at line 226 of file ValueEncoding.h.

◆ createDecodedVector()

template<typename ValueType>
std::vector< ValueType > storm::umb::ValueEncoding::createDecodedVector ( storm::umb::GenericVector const & input,
storm::umb::SizedType const & sourceType )
inlinestatic

Definition at line 298 of file ValueEncoding.h.

◆ createUint64FromRationalIntervalRange()

template<std::ranges::input_range InputRange>
requires storm::IsIntervalType<std::ranges::range_value_t<InputRange>>
std::vector< uint64_t > storm::umb::ValueEncoding::createUint64FromRationalIntervalRange ( InputRange && input,
uint64_t const numberSize )
inlinestatic

Definition at line 191 of file ValueEncoding.h.

◆ createUint64FromRationalRange()

template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, storm::RationalNumber>
std::vector< uint64_t > storm::umb::ValueEncoding::createUint64FromRationalRange ( InputRange && input,
uint64_t const numberSize )
inlinestatic

Definition at line 174 of file ValueEncoding.h.

◆ decodeArbitraryPrecisionInteger()

template<bool Signed, std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, uint64_t>
storm::NumberTraits< storm::RationalNumber >::IntegerType storm::umb::ValueEncoding::decodeArbitraryPrecisionInteger ( InputRange && input)
inlinestatic

Definition at line 22 of file ValueEncoding.h.

◆ doubleToIntervalRangeView()

template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, double>
auto storm::umb::ValueEncoding::doubleToIntervalRangeView ( InputRange && input)
inlinestatic

Definition at line 199 of file ValueEncoding.h.

◆ getMinimalRationalIntervalSize()

template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, storm::RationalInterval>
uint64_t storm::umb::ValueEncoding::getMinimalRationalIntervalSize ( InputRange && input,
bool multiplesOf64 )
inlinestatic

Definition at line 123 of file ValueEncoding.h.

◆ getMinimalRationalSize()

template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, storm::RationalNumber>
uint64_t storm::umb::ValueEncoding::getMinimalRationalSize ( InputRange && input,
bool multiplesOf64 )
inlinestatic

Definition at line 105 of file ValueEncoding.h.

◆ getSizeOfIntegerEncoding()

template<bool Signed>
uint64_t storm::umb::ValueEncoding::getSizeOfIntegerEncoding ( typename storm::NumberTraits< storm::RationalNumber >::IntegerType const & value)
inlinestatic

Definition at line 88 of file ValueEncoding.h.

◆ intervalToBaseRangeView()

template<typename BaseType, std::ranges::input_range InputRange>
requires storm::IsIntervalType<std::ranges::range_value_t<InputRange>>
auto storm::umb::ValueEncoding::intervalToBaseRangeView ( InputRange && input)
inlinestatic

Definition at line 207 of file ValueEncoding.h.

◆ uint64ToRationalIntervalRangeView()

template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, uint64_t>
auto storm::umb::ValueEncoding::uint64ToRationalIntervalRangeView ( InputRange && input,
uint64_t const numberSize )
inlinestatic

Definition at line 78 of file ValueEncoding.h.

◆ uint64ToRationalRangeView()

template<std::ranges::input_range InputRange>
requires std::same_as<std::ranges::range_value_t<InputRange>, uint64_t>
auto storm::umb::ValueEncoding::uint64ToRationalRangeView ( InputRange && input,
uint64_t const numberSize )
inlinestatic

Definition at line 57 of file ValueEncoding.h.


The documentation for this class was generated from the following file: