![]() |
Quantify
An extensible C++ units library
|
Include dependency graph for reduce_rules.cppm:Go to the source code of this file.
Namespaces | |
| namespace | quantify |
Macros | |
| #define | TO(...) |
| #define | REDUCE_PATTERN(...) |
Functions | |
| template<typename N> | |
| quantify::REDUCE_PATTERN (frac< N, N >) TO(no_unit) | |
| template<> | |
| quantify::REDUCE_PATTERN (frac< no_unit, no_unit >) TO(no_unit) | |
| template<typename N> | |
| quantify::REDUCE_PATTERN (frac< N, no_unit >) TO(reduce< N >) | |
| template<typename N, typename D> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< N, frac< N, D > >) TO(reduce< D >) | |
| template<typename N, typename D1, typename D2> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< N, frac< D1, D2 > >) TO(reduce< frac< reduce< mul< reduce< N > | |
| template<typename N, typename D> | |
| quantify::REDUCE_PATTERN (frac< frac< N, D >, no_unit >) TO(reduce< frac< N | |
| template<typename N, typename D> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< frac< N, D >, N >) TO(reduce< frac< no_unit | |
| template<typename N, typename D1, typename D2> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< frac< D1, D2 >, N >) TO(reduce< frac< reduce< D1 > | |
| template<typename N1, typename N2, typename D1, typename D2> requires (!std::is_same_v<N1, D1> || !std::is_same_v<N2, D2>) | |
| quantify::REDUCE_PATTERN (frac< frac< N1, N2 >, frac< D1, D2 > >) TO(reduce< frac< reduce< mul< reduce< N1 > | |
| template<typename N, typename ... Ds> requires (packtl::Contains<N, Ds...>) | |
| quantify::REDUCE_PATTERN (frac< N, mul< Ds... > >) TO(reduce< frac< no_unit | |
| template<typename D, typename ... Ns> requires (packtl::Contains<D, Ns...>) | |
| quantify::REDUCE_PATTERN (frac< mul< Ns... >, D >) TO(reduce< cancel_out< reduce< mul< Ns... > > | |
| template<typename M1, typename M2> requires (is_mul_v<M1> && is_mul_v<M2> && !packtl::share_items<M1, M2>::value) | |
| quantify::REDUCE_PATTERN (frac< M1, M2 >) TO(frac< M1 | |
| template<typename M1, typename M2> requires (is_mul_v<M1> && is_mul_v<M2> && packtl::share_items<M1, M2>::value) | |
| quantify::REDUCE_PATTERN (frac< M1, M2 >) TO(reduce< frac< reduce< typename cancel_out_many< M1 | |
| template<> | |
| quantify::REDUCE_PATTERN (mul<>) TO(no_unit) | |
| template<typename P> | |
| quantify::REDUCE_PATTERN (mul< P >) TO(reduce< P >) | |
| template<typename ... Ps> requires (!packtl::Contains<no_unit, Ps...> && ((!is_mul_v<Ps> && !is_frac_v<Ps>) && ...)) | |
| quantify::REDUCE_PATTERN (mul< Ps... >) TO(mul< Ps... >) | |
| template<typename ... Ps> requires (!packtl::Contains<no_unit, Ps...> && ((is_mul_v<Ps> || is_frac_v<Ps>) || ...)) | |
| quantify::REDUCE_PATTERN (mul< Ps... >) TO(reduce< normalize_t< mul< Ps... > > >) | |
| template<typename ... Ps> requires packtl::Contains<no_unit, Ps...> | |
| quantify::REDUCE_PATTERN (mul< Ps... >) TO(reduce< cancel_out< mul< Ps... > | |
| #define REDUCE_PATTERN | ( | ... | ) |
Definition at line 23 of file reduce_rules.cppm.
| #define TO | ( | ... | ) |
Definition at line 18 of file reduce_rules.cppm.