Defines point and interval variables based on quantities. More...
Go to the source code of this file.
Namespaces | |
| util::quantities | |
| Types of variables with a unit. | |
| util::quantities::concepts | |
| Infrastructure for the quantities library. | |
| util::quantities::concepts::details | |
Typedefs | |
| template<typename Cat > | |
| using | util::quantities::concepts::details::category_of = typename category_of_type< Cat >::type |
| template<typename T > | |
| using | util::quantities::concepts::is_interval_or_point = std::disjunction< is_interval< T >, is_point< T >> |
Trait: true_type if PT is a specialization of Interval or Point. More... | |
| template<typename T > | |
| using | util::quantities::concepts::interval_of = typename T::interval_t |
Type of interval contained in specified type T. More... | |
| template<typename IV , typename R , typename T = typename IV::value_t> | |
| using | util::quantities::concepts::rescale_interval = Interval< rescale< typename IV::quantity_t, R, T >, typename IV::category_t > |
Type of an interval like IV, but with a different unit scale R. More... | |
| template<typename PT , typename R , typename T = typename PT::value_t> | |
| using | util::quantities::concepts::rescale_point = Point< rescale< typename PT::quantity_t, R, T >, typename PT::category_t > |
Type of a point like PT, but with a different unit scale R. More... | |
Functions | |
| template<typename... Args> | |
| std::ostream & | util::quantities::concepts::operator<< (std::ostream &out, Interval< Args... > const iv) |
| template<typename AQ , typename AC , typename BQ , typename BC > | |
| constexpr auto | util::quantities::concepts::operator* (Interval< AQ, AC > const, Interval< BQ, BC > const)=delete |
| Multiplication between quantities is forbidden. More... | |
| template<typename Q , typename Cat , typename T > | |
| constexpr std::enable_if_t< std::is_arithmetic_v< T >, Interval< Q, Cat > > | util::quantities::concepts::operator/ (Interval< Q, Cat > const iv, T const quot) |
| template<typename Q , typename Cat > | |
| std::string | util::quantities::concepts::to_string (Interval< Q, Cat > const &iv) |
| template<typename... Args> | |
| std::ostream & | util::quantities::concepts::operator<< (std::ostream &out, Point< Args... > const p) |
| template<typename Q , typename Cat , typename IV > | |
| std::string | util::quantities::concepts::to_string (Point< Q, Cat, IV > const &p) |
Comparison operations on `Interval` | |
These operations, as well as the ones implemented as member functions, are provided for convenience. Here the symmetric operations are defined, where different operands can be swapped. | |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator== (Interval< Q, Cat > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator== (Quantity< Args... > const a, Interval< Q, Cat > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator!= (Interval< Q, Cat > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator!= (Quantity< Args... > const a, Interval< Q, Cat > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator<= (Interval< Q, Cat > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator<= (Quantity< Args... > const a, Interval< Q, Cat > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator< (Interval< Q, Cat > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator< (Quantity< Args... > const a, Interval< Q, Cat > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator>= (Interval< Q, Cat > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator>= (Quantity< Args... > const a, Interval< Q, Cat > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator> (Interval< Q, Cat > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator> (Quantity< Args... > const a, Interval< Q, Cat > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator== (Point< Q, Cat, IV > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator== (Quantity< Args... > const a, Point< Q, Cat, IV > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator!= (Point< Q, Cat, IV > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator!= (Quantity< Args... > const a, Point< Q, Cat, IV > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator<= (Point< Q, Cat, IV > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator<= (Quantity< Args... > const a, Point< Q, Cat, IV > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator< (Point< Q, Cat, IV > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator< (Quantity< Args... > const a, Point< Q, Cat, IV > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator>= (Point< Q, Cat, IV > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator>= (Quantity< Args... > const a, Point< Q, Cat, IV > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator> (Point< Q, Cat, IV > const a, Quantity< Args... > const b) noexcept |
| template<typename Q , typename Cat , typename IV , typename... Args> | |
| constexpr bool | util::quantities::concepts::operator> (Quantity< Args... > const a, Point< Q, Cat, IV > const b) noexcept |
Arithmetic operations on `Quantity` | |
These operations, as well as the ones implemented as member functions, are provided for convenience. Here the symmetric operations are defined, where different operands can be swapped. | |
| template<typename Q , typename Cat , typename T > | |
| constexpr std::enable_if_t< std::is_arithmetic_v< T >, Interval< Q, Cat > > | util::quantities::concepts::operator* (Interval< Q, Cat > const iv, T const factor) |
| Multiplication with a scalar. More... | |
| template<typename Q , typename Cat , typename T > | |
| constexpr std::enable_if_t< std::is_arithmetic_v< T >, Interval< Q, Cat > > | util::quantities::concepts::operator* (T const factor, Interval< Q, Cat > const iv) |
| template<typename Q , typename Cat , typename IV , typename OQ , typename OC > | |
| constexpr Point< Q, Cat, IV > | util::quantities::concepts::operator+ (Interval< OQ, OC > const delta, Point< Q, Cat, IV > const p)=delete |
| template<typename Q , typename Cat , typename IV , typename OQ , typename OC > | |
| constexpr Point< Q, Cat, IV > | util::quantities::concepts::operator- (Interval< OQ, OC > const delta, Point< Q, Cat, IV > const p)=delete |
| template<typename Q , typename Cat , typename IV , typename OQ , typename OCat > | |
| constexpr Point< Q, Cat, IV >::template enable_if_compatible_t< Point< OQ, OCat, IV >, IV > | util::quantities::concepts::operator- (Point< Q, Cat, IV > const a, Point< OQ, OCat, IV > const b) |
| template<typename IV > | |
| IV | util::quantities::makeInterval (std::string_view s, bool unitOptional=false) |
| Returns an interval of the specified type parsed from a string. More... | |
| template<typename IV > | |
| IV | util::quantities::makeInterval (std::string const &s, bool unitOptional=false) |
| template<typename IV > | |
| IV | util::quantities::makeInterval (char const *s, bool unitOptional=false) |
| template<typename PT > | |
| PT | util::quantities::makePoint (std::string_view s, bool unitOptional=false) |
| Returns a point of the specified type parsed from a string. More... | |
| template<typename PT > | |
| PT | util::quantities::makePoint (std::string const &s, bool unitOptional=false) |
| template<typename PT > | |
| PT | util::quantities::makePoint (char const *s, bool unitOptional=false) |
Variables | |
| template<typename IV > | |
| constexpr bool | util::quantities::concepts::is_interval_v = is_interval<IV>() |
Trait: true if IV is a Interval specialization. More... | |
| template<typename PT > | |
| constexpr bool | util::quantities::concepts::is_point_v = is_point<PT>() |
Trait: true if PT is a Point specialization. More... | |
| template<typename T > | |
| constexpr bool | util::quantities::concepts::is_interval_or_point_v = is_interval_or_point<T>() |
Trait: true if PT is a specialization of Interval or Point. More... | |
| template<typename Obj > | |
| constexpr bool | util::quantities::concepts::details::has_category_v = has_category<Obj>() |
Defines point and interval variables based on quantities.
Definition in file intervals.h.
1.8.11