Commit Graph
824 Commits
Author SHA1 Message Date
Mateusz Pusz 0522bae972 refactor: 💥 ! unit renamed to derived_unit 2022-05-11 11:40:19 +02:00
Mateusz Pusz f5d21a0711 refactor: 💥 ! derived_unit renamed to derived_deduced_unit 2022-05-11 11:23:18 +02:00
Mateusz Pusz 8d0b643bb3 refactor: 💥 !named_derived_unit removed as it was not used 2022-05-11 11:10:15 +02:00
Mateusz Pusz 4c60447a28 Merge branch 'master' into downcast_mode_off 2022-05-09 19:12:02 +02:00
Mateusz Pusz 8b52f46bed fix: fps can now coexist with international system
Resolves #347
2022-05-09 14:01:08 +02:00
Mateusz Pusz a7f1817c9b feat: SI prefixes allowed for a yard unit as at least kiloyard is used in some domains 2022-05-09 13:59:56 +02:00
Mateusz Pusz 0033319451 fix: shadowing compilation errors on MSVC fixed 2022-05-05 16:12:54 +02:00
Mateusz Pusz fbc6744bdb fix: ω, au, and Da allowed to have SI prefixes
Relates to #359
2022-04-27 19:33:44 +02:00
Mateusz Pusz 4361cb874e fix: hectare definition fixed to be a prefixed version of are + other units
Relates to #359
2022-04-27 19:32:21 +02:00
Mateusz Pusz 5d82969e0a fix: enable SI prefixes for Kelvin
Resolves #359
2022-04-26 16:00:20 +02:00
Mateusz Pusz 98da140fae ci: pre-commit cmake-format checks fixed 2022-04-24 22:55:30 +02:00
Mateusz Pusz d18bf2229a test: standalone public headers tests added 2022-04-24 19:59:46 +02:00
Mateusz Pusz 464b4467ee fix: public headers fixed to be standalone 2022-04-24 19:52:58 +02:00
Mateusz Pusz 56cee31a67 fix: si::hep::dim_momentum duplicated definition fixed 2022-04-24 19:52:07 +02:00
Mateusz Pusz e62c162610 fix: radioactivity header compilation fixed 2022-04-23 16:52:06 +02:00
Mateusz Pusz e525c0c892 refactor: knot text symbol changed from "knot" to "kn"
Relates to #357
2022-04-19 18:57:06 +02:00
Mateusz Pusz e660278fa8 feat: nautical_mile_per_hour and knot added to si::international system
Relates to #357
2022-04-19 18:49:48 +02:00
Mateusz Pusz 999ff52d70 refactor: knot unit helper renamed to kn in FPS
Relates to #357
2022-04-19 18:48:46 +02:00
Mateusz Pusz a0c6252567 refactor: mi(naut) renamed to nmi
Relates to #357
2022-04-19 18:47:48 +02:00
Chip Hogg 44cccfc743 Address review comments 2022-04-09 15:39:29 +00:00
Chip Hogg 2c31bf83ec Clean up 2022-04-06 02:01:23 +00:00
Chip Hogg b616e58216 Give up on implicit conversion
I don't understand what MSVC is complaining about, and it may end up
being easier to just make the conversion explicit.
2022-04-06 01:40:17 +00:00
Chip Hogg f77a92ca04 Reproduce requires clause
clang appears to care about this.
2022-04-06 00:36:18 +00:00
Chip Hogg 746aa34fcc Tweak unwise variable names 2022-04-06 00:18:52 +00:00
Chip Hogg d7681e188e Support seamless interop between ratio and rational Magnitude
We provide two new functions, `numerator(m)` and `denominator(m)`, for a
Magnitude `m`.  They fulfill the following conditions:

1. `numerator(m)` and `denominator(m)` are always integer Magnitudes.
2. If `m` is rational, then `m == numerator(m) / denominator(m)`.

