|
kblib 0.2.3
General utilities library for modern C++
|
Provides numerical and mathematical utilities. More...
#include <array>#include <cassert>#include <cinttypes>#include <cstdlib>#include <limits>#include <numeric>#include "fakestd.h"#include "logic.h"#include "tdecl.h"

Go to the source code of this file.
Classes | |
| struct | kblib::trivial_pair< T > |
| std::pair isn't constexpr enough, so I'm stuck with this. All I use it for is removing a temporary variable from calc_fib_size(). More... | |
| struct | kblib::trivial_array< T, N > |
| std::array isn't constexpr enough in C++14, so a dedicated array class is needed for constexpr functions. More... | |
| struct | kblib::nums::max_t |
| Shorthand for std::numeric_limits::max(). More... | |
| struct | kblib::nums::min_t |
| Shorthand for std::numeric_limits::min() More... | |
Namespaces | |
| namespace | kblib |
| The main namespace in which all entities from kblib are defined. | |
| namespace | kblib::nums |
Functions | |
| template<typename T , typename U > | |
| constexpr auto | kblib::div (T num, U den) noexcept -> decltype(std::div(num, den)) |
| template<typename U > | |
| constexpr auto | kblib::calc_fib_size () noexcept -> std::size_t |
| Calculate the index of the largest fibonacci number that can be represented by a given unsigned integral type. More... | |
| template<typename U , std::size_t N = calc_fib_size<U>() + 1> | |
| constexpr auto | kblib::make_fib_arr () noexcept -> trivial_array< U, N > |
| Generates the first N values of the fibonacci sequence. More... | |
| template<typename U = std::uintmax_t> | |
| constexpr auto | kblib::fibonacci (int n) noexcept -> U |
| Compile-time table fibonacci function. More... | |
| template<typename T = double> | |
| constexpr auto | kblib::pi () -> T |
| template<typename T = double> | |
| constexpr auto | kblib::tau () -> T |
| template<typename T = double> | |
| constexpr auto | kblib::e () -> T |
| template<typename T = double> | |
| constexpr auto | kblib::root_2 () -> T |
| template<typename T = double> | |
| constexpr auto | kblib::phi () -> T |
| template<typename A , typename F > | |
| constexpr auto | kblib::saturating_cast (F x) noexcept -> enable_if_t< std::is_integral< A >::value and std::is_integral< F >::value and std::is_unsigned< A >::value, A > |
| template<typename T , typename F > | |
| constexpr auto | kblib::quantize_step (F low, F delta, F val) noexcept -> T |
| Quantize a real-valued value into a discrete integer. More... | |
| template<typename T , typename F > | |
| constexpr auto | kblib::quantize_range (F low, F high, F val) noexcept -> T |
| Quantize a real-valued value into a discrete integer. More... | |
Variables | |
| constexpr struct kblib::nums::max_t | kblib::nums::max |
| constexpr struct kblib::nums::min_t | kblib::nums::min |
Provides numerical and mathematical utilities.
Definition in file stats.h.