Commit Graph
2810 Commits
Author SHA1 Message Date
Mateusz Pusz 6d6bf81003 build(conan): Upgrading the recipe to Conan 2.0 2022-05-05 09:46:35 +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 74056fd6da build: clang-tidy is not ready yet to be officially enabled in the project 2022-04-24 22:57:34 +02:00
Mateusz Pusz 98da140fae ci: pre-commit cmake-format checks fixed 2022-04-24 22:55:30 +02:00
Mateusz Pusz be678e8ffa build: add_public_header_test() added and fixed Windows absolute header path issue 2022-04-24 22:23:16 +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 954dc5d53e fix: missing typename added for clang-12 2022-04-22 13:27:11 +02:00
Mateusz Pusz 967c1c9ca9 fix: ranged_representation fixed for clang-12 2022-04-22 13:26:31 +02:00
Mateusz Pusz c598201d11 fix: ranged_representation refactored to work with older compilers 2022-04-22 13:07:01 +02:00
Mateusz Pusz bded48987d refactor(example): glide_computer now use dimensionless quantities with ranged_representation as rep 2022-04-21 21:25:54 +02:00
Mateusz Pusz 11521a5a96 feat(example): validated_type and ranged_representation example types added 2022-04-21 21:23:45 +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 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