Commit Graph
3594 Commits
Author SHA1 Message Date
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 2b37bc7b3e Address review feedback 2022-04-19 15:42:43 +00:00
Mateusz Pusz f964dbd116 Merge pull request #356 from alex-700/fix-typo
docs: fix typo in units.rst
2022-04-19 11:35:49 +02:00
Aleksei Latyshev 291314fbb7 docs: fix typo in units.rst 2022-04-17 23:49:19 +03:00
Mateusz Pusz ac8e32fcda feat: Conan 2.0 requires the explicit declaration of the requirement being tested 2022-04-15 17:07:55 +02:00
Mateusz Pusz 10a1c06dfa fix: includedirs added for components as there will be no defaults in Conan 2.0 2022-04-15 17:01:47 +02:00
Mateusz Pusz 05fecca12c refactor: self.copy replaced by the explicit tool copy (for Conan 2.0) 2022-04-15 17:00:29 +02:00
Mateusz Pusz 9abd63c2d5 fix: validate() replaced with configure() to raise errors during conan install in Conan 1.X 2022-04-15 16:57:38 +02:00
Mateusz Pusz 061b7652d3 style: conanfile.py reformatted 2022-04-15 16:56:48 +02:00
Chip Hogg 94fe48dd64 Add <compare> to satisfy clang 2022-04-12 00:44:53 +00:00
Chip Hogg c805a9390f Implement suggestion 2022-04-12 00:40:42 +00:00
Chip Hogg 78bcb3b019 Remove troublesome ::ratio members
For some reason, MSVC seems to want to instantiate these, even though
nobody ever asks for them (as evidenced by the fact that the builds
passed on other architectures).
2022-04-12 00:35:17 +00:00
Chip Hogg 7a03692e14 Annotate 225'653'407'801 as prime 2022-04-12 00:32:24 +00:00
Chip Hogg 5e365f1905 Delete obsolete test case 2022-04-11 15:16:16 +00:00
Chip Hogg d19b2803ce Migrate units from ratio to Magnitude
This commit is huge, but hopefully the cognitive load is not too bad.
The bulk of this commit is just some fairly mechanical updates from
`ratio` to `Magnitude`.  Other things to call out:

- `UnitRatio` goes away.  We don't need this concept, because Magnitude
  can't even _represent_ anything that doesn't satisfy it.

- I commented out some formatting test cases where the precise
  expression changes, but the number is completely equivalent.  We will
  need to decide how we want to handle Magnitude formatting as a
  separate, follow-on task.  But at least Magnitude gives us all the
  tools we'll need to do so!
2022-04-11 15:16:16 +00:00
Chip Hogg 5afe7766e9 Use Magnitude implementation for base_units_ratio
This resolves a TODO and lets us use arbitrary exponent denominators.

I also attempt to clarify the semantics.  This is based on my best
effort of understanding pre-existing concepts in the library, so I hope
I got it right!
2022-04-11 15:16:16 +00:00
Chip Hogg 5c0eb0667c Remove inverse_if_negative()
Fixes #332.
2022-04-11 15:16:16 +00:00
Chip Hogg 85d6e35d79 Loosen requirements on Rep for Magnitude
This is necessary to be able to use Magnitudes in Units with a Rep that
is not `std::is_arithmetic`.
2022-04-11 15:16:16 +00:00
Chip Hogg af8eec1102 Implement "common Magnitude" of two Magnitudes 2022-04-11 15:16:15 +00:00
Chip Hogg bc98254e7a Support - and <=> in ratio 2022-04-11 15:16:15 +00:00
Mateusz Pusz 6044e3b3ad Merge pull request #354 from chiphogg/chiphogg/num-den-conv
Support seamless interop between `ratio` and rational `Magnitude`
2022-04-11 17:07:54 +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 0f776b5b5b Remove incorrectly included test
We had removed this upstream, but apparently it snuck back in from a merge/rebase conflict.
2022-04-06 00:31: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
Mateusz Pusz 0dca41b5ae Merge pull request #348 from hofbi/cmake_format
Enable CMake format in pre-commit
2022-04-02 20:59:10 +02:00
Markus Hofbauer cf7a7ed17a check: run pre-commit on all files 2022-04-02 18:58:23 +02:00
Markus Hofbauer 4c9ada5f93 check: use cmake format config file 2022-04-02 18:56:54 +02:00
Markus Hofbauer fbe2e686eb check: enable cmake-format in pre-commit 2022-04-01 16:28:14 +02:00
Mateusz Pusz 70586138d9 Merge pull request #346 from JohelEGP/prime
refactor(bits): remove unused header in prime.h
2022-03-31 21:48:47 +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
Mateusz Pusz 6c2c8748e7 Merge pull request #345 from JohelEGP/type_list
refactor(bits): remove unused headers in external/type_list.h
2022-03-24 09:35:00 +01: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 bb9b5e495a chore: Sphinx live preview fixed in Gitpod 2022-03-23 13:23:26 +01:00
Mateusz Pusz 2b93580eb4 chore: Gitpod configuration fixed for impish 2022-03-23 12:00:29 +01:00
Mateusz Pusz 035eb7da70 docs: CONTRIBUTING.md updated 2022-03-22 14:57:19 +01:00
Mateusz Pusz 6483d39762 fix: fill_t assignment operator fixed 2022-03-22 14:51:09 +01:00
Mateusz Pusz 63f3dd2be6 Merge pull request #344 from JohelEGP/quotient_remainder_theorem
test(static): simplify quotient_remainder_theorem test cases
2022-03-22 10:04:49 +01:00
Mateusz Pusz 9e22c7b0c7 chore: Gitpod configuration fixed 2022-03-21 19:43:45 +00:00
Johel Ernesto Guerrero Peña feb1a0b860 test(static): simplify quotient_remainder_theorem test cases 2022-03-21 14:29:50 -04:00
Mateusz Pusz 57dc186162 chore: clang-12 and clang-format-15 added to gitpod 2022-03-21 19:00:58 +01:00
Mateusz Pusz 6218a709ae refactor: first_factor_maybe() replaced with get_first_of() 2022-03-21 18:13:47 +01:00