Chip Hogg
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
Mateusz Pusz
f9ae701b4e
fix: MP_UNITS_BUILD_IMPORT_STD verification fixed
2024-07-17 21:31:28 +02:00
Mateusz Pusz
fb9043b649
fix: setting of MP_UNITS_BUILD_IMPORT_STD in generate() added
2024-07-16 20:51:59 +02:00
Mateusz Pusz
698accac4f
docs: import std; row added to the "C++ compiler support" table
2024-07-16 20:50:42 +02:00
Mateusz Pusz
27bd2690bd
fix: preventing import std; in GMF
2024-07-16 20:50:04 +02:00
Mateusz Pusz
2411a7ef12
build: minimum required CMake version bumped to 3.25
...
Resolves #597
2024-07-16 20:35:05 +02:00
Mateusz Pusz
2e1e4f122a
chore: update CMakeLists.txt option description for building as system headers
2024-07-16 17:37:19 +02:00
Mateusz Pusz
827b0f5ee1
docs: small celanup of "Build options" chapter
2024-07-16 17:36:41 +02:00
Mateusz Pusz
b870b85c25
feat: import std; support added
...
Resolves #595
2024-07-16 17:36:00 +02:00
Mateusz Pusz
a4691825ee
build: conanfile bumped to use fmt/11.0.1
2024-07-16 12:16:04 +02:00
Mateusz Pusz
180358814f
build: conanfile bumped to use catch2/3.6.0
2024-07-16 12:14:40 +02:00
Mateusz Pusz
551ed9e094
test: conversion to chrono unit tests added
2024-07-16 12:13:29 +02:00
Mateusz Pusz
d51fb6d6c1
refactor: consistent std::size_t usage
2024-07-16 12:12:54 +02:00
Mateusz Pusz
c57142c18a
fix: common_type_t with std::chrono::seconds unit test removed
2024-07-14 22:22:39 +02:00
Mateusz Pusz
d84a2beae5
fix: common_type_t unit tests fixed
2024-07-14 22:12:25 +02:00
Mateusz Pusz
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
Mateusz Pusz
0dfd323c4b
feat: ValuePreservingTo extended with the explicit convertibility requirement
2024-07-14 18:06:02 +02:00
Mateusz Pusz
73f7901329
build: duplicated cmake_minimum_required commands removed
...
Resolves #592
2024-07-14 18:04:05 +02:00
Mateusz Pusz
2e557e4179
build: all CMake modules bumped to require at least CMake 3.15
2024-07-14 18:02:53 +02:00
Mateusz Pusz
e2a0e678a1
refactor: small cleanup in the quantity.h
2024-07-13 08:37:40 +02:00
Mateusz Pusz
fa25d11275
refactor: ValuePreservingTo concept added
2024-07-13 08:36:48 +02:00
Mateusz Pusz
160a74a94a
ci: runtime unit tests disabled for clang-tidy CI
2024-07-12 19:50:40 +02:00
Mateusz Pusz
f66222fb87
fix: _angular impulse_ unit symbol formatting unit test fixed
2024-07-12 19:48:01 +02:00
Mateusz Pusz
498d895fe5
fix: designated initialization of extract_results removed to enable clang-16 compilation
2024-07-12 18:47:19 +02:00
Mateusz Pusz
0653a2dbf7
fix: non-portable unit test removed
2024-07-12 18:46:26 +02:00
Mateusz Pusz
d341c166e1
fix: types ordering in one of the unit tests fixed
2024-07-12 18:31:54 +02:00
Mateusz Pusz
f73f924b80
refactor: small cleanup of unit_test.cpp
2024-07-12 17:49:09 +02:00
Mateusz Pusz
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
Mateusz Pusz
f0e94e06da
fix: quantity_spec_interface_base introduced to fix the compilation on the older compilers
2024-07-12 17:10:30 +02:00
Mateusz Pusz
0010d868a7
feat: tag types-related operators are now hidden friends as well
...
Resolves #591
2024-07-12 16:01:03 +02:00
Mateusz Pusz
b5e8f2afcd
fix: si.h and angular.h now properly include hacks.h to define MP_UNITS_HOSTED before its usage
2024-07-12 15:03:19 +02:00
Mateusz Pusz
bc234b0093
fix: disabled partial convertibility of binary operators arguments
2024-07-12 15:02:29 +02:00
Mateusz Pusz
e5e0e47c36
refactor: small quantity and quantity_point interface cleanup
2024-07-11 20:06:00 +02:00
Mateusz Pusz
dd52808999
Merge pull request #577 from mpusz/hidden_friends
...
refactor: binary operators of `quantity` and `quantity_point` are now hidden friends
2024-07-12 02:19:59 +09:00
Mateusz Pusz
175fd04c3a
fix: LA library bug workaround
...
Blocked by BobSteagall/wg21#77
2024-07-11 19:18:28 +02:00
Mateusz Pusz
a70ef1ebc3
Revert "fix: disabled convertibility of quantity binary operators arguments"
...
This reverts commit 037964bbba .
2024-07-11 18:05:51 +02:00
Mateusz Pusz
037964bbba
fix: disabled convertibility of quantity binary operators arguments
2024-07-11 17:19:31 +02:00
Mateusz Pusz
bfb964b017
docs: CHANGELOG updated
2024-07-11 16:08:47 +02:00
Mateusz Pusz
50cc9dfded
refactor: binary operators of quantity and quantity_point are now hidden friends
2024-07-11 16:08:47 +02:00
Mateusz Pusz
c8849e5781
refactor: improvements in are_ingredients_convertible
2024-07-10 10:23:55 +02:00
Mateusz Pusz
390a0cee5d
refactor: small refactoring of conditions in convertible_impl
2024-07-08 09:12:16 +02:00
Mateusz Pusz
0586ce030b
refactor: prepend_and_process_rest refactored
2024-07-07 22:27:35 +01:00
Mateusz Pusz
382695623a
refactor: a few functions that look for convertible ingredeints renamed
2024-07-07 22:15:24 +01:00
Mateusz Pusz
0368d0a56d
fix: MP_UNITS_API_CONTRACTS should have a priority over headers availability (compat_macros)
2024-07-07 21:14:04 +01:00
Mateusz Pusz
6a5e6902fe
fix: MP_UNITS_API_CONTRACTS should have a priority over headers availability
2024-07-06 18:09:41 +01:00
Mateusz Pusz
9df601f522
build: fmt updated to 11.0.0
2024-07-05 14:03:39 +01:00
Mateusz Pusz
b803e5b701
fix: most of the previous commit reverted (accidentaly too many files with changes were included)
2024-07-05 10:05:25 +01:00
Mateusz Pusz
c30f62e7f5
docs: 2.2.0 release announcement updated to point to 2.2.1
2024-07-04 22:57:49 +01:00
Mateusz Pusz
2cff579650
feat: representation type template parameter added to value convertion functions
...
Resolves #588
2024-07-04 22:05:40 +01:00
Mateusz Pusz
5903e5661f
refactor: 💥 quantity_point_like_traits now use numerical value instead of the quantity
...
Resolves #531
2024-07-04 16:40:40 +01:00