Commit Graph
1564 Commits
Author SHA1 Message Date
Johel Ernesto Guerrero Peña 3f145a25db refactor: update hacks for LLVM 15 2022-02-07 21:07:22 -04:00
Mateusz Pusz e5f74b85ce Merge pull request #330 from fdischner/apple_ci
Add Apple clang support to CI
2022-02-01 09:50:20 +01:00
Frank Dischner 8accecb15c ci: Apple clang 13 support added for Conan 2022-01-29 12:32:57 -06:00
Frank Dischner aba980290b ci: explicitly set used xcode version 2022-01-29 12:32:57 -06:00
Frank Dischner 4ae66aafb1 ci: Apple clang 13 support added to "CMake Test Package CI" 2022-01-29 11:25:32 -06:00
Mateusz Pusz ee10be7535 Merge pull request #327 from fdischner/apple_clang
Add support for AppleClang
2022-01-28 09:53:41 +01:00
Frank Dischner ad48d29ed9 docs: add Apple clang 13 to list of supported compilers 2022-01-27 21:31:25 -06:00
Frank Dischner bd92f9cf28 build: AppleClang requires fmt 8.1.1 with C++20 2022-01-26 18:22:54 -06:00
Frank Dischner 771a400007 build: add support for AppleClang compiler 2022-01-26 18:18:51 -06:00
Frank Dischner ba6c378897 refactor: use libc++ version to determine range-v3 use
Allows using AppleClang where __clang_major__ does not match the
llvm/libc++ version.
2022-01-26 18:16:05 -06:00
Mateusz Pusz cab5e8b2fd Merge branch 'master' of github.com:mpusz/units 2022-01-25 13:30:10 +01:00
Mateusz Pusz d7ee8f23a8 build: Conan finally fixed gsl-lite
Relates to #318
2022-01-25 13:30:01 +01:00
Mateusz Pusz 30e3722d62 Merge pull request #326 from fdischner/fix_derived_unit
Fix derived_ratio calculation
2022-01-25 13:27:10 +01:00
Frank Dischner 774dd91686 Add tests for FPS cubic yard 2022-01-23 21:52:23 -06:00
Frank Dischner 684ef13d95 fix: derived_ratio calculation
Fixes the ratio calculation for derived units when the base unit ratio is
not one.
2022-01-18 21:54:21 -06:00
Mateusz Pusz 8493bf389e refactor: Forward declaration of as_magnitude() is not needed 2022-01-18 12:16:18 +01:00
Mateusz Pusz 30b7250033 Merge pull request #323 from chiphogg/add-magnitude
Add vector space representation for magnitudes
2022-01-12 19:59:54 +01:00
Chip Hogg 1c70b18709 Unify "H1 base smaller" test cases
This might actually fix the error!
2022-01-12 10:47:59 -05:00
Chip Hogg 038616c901 Try rearranging the order
Maybe this will help me understand where the problem lies.
2022-01-12 10:11:50 -05:00
Chip Hogg fb602a4497 Try fixing "unreachable code" warning on MSVC 14.2
This doesn't show up on any other compiler, including MSVC 14.3, so I
think it's just a compiler bug.  Cursory googling suggests perhaps that
some older versions of MSVC have immature support for `if constexpr`.
2022-01-12 09:47:40 -05:00
Chip Hogg d554fb28cc Try fixing MSVC internal compiler error
I'm breaking apart the requirements into simpler pieces, but I don't
really know if that will help.
2022-01-11 20:33:48 -05:00
Chip Hogg a306472a6b Reuse callables in pairwise_all tests 2022-01-11 19:44:10 -05:00
Chip Hogg bdf488db04 Remove unnecessary forward declaration 2022-01-11 19:34:57 -05:00
Chip Hogg 08818ac6a8 Make pow()'s argument a simple (non-template) parameter 2022-01-11 19:19:25 -05:00
Chip Hogg a8d6c890a5 Move pi_to_the to the test file 2022-01-11 19:12:27 -05:00
Chip Hogg 3042135eb9 Try fixing clang build failures 2022-01-11 12:56:14 -05:00
Chip Hogg cee4be2b67 Simplify namespaces and canonicalize formatting
The motivation for the `mag` sub-namespace was to distinguish something
like `mag::product_t<...>` from `dim::product_t<...>`, based on the
idioms of Aurora Units.  However, we have no need for a `product_t` type
trait, since we can just use `operator*()`, so we can eliminate this
sub-namespace.
2022-01-10 14:28:02 -05:00
Chip Hogg 4f90302dd7 Constrain strictly_increasing to signed values 2022-01-10 14:27:04 -05:00
Chip Hogg c64f392dc3 Remove some extra spaces 2022-01-10 14:23:44 -05:00
Chip Hogg f783d7f274 Handle exp explicitly in as_magnitude()
The new test actually passed without modifying the code.  However, that
might be implementation-dependent (presumably based on canonicalization
of the `ratio` template parameter), so I wanted a more obviously correct
implementation.
2022-01-08 19:34:42 -05:00
Chip Hogg 409aaf4636 Generalize inverse() to pow<...>() 2022-01-08 19:34:21 -05:00
Chip Hogg 053de8d539 Replace structs with variables 2022-01-08 18:34:14 -05:00
Chip Hogg ba458d479e Fix remaining constraints 2022-01-08 18:19:40 -05:00
Chip Hogg 325cbc8fa9 Finish adding tests 2022-01-08 18:14:22 -05:00
Chip Hogg 41995464f0 Fix magnitude constraints
I got my requires expressions/clauses mixed up.

Unfortunately, this means we can't just shove all the "implementation
details" down to the bottom of the file.  Oh well.
2022-01-08 18:13:48 -05:00
Chip Hogg f12fde6204 Add some tests 2022-01-08 17:57:10 -05:00
Chip Hogg 0a470f2617 Replace make_ratio with as_magnitude<ratio>
It's cleaner to just have the one way.
2022-01-08 17:29:40 -05:00
Chip Hogg ef6f937460 Clean up and reorder file 2022-01-08 17:18:33 -05:00
Chip Hogg 838b132a61 Finish migrating base_power to NTTP 2022-01-08 15:08:05 -05:00
Chip Hogg 9d48e6983a Refactor BasePower struct and concept
Instead of templating on `long double`, we template on "anything whose
value member is `long double`".  This is how we work around gcc-10's
lack of support for floating point NTTPs.

To access the base value, we provide `.get_base()` member functions.

The clearest and most direct way I know to express "is this a base
power" is via a type trait, which is true only for `base_power<T>`.
2022-01-08 14:40:28 -05:00
Chip Hogg 3063aebe5a Clean up pairwise_all() and strictly_increasing() 2022-01-08 14:28:53 -05:00
Chip Hogg 92b7a15d6f (partial) Switch base_power to NTTP
Apparently, gcc-10 does not support floating point NTTPs, so we'll need
to reimagine the approach.
2022-01-08 14:04:19 -05:00
Chip Hogg 6033f96267 Enable implicit ratio construction 2022-01-08 14:03:52 -05:00
Chip Hogg 14d8d96b3c Replace static_assert with template parameter constraints 2022-01-04 20:06:41 -05:00
Chip Hogg 63910131ff Try fixing MSVC 14 bug
I don't know how to test this locally.
2022-01-04 14:14:22 -05:00
Chip Hogg 4246f2db2a Remove unused variable names
Should fix clang builds
2022-01-04 14:01:42 -05:00
Chip Hogg bb4fe5040d Factor out logic into pairwise_all() helper
We could move this somewhere more generic if we want.
2022-01-03 15:20:05 -05:00
Chip Hogg cef01ba67c Remove redundant inline specifiers
`static constexpr` implies `inline`; see:
https://stackoverflow.com/a/57407675
2021-12-31 09:54:10 -05:00
Chip Hogg 998266e780 Try fixing MSVC 14.2
I don't know how to run the build directly, but it seems like this
should work.
2021-12-31 09:35:30 -05:00
Chip Hogg 626c7bfe39 Fix up for review
- 120 line limit
- uppercase template params
- doxygen comments for public APIs
- `int_base` -> `prime_base`
2021-12-30 10:47:01 -05:00