SeqAn3 3.4.0-rc.3
The Modern C++ library for sequence analysis.
|
Provides additional utility functionality used by multiple modules. More...
Modules | |
Bloom Filter | |
Provides seqan3:bloom_filter. | |
Builtin Character Operations | |
Provides various operations on character types. | |
Concept | |
Provides various general purpose concepts. | |
Container | |
Provides various general purpose container and concepts. | |
Range | |
The range module provides general purpose range concepts. | |
Tuple | |
Additional helper utilities for "tuple" types like std::tuple, std::pair, seqan3::pod_tuple that are not specific to a SeqAn module. | |
Type List | |
Provides seqan3::type_list and metaprogramming utilities for working on type lists. | |
Type Pack | |
Provides metaprogramming utilities for working on template parameter packs. | |
Type Traits | |
Provides various type traits and their shortcuts. | |
Views | |
Views are "lazy range combinators" that offer modified views onto other ranges. | |
Functions | |
template<typename base_t , std::unsigned_integral exp_t> requires (std::same_as<base_t, uint64_t> || std::same_as<base_t, int64_t>) | |
base_t | seqan3::pow (base_t base, exp_t exp) |
Computes the value of base raised to the power exp . | |
Provides additional utility functionality used by multiple modules.
The utility module contains concepts, functions, traits and classes that are independent of the remaining modules in SeqAn. These implementations are considered external functionality, i.e. they could have been outsourced into their own libraries.
The utility module has no dependency to any other module except the Core module.
base_t seqan3::pow | ( | base_t | base, |
exp_t | exp | ||
) |
Computes the value of base
raised to the power exp
.
[in] | base | The base to compute the power for. |
[in] | exp | The power to raise base to. |
std::overflow_error | if an overflow occurs (Only in Debug build). |
std::underflow_error | if an underflow occurs (Only in Debug build). |
The difference to std::pow
is that the powers of an integer base
are computed exact (without precision loss due to promoting to double
) iff exp_t
models std::unsigned_integral
and
base_t
models std::unsigned_integral
(returns uint64_t
)base_t
models std::integral
, but not std::unsigned_integral
(returns int64_t
)In all other cases the return value and type is equivalent to that of std::pow
.