976 Commits

Author SHA1 Message Date
2590aa4b80 refactor: MP_UNITS_NONCONST_TYPE introduced to benefit from the C++23 feature 2024-11-13 21:13:22 +01:00
b99faf051b Merge branch 'master' into chiphogg/mod#509 2024-11-13 08:41:52 -05:00
420ffef6c5 fix(test): missing header files added 2024-11-12 18:12:36 +01:00
73ad1f08d4 fix: fmt_test fixed to use delta to create a quantity of thermodynamic_temperature 2024-11-12 16:20:51 +01:00
520610ab2f test: cartesian_vector used in cgs_test 2024-11-12 14:39:04 +01:00
5a206c3ef1 test: cartesian_vector used in fmt_test 2024-11-12 14:38:51 +01:00
6c3c1fe5f7 feat: cartesian_vector added 2024-11-12 14:34:18 +01:00
d8574022f1 test: _surface tension_ replaced with _entropy_ in an fmt test 2024-11-12 14:21:36 +01:00
c6344c26ee style: missing empty line at the end of the file added 2024-11-12 11:31:26 +01:00
78204c7e5f test: runtime unit tests refactored to have a bigger granularity (less top level tests) 2024-11-12 11:27:52 +01:00
0e7314e3a6 fix: math tests for inverse fixed after change in make_reference 2024-11-12 08:50:11 +01:00
8ec2f94ae2 fix: make_reference should skip only the exact kinds deduced from a unit 2024-11-11 23:36:58 +01:00
8a7483f7ea Add helpers for modular arithmetic
The prime-testing techniques we will use (Miller-Rabin, Strong Lucas)
all make heavy usage of modular arithmetic.  Therefore, we lay those
foundations here, adding utilities to perform the basic arithmetic
operations robustly.

Since these are internal-only helper functions, we don't bother checking
the preconditions, although we state them clearly in the contract
comment for each utility.  After C++26, we could add contracts for
these.

Helps #509.
2024-11-11 12:55:41 -05:00
b4810089ec fix: gcc-12 compilation fixed
Resolves #632
2024-11-09 23:02:12 +01:00
06853b7aeb fix: const was leaking to some SymbolicConstants 2024-11-08 12:57:29 +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
2892fd83b0 test: more get_common_quantity_spec tests added 2024-11-05 08:06:45 +01:00
cc25f9b0de refactor: get_complexity refactored to returned maximum complexity of an element (instead of the sum of elements) 2024-11-04 19:13:48 +01:00
467d9a5558 refactor: get_complexity refactored to be 0-based and not account for a number of arguments in a list 2024-11-04 18:04:01 +01:00
73a003d0ef test: additional kind to quantity spec convertibility test added 2024-11-04 18:02:37 +01:00
f461cf479b test: test for lack of consitency between op+ and op+= for quantity_point 2024-11-04 09:41:11 +01:00
5810420277 refactor: 💥 tag types should not expose their members 2024-11-04 09:40:25 +01:00
26d2fc47f2 build: unit_tests_static_truncating restored for quantity_test and chrono_test 2024-10-30 15:00:03 +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
63dc044dd8 fix: chrono_test.cpp is truncating 2024-10-29 09:37:58 +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
9c7d3b0f95 fix: operator*(M, U u) fixed for U being scaled_unit 2024-10-25 12:07:57 +02:00
af18a6ba51 refactor: 💥 𝜋 replaced with π 2024-10-24 07:22:45 +02:00
10030c540b test: pow<0> and pow<1> tests added for dimensions 2024-10-20 21:08:42 +02:00
00847ab558 fix(tests): freestanding build fixed 2024-10-16 17:22:59 +02:00
b5ca8c78eb test: one kind_of test added to reference tests 2024-10-15 21:07:46 +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
820c7a5959 test: more std::chrono tests added 2024-10-15 21:04:52 +02:00
6591a65d06 feat: 𝜋 added as an alias for pi 2024-10-14 22:49:58 +02:00
527c6dae63 test: fmt unit tests updated to the latest version 2024-10-10 09:00:31 +02:00
195c3ad68b test: Unicode symbols used in unit tests 2024-10-10 00:12:43 +02:00
4eb63227e2 refactor: 💥 ascii -> portable, unicode -> utf8, 'A' -> 'P' 2024-10-10 00:02:08 +02:00
70a18fec0c refactor: 💥 op==(U1, U2) now checks for the same type (old behavior available as equivalent(U1, U2)) + convertible now verifies associated quantity_spec as well 2024-10-09 17:26:13 +02:00
2249879d62 feat: litre text symbol changed from l to L to avoid ambiguity with 1 2024-10-06 08:32:16 +02:00
cff9e25d3e feat: common_unit selection algorithm improved to make rev + rad return rad 2024-10-05 22:57:46 +02:00
569f27af8b fix: common_unit handling fixed for some corner cases 2024-10-05 17:52:52 +02:00
07e4e795c1 refactor: magnitude interface cleanup 2024-10-04 17:22:15 +02:00
f07e518ff0 test: unit tests for the inverse of mag_constant added 2024-10-04 14:59:39 +02:00
909d7d9065 docs: added TODO for radical powers of magnitude tests 2024-10-04 09:13:08 +02:00