Commit Graph
3465 Commits
Author SHA1 Message Date
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