![]() |
C++ Library Extensions 2022.12.09
To help learn modern C++ programming
|
#include "cpg_types.hpp"
#include <numeric>
#include <cassert>
#include <cmath>
#include <compare>
#include <optional>
Go to the source code of this file.
Classes | |
class | cpg::rational_number::rational< ElementType > |
Namespaces | |
namespace | cpg |
Includes subnamespace conversion. | |
namespace | cpg::rational_number |
Concepts | |
concept | cpg::rational_number::real_number_c |
concept | cpg::rational_number::allowed_type_c |
concept | cpg::rational_number::number_c |
Macros | |
#define | NOMINMAX |
Typedefs | |
using | cpg::rational_number::real_number_list = types::type_container< float, double, long double > |
using | cpg::rational_number::allowed_type_list = types::type_container< char, signed char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long > |
using | cpg::rational_number::numerical_type_list = types::type_container< char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long, float, double, long double > |
Functions | |
template<allowed_type_c ElementType> | |
constexpr ElementType | cpg::rational_number::reduce_adjusted (ElementType &A, ElementType &B) noexcept |
template<allowed_type_c ElementType> | |
constexpr ElementType | cpg::rational_number::reduce_simple (ElementType &A, ElementType &B) noexcept |
template<allowed_type_c T> | |
constexpr bool | cpg::rational_number::tell_comparable_as_double () |
template<allowed_type_c L, allowed_type_c R> requires ( !std::same_as<L, R>) | |
std::strong_ordering | cpg::rational_number::operator<=> (rational< L > const &lhs, rational< R > const &rhs) |
template<allowed_type_c L, allowed_type_c R> requires ( !std::same_as<L, R>) | |
std::strong_ordering | cpg::rational_number::operator<=> (rational< L > const &lhs, R rhs) |
template<allowed_type_c L, real_number_c R> | |
std::strong_ordering | cpg::rational_number::operator<=> (rational< L > const &lhs, R rhs) |
template<allowed_type_c L, allowed_type_c R> requires ( !std::same_as<L, R>) | |
bool | cpg::rational_number::operator== (rational< L > const &lhs, rational< R > const &rhs) |
template<allowed_type_c L, allowed_type_c R> requires ( !std::same_as<L, R>) | |
bool | cpg::rational_number::operator== (rational< L > const &lhs, R rhs) |
template<allowed_type_c L, real_number_c R> | |
bool | cpg::rational_number::operator== (rational< L > const &lhs, R rhs) |
auto | cpg::rational_number::factorial (unsigned long long n) noexcept |
auto | cpg::rational_number::nPr (unsigned long long n, unsigned long long r=1) noexcept |
auto | cpg::rational_number::nCr (unsigned long long n, unsigned long long r) noexcept |
#define NOMINMAX |
Definition at line 15 of file cpg_rational.hpp.