Commit Graph

54 Commits

Author SHA1 Message Date
9c140f4b3a feat: explicit constructor now can perform an explicit quantity_spec conversion 2025-06-20 17:10:34 +02:00
f18aa18869 refactor: compund assignment and pre-/post-increment operators are now lvalue-qualified member functions 2025-06-19 18:49:21 +02:00
e9c5f7236e feat: ConvertibleWithNumber introduced to improve convertibility of unit one with raw numbers
Resolves #675
2025-02-11 21:28:15 +01:00
47a82f466c refactor: scalar and complex renamed to real_scalar and complex_scalar respectively + concepts refactoring + electromagnetism fixes 2025-02-11 17:26:19 +01:00
5d4e1aa740 feat: might_store_converted_common_value added to detect conversions overflowing rep
Resolves #670, resolves #671, resolves #658, resolves #303
2025-02-06 15:28:55 +01:00
0b14d69539 feat: quantity::one() removed
Related to #408
2025-02-05 12:08:32 +01:00
06cbfae3b3 feat: quantity_spec conversions improved 2024-12-28 14:02:03 +01:00
465f88d500 refactor: 💥 is_XXX customization points for representation types removed 2024-11-26 14:48:08 +01:00
9a0f7a25dd test: tests for dimensionless quantities static data members 2024-11-23 19:35:59 +01:00
4f8e959b5c fix(test): shadowing warnings on gcc fixed 2024-11-16 08:28:39 +01:00
08e94171cb test: vector quantities unit tests addded 2024-11-15 12:59:18 +01:00
5097096915 test: lots of tests for complex quantities 2024-11-07 18:42:20 +01:00
da50348115 feat: 💥 RepresentationOf concept now also accepts a QuantitySpec and accepts any representation character for quantity kinds 2024-11-07 18:39:32 +01:00
75b50b8d2c feat: complex.h added 2024-11-07 10:58:51 +01:00
6896d8e086 fix: velocity is now defined in terms of displacement instead of position_vector 2024-11-06 18:46:01 +01:00
c7303cc5fb refactor: representation concepts refactored + some quantities switched to complex 2024-11-05 19:09:16 +01:00
f461cf479b test: test for lack of consitency between op+ and op+= for quantity_point 2024-11-04 09:41:11 +01:00
8ca8270d2f feat: from now on truncation is not allowed in compound assignment 2024-10-30 08:40:49 +01:00
18525beb31 test: small refactoring of compund assignment tests 2024-10-29 10:20:11 +01:00
7445585db8 fix: compound assignment operations on quantities now behave the same as on the underying representation types
Resolves #137
2024-10-29 09:18:32 +01:00
00847ab558 fix(tests): freestanding build fixed 2024-10-16 17:22:59 +02:00
21784b125e refactor: derived_quantity refactored to child_quantity 2024-10-15 21:06:52 +02:00
3eecdf3946 test: commutativity tests added to ISQ 2024-10-15 21:06:18 +02:00
569f27af8b fix: common_unit handling fixed for some corner cases 2024-10-05 17:52:52 +02:00
7ce8d695b1 test: std::complex-based quantities tests added 2024-09-17 12:48:13 -06:00
0670fbdd9f feat: value_cast<Representation, Unit>() complementary conversion function added 2024-09-13 21:38:59 +02:00
3d39472f46 test: unit tests for creating a quantity from a volatile variable 2024-09-06 18:07:33 +02:00
1570bda905 fix: quantity scaling between different prefixes improved
Resolves #608
2024-09-06 12:28:11 +02:00
2e840cfdb4 refactor: Repetitive inline constexpr removed as no longer needed
Not needed anymore as stated in cplusplus/draft#4601
2024-09-05 08:43:36 +02:00
3a6fac9858 Move tests to runtime 2024-07-24 20:04:15 -04:00
f6696e8f68 Fix formatting 2024-07-24 19:48:05 -04:00
7e894788d7 Compute values for rational magnitude powers
Since this will only ever be done at compile time (as guaranteed by
using `consteval`), we can afford to prioritize precision over speed.
To compute an Nth root, we simply do a binary search over representable
floating point numbers, looking for the number whose Nth power most
closely matches the original number.

Fixes #494.  We have included a test case reproducing the original
problem exactly.  All tests use "within 4 ULPs" as the criterion, which
is (I believe) equivalent to the googletest `EXPECT_DOUBLE_EQ`
criterion.
2024-07-24 10:31:44 -04:00
b870b85c25 feat: import std; support added
Resolves #595
2024-07-16 17:36:00 +02:00
c57142c18a fix: common_type_t with std::chrono::seconds unit test removed 2024-07-14 22:22:39 +02:00
d84a2beae5 fix: common_type_t unit tests fixed 2024-07-14 22:12:25 +02:00
fcc16ae282 feat: convertibility of a quantity with a unit one with the raw value added
Resolves #553
2024-07-14 18:31:11 +02:00
adbc77432e feat: all tags in the expression templates are now ordered by the type names
Resolves #499
2024-07-12 17:48:38 +02:00
2cff579650 feat: representation type template parameter added to value convertion functions
Resolves #588
2024-07-04 22:05:40 +01:00
2adc9344ea refactor: some TODO comment addressed or removed 2024-06-01 13:36:22 +02:00
ec287664ee refactor: some TODO comments resolved 2024-05-31 21:07:42 +02:00
cd36e6f974 feat: freestanding support added
Resolves #564, #565, and #556
2024-05-30 19:50:02 +02:00
09c7b059c7 review suggestions
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-05-10 21:38:40 +02:00
c2fa8a9000 avoid using a function for the lvalue test 2024-05-10 21:13:21 +02:00
d03f9c17a3 fix constexpr and format 2024-05-10 20:15:15 +02:00
b119abed56 add test for lvalue references in quantity_cast 2024-05-10 20:01:35 +02:00
54d144d112 refactor: workarounds for clang-tidy-18 2024-05-08 14:46:04 +02:00
75f719add7 refactor: code refactored to comply with clang-tidy 2024-05-08 11:12:38 +02:00
8ea346be1c refactor: 💥 header files with the entire system definitions moved up in the directory tree 2024-04-25 16:34:11 +02:00
c066104af7 refactor: 💥 framework.h introduced + IWYU 2024-04-24 21:09:29 +02:00
15389107d4 fix: dependencies on cstdint header fixed 2024-04-23 08:59:14 +02:00