Chip Hogg
a306472a6b
Reuse callables in pairwise_all tests
2022-01-11 19:44:10 -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
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
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
325cbc8fa9
Finish adding tests
2022-01-08 18:14:22 -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
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
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
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
Chip Hogg
05934c8b72
Add make_base_power() helper
2021-12-29 21:37:06 -05:00
Chip Hogg
c75eb02ea7
Finish fleshing out make_ratio
2021-12-29 21:21:58 -05:00
Chip Hogg
8a1ed3adcb
Add make_ratio() helper and prime factorization
2021-12-29 21:21:58 -05:00
Chip Hogg
2c229710e7
Create and use BasePower concept
2021-12-29 21:21:57 -05:00
Chip Hogg
0566158e91
Add concept for magnitude
2021-12-29 21:21:57 -05:00
Chip Hogg
0c5ae082d5
Add magnitude with product, inverse, quotient
...
For now, all templates are unconstrained; we hope to clean that up
later.
2021-12-29 21:21:57 -05:00
Markus Hofbauer
4cd90674d5
Feat: Round ( #313 )
...
* feat: round
* add more constraints for round
* overload round for quantity
* fix clang tidy
* Validate types before return
2021-11-15 18:53:15 +01:00
Mateusz Pusz
e19b9e93e9
test: forgot to change the other preprocessor check as well
2021-11-15 17:41:02 +01:00
Mateusz Pusz
d6bb6c8bc9
test: fmt test compilation on VS2019 fixed
2021-11-15 17:12:44 +01:00
Mateusz Pusz
6f38e77426
test: [fmt] unit test fixed for std::format in VS2022
2021-11-15 16:36:09 +01:00
Markus Hofbauer
50b9050d6b
Feat: Overloads for floor and ceil accepting quantities ( #314 )
...
* feat: overloads for floor and ceil accepting quantities
* require same type for dim and rep
* be specific for msvc
2021-11-15 12:23:28 +01:00
Markus Hofbauer
b881b56480
feat: first draft ceil
2021-11-13 16:50:55 +01:00
Markus Hofbauer
e82bfa23a5
Feat: Floor ( #309 )
...
* feat: first draft floor
* apply review feedback and move to desired files
* implement floor considering float types
* reduce code duplication
* apply review feedback and improve docstring
* enable static floor tests for gcc only
* Use recommended feature-test macro
* add floor runtime unittests
* apply review feedback
* make lambda const
2021-11-13 12:17:43 +01:00
Mateusz Pusz
506408a316
fix: fmt_test compilation fixed
2021-11-08 19:05:08 +01:00
Mateusz Pusz
9f95799288
refactor: got rid of FMT_RUNTIME() as it is not the part of C++20
2021-11-08 18:37:37 +01:00
Mateusz Pusz
2333c4b3ea
build: CMake targets generated by Conan updated
2021-11-04 12:09:54 +01:00
Mateusz Pusz
ed1b2d2647
fix: Some MSVC-specific special cases removed
2021-09-23 19:16:44 +02:00
Mateusz Pusz
b1bd4cab2d
feat: std::format support for compliant compilers added
2021-09-20 15:01:58 +02:00
Mateusz Pusz
8740857a47
build: fmt updated to 8.0.1
2021-09-16 20:24:27 +02:00
Mateusz Pusz
8e88f06380
refactor: *deduced_unit renamed to *derived_unit
2021-05-10 15:56:48 +02:00
Mateusz Pusz
2c8c6c2e98
refactor: quantity cration helpers are not opt-out rather than opt-in
...
Resolves #277
2021-05-09 15:52:20 +02:00
Mateusz Pusz
46e1e5e932
refactor: US system renamed to USCS
2021-04-16 12:40:52 +02:00
Mateusz Pusz
70bff31d06
feat: quantity aliases support addded
2021-04-15 19:13:25 +02:00
Mateusz Pusz
8ca2b25349
fix: torque literal fixed + experimental_angle example refactored
2021-04-07 19:07:25 +02:00
Mateusz Pusz
b982921d27
refactor: References are now guarded UNITS_REFERENCES with (ON by default) + examples duplicated to subdirectories
...
Now References can be disabled to meassure a compile time impact. Also the same examples are now provided in two subdirectories to be able to easily compare the pros and cons of every quantity construction technique.
2021-04-06 15:57:28 +02:00
Mateusz Pusz
c3659dbb47
refactor: UNITS_UDLS renamed to UNITS_LITERALS
...
Also now the existence of the preprocessor flag is enough to trigger the feature (`#ifdef` instead of `#if`)
2021-04-06 13:33:27 +02:00
Mateusz Pusz
dfd209ed14
fix: femtotonne enabled
2021-04-02 18:57:17 +02:00
Mateusz Pusz
1a5b4fc85e
refactor: UDLs support switched off by default
2021-04-02 18:56:28 +02:00
Mateusz Pusz
441db47928
fix: MSVC Release build fixed + pragmas usage refactored
2021-03-30 20:00:23 +02:00
Mateusz Pusz
8a26eaf420
fix: VS build fixed
2021-03-30 14:47:05 +02:00
Mateusz Pusz
37cfc53d1d
refactor: IWYU applied to the source files
...
`alternative_namespaces` examples left out as I consider them a subject for removal in the nearest future.
2021-03-30 13:21:05 +02:00
Mateusz Pusz
1197fa1ec4
fix: MSVC shadowing warning disabled for fmt_unit_test.cpp
2021-03-19 23:31:36 +01:00