If `m` is _not_ rational, then the numerator and denominator are not
especially meaningful (there is no uniquely defined "leftover irrational
part").  However, we choose a convention that matches how humans would
write a mixed number.  For example, sqrt(27/16) would have a numerator
of 3, denominator of 4, and a "leftover part" of sqrt(3), matching the
"human" way of writing this as [(3 * sqrt(3)) / 4].  This has no use
yet, but it may later be useful in printing the Magnitude of an
anonymous Unit for end users.

To further reduce friction for the upcoming migration, we provide an
implicit conversion from a Magnitude to a `ratio`.  We restrict this
operation to rational Magnitudes, and guard this with a `static_assert`.
2022-04-05 23:03:44 +00:00
Mateusz Pusz b221dace3f style: clang-format applied to the remaining files 2022-04-02 21:36:42 +02:00
Markus Hofbauer cf7a7ed17a check: run pre-commit on all files 2022-04-02 18:58:23 +02:00
Johel Ernesto Guerrero Peña 146f1d1c83 fix: improve downcast mode off 2022-03-28 10:58:02 -04:00
Johel Ernesto Guerrero Peña 9b19dcf193 refactor(bits): remove unused header in prime.h 2022-03-24 16:57:12 -04:00
Johel Ernesto Guerrero Peña 8491e94c94 refactor(bits): remove unused headers in external/type_list.h 2022-03-23 18:03:44 -04:00
Mateusz Pusz 6483d39762 fix: fill_t assignment operator fixed 2022-03-22 14:51:09 +01:00
Mateusz Pusz 6218a709ae refactor: first_factor_maybe() replaced with get_first_of() 2022-03-21 18:13:47 +01:00
Mateusz Pusz b822a149b9 Merge pull request #343 from JohelEGP/cmake_systems
build(cmake): fix export name of mp-units-system
2022-03-21 11:50:01 +01:00
Mateusz Pusz ca283b94f6 refactor: find_first_factor() refactored 2022-03-21 11:16:50 +01:00
Mateusz Pusz 3729a9fe93 Merge pull request #337 from chiphogg/chiphogg/prime-wheel
Use wheel factorization for prime numbers
2022-03-21 10:37:05 +01:00
Johel Ernesto Guerrero Peña 94d143ef7e build(cmake): fix export name of mp-units-system 2022-03-20 09:17:25 -04:00
Chip Hogg b589ba8d86 Omit redundant computation
This stems from an earlier mistake where I was using primes in the first
wheel, rather than coprimes-to-the-basis.  1 is not prime, so we used to
need to handle it separately (in an implementation which was, to be
clear, wrong).  It _is_ coprime, so now we get it for free!
2022-03-19 22:10:01 +00:00
Mateusz Pusz e1f7266b51 refactor: <algorithm.h> header added
Should be replaced with `<algorithm>` when C++20 modules will be used. Right now this header is too expensive to compile.
2022-03-19 20:07:55 +01:00
Chip Hogg 6872117bae Replace reduce with bespoke implementation
If _this_ isn't `constexpr` compatible, I'm going to propose removing
support for the MacOS clang build.
2022-03-19 17:35:20 +00:00
Chip Hogg f495ad9e75 Replace accumulate with reduce
Perhaps this will also satisfy Apple's Clang 13?  Since `reduce` is
newer, it may be more likely to be `constexpr` compatible.
2022-03-19 17:27:38 +00:00
Chip Hogg c339383873 Convert names to standard_case 2022-03-19 16:07:39 +00:00
Chip Hogg 48b6280486 Merge branch 'master' into chiphogg/prime-wheel 2022-03-19 16:01:32 +00:00
Chip Hogg 166dd1e944 Work around numbers with very large first factors
We introduce the `known_first_factor` variable template.
2022-03-19 15:56:12 +00:00
Chip Hogg 28c4fe3c08 Run clang-format-15 on changed files 2022-03-19 14:29:11 +00:00
Chip Hogg 1e8460d401 Revert "Try upping the basis size further"
This reverts commit 87073856a7.
It didn't fix the problem, and it caused some new ones.  We need a
different approach.
2022-03-19 13:21:47 +00:00
Markus Hofbauer 4c127797da check: run pre-commit on all files 2022-03-18 16:12:21 +01:00
Mateusz Pusz b58b696e92 style: clang-format formatting improved with additional parenthesis 2022-03-18 09:10:27 +01:00
Mateusz PuszandJohel Ernesto Guerrero Peña 6531d188d1 Update src/core/include/units/quantity.h
Co-authored-by: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
2022-03-18 08:20:43 +01:00
Mateusz PuszandJohel Ernesto Guerrero Peña f4fbac86b4 Update src/core/include/units/quantity.h
Co-authored-by: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
2022-03-18 08:20:36 +01:00
Mateusz PuszandJohel Ernesto Guerrero Peña 03290d74a2 Update src/core/include/units/quantity.h
Co-authored-by: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
2022-03-18 08:20:27 +01:00