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
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
Johel Ernesto Guerrero Peña
feb1a0b860
test(static): simplify quotient_remainder_theorem test cases
2022-03-21 14:29:50 -04: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
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
a99e5f9032
Switch tests to use top-level, anonymous namespace
2022-03-19 15:54:29 +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 and Johel Ernesto Guerrero Peña
6d82ddebbc
Update test/unit_test/static/quantity_kind_test.cpp
...
Co-authored-by: Johel Ernesto Guerrero Peña <johelegp@gmail.com >
2022-03-18 08:21:15 +01:00
Mateusz Pusz
144f6951c0
style: all files refromatted with clang-format
2022-03-17 23:59:48 +01:00
Chip Hogg
87073856a7
Try upping the basis size further
...
We are well into a regime of diminishing returns, but we'd better start
by seeing if the easy thing works. Besides, setting this to 7 trips the
step limit in _generating_ the algorithm!
2022-03-12 18:56:26 +00:00
Chip Hogg
73a56115a1
Fix wheel factorization algorithm
2022-03-11 03:42:19 +00:00
Chip Hogg
24b284fcbb
Add tests to support claims in comment
2022-03-10 23:41:36 +00:00
Chip Hogg
04b80f0827
Use wheel factorization for prime numbers
...
Certain existing units in the library require very large prime
numbers---so large, in fact, that our naive trial division hits the
_iteration limit_ for `constexpr` loops. We don't want to force users
to provide a compiler option override, so we'd better find another way.
The solution is to use the "wheel factorization" algorithm:
https://en.wikipedia.org/wiki/Wheel_factorization
This lets us skip most composite numbers in our trial division. The
implementation presented here is configurable in terms of the size of
the "basis" of primes we use. Bigger bases let us skip more primes, but
at the cost of storing more numbers. Fortunately, it turns out that N=3
was good enough for our purposes.
2022-03-10 23:29:02 +00:00
Johel Ernesto Guerrero Peña
3f145a25db
refactor: update hacks for LLVM 15
2022-02-07 21:07:22 -04:00
Frank Dischner
774dd91686
Add tests for FPS cubic yard
2022-01-23 21:52:23 -06:00
Chip Hogg
a80378cae8
Support addition and negation in ratio
2021-12-29 21:21:57 -05:00
Johel Ernesto Guerrero Peña
4efed3c6d4
refactor: update Clang 14 to not require range-v3 ( #321 )
...
* Revert "refactor: update hacks for LLVM 14"
This reverts commit d142844de7 .
* refactor: update Clang 14 to not require range-v3
2021-12-13 10:01:16 +01:00
Mateusz Pusz
571df5ed33
feat: conversion from quantity_point to std::chrono::time_point added
...
Refers #316
2021-11-23 14:37:08 +01:00
Mateusz Pusz
af928dd0c7
feat: conversion helpers from mp-units to std::chrono types added
...
Resolves #316
2021-11-23 11:17:47 +01: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
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
f9fb6cc8b3
build: projectPrefix usage added
2021-11-05 23:35:30 +01:00
Mateusz Pusz
ca3d111579
fix: CTAD test disabled for most of the compilers
2021-10-20 20:18:15 +02:00
Mateusz Pusz
240ec3a460
build: CTAD for quantity is not supported by clang
2021-10-20 19:58:31 +02:00
Mateusz Pusz
b7b8a0bf93
fix: CTAD for aliases fixed
2021-10-20 18:52:13 +02:00
Mateusz Pusz
620835db97
test: Numeric rounding error commented out
2021-09-10 08:08:02 +02:00
Mateusz Pusz
120d863c40
test: derived_quantity-related compilation error fixed
2021-09-09 09:26:23 +02:00
rstein
cc5318e5cc
refactored HEP units into separate files and corrected namespace where necessary
2021-08-04 13:46:48 +02:00
Ralph J. Steinhagen
322cde70b9
added HEP specific units and definitions
...
in accordance with https://www.bipm.org/documents/20126/41483022/SI-Brochure-9.pdf#page=147
see also disccusion thread #292
2021-08-03 10:56:47 +02:00
Mateusz Pusz
ed5749a52b
refactor: quantity op+() and op-() reimplemented in terms of reference rather then quantity types
...
`common_quantity`, `common_quantity_for`, `common_quantity_point`, `common_quantity_kind`, and `common_quantity_point_kind` removed
Resolves #290
2021-07-27 14:40:05 +02:00
Johel Ernesto Guerrero Peña
0768f2739a
fix: use complete type for MSVC
2021-06-30 12:26:56 +02:00
Johel Ernesto Guerrero Peña
80eefec97c
fix: add quantity_point::origin, like std::chrono::time_point::clock
2021-06-29 20:44:27 +02:00
Ralph J. Steinhagen
8e1539bf22
added inheritance unit-test and made is_quantity<T> more specific
2021-06-29 20:31:06 +02:00
Mateusz Pusz
ae7aca5fa0
test: uncommented some already supported cases
...
Resolves #206
2021-05-11 20:12:46 +02:00
Mateusz Pusz
1783d243da
fix: quantity modulo arithmetics fixed
...
Resolves #231
2021-05-11 15:03:04 +02:00
Mateusz Pusz
68203b6a9f
test: additional tests for FPS unit text symbols added
2021-05-10 18:11:53 +02:00
Mateusz Pusz
b894ee6558
refactor: 💥 got rid of a noble_derived_unit
...
Resolves #280
2021-05-10 18:03:47 +02:00
Mateusz Pusz
7ead50acfc
refactor: derived_kind template parameters reordered to be compatible with a derived_unit
...
Resolves #229
2021-05-10 16:45:38 +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
6d39459cbc
perf: rvalue references support added for constructors and getters
...
Resolves #275
2021-05-03 19:44:50 +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
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