Mateusz Pusz
2590aa4b80
refactor: MP_UNITS_NONCONST_TYPE introduced to benefit from the C++23 feature
2024-11-13 21:13:22 +01:00
Chip Hogg
b99faf051b
Merge branch 'master' into chiphogg/mod#509
2024-11-13 08:41:52 -05:00
Mateusz Pusz
1ee824423e
refactor: usage of v for the function argument name changed to prevent shadowing errors
2024-11-12 16:22:14 +01:00
Mateusz Pusz
6c3c1fe5f7
feat: cartesian_vector added
2024-11-12 14:34:18 +01:00
Mateusz Pusz
e4044f0e4b
feat: ComplexRepresentation extended with complex operations
2024-11-12 14:20:19 +01:00
Chip Hogg
6c982d4202
Use std:: prefix and mpu's EXPECTS_DEBUG macro
2024-11-12 08:16:53 -05:00
Mateusz Pusz
8ec2f94ae2
fix: make_reference should skip only the exact kinds deduced from a unit
2024-11-11 23:36:58 +01:00
Chip Hogg
1110e53e38
Never mind
...
Apparently, that's not the right approach.
2024-11-11 14:34:47 -05:00
Chip Hogg
a6d34b40a6
Include <bits/types.h>
...
Apparently some freestanding builds need this?
2024-11-11 13:35:37 -05:00
Chip Hogg
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
Mateusz Pusz
727a898141
feat: derived_XXX are not constrained with SymbolicConstant
2024-11-09 23:03:24 +01:00
Mateusz Pusz
a628f1d107
feat: per and power made final
2024-11-09 23:02:49 +01:00
Mateusz Pusz
b4810089ec
fix: gcc-12 compilation fixed
...
Resolves #632
2024-11-09 23:02:12 +01:00
Mateusz Pusz
4db913a592
fix: make_magnitude fixed for gcc-12
2024-11-09 20:42:17 +01:00
Mateusz Pusz
ca4dbfa9b6
fix: extraneous semicolon removed
2024-11-08 13:39:16 +01:00
Mateusz Pusz
0c46d4ecfe
refactor: type_list moved to implementation details
2024-11-08 13:36:43 +01:00
Mateusz Pusz
8423e50777
feat: SymbolicArg applied to expression templates
2024-11-08 13:30:55 +01:00
Mateusz Pusz
1702853893
refactor: SymbolicConstant moved to _expression_template.h_
2024-11-08 13:27:25 +01:00
Mateusz Pusz
06853b7aeb
fix: const was leaking to some SymbolicConstants
2024-11-08 12:57:29 +01:00
Mateusz Pusz
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
Mateusz Pusz
75b50b8d2c
feat: complex.h added
2024-11-07 10:58:51 +01:00
Mateusz Pusz
8f062bfa87
refactor: mp_units.core defined in terms of core.h
2024-11-07 10:24:28 +01:00
Mateusz Pusz
34816574ca
fix: missing core.h added to CMake
2024-11-07 10:23:44 +01:00
Mateusz Pusz
10a82268aa
feat: negation requirement added to Representation concepts
2024-11-07 08:49:31 +01:00
Mateusz Pusz
6896d8e086
fix: velocity is now defined in terms of displacement instead of position_vector
2024-11-06 18:46:01 +01:00
Mateusz Pusz
c7303cc5fb
refactor: representation concepts refactored + some quantities switched to complex
2024-11-05 19:09:16 +01:00
Mateusz Pusz
65a3c80a5f
refactor: max used in one of the explode overloads
2024-11-05 08:06:04 +01:00
Mateusz Pusz
43ea6adc64
refactor: TagType renamed to SymbolicConstant
2024-11-05 08:00:10 +01:00
Mateusz Pusz
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
Mateusz Pusz
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
Mateusz Pusz
c45df2a4bd
fix: convertible_kinds implementation fixed
2024-11-04 18:02:09 +01:00
Mateusz Pusz
5810420277
refactor: 💥 tag types should not expose their members
2024-11-04 09:40:25 +01:00
Mateusz Pusz
8217399a88
fix: QuantityConvertibleTo used in quantity_point compound assignment
...
Resolves #215
2024-11-03 10:45:10 +01:00
Mateusz Pusz
046a83224e
refactor: Forwarding renamed to Mutable
...
Resolves #215
2024-11-02 22:45:36 +01:00
Mateusz Pusz
80a4d6bc80
refactor: QuantityLikeImpl refactored to conform to API Reference by @JohelEGP
2024-11-02 13:56:49 +01:00
Mateusz Pusz
9d05e31af7
refactor: point_origin_interface::op- cleanup
2024-11-02 13:45:42 +01:00
Mateusz Pusz
8ca8270d2f
feat: from now on truncation is not allowed in compound assignment
2024-10-30 08:40:49 +01:00
Mateusz Pusz
d8bc0598fe
style: clang-format in pre-commit updated to 19.1.2
2024-10-29 15:04:28 +01:00
Mateusz Pusz
9b3bae0f05
fix: compilation fixed after previous commits
2024-10-29 14:49:02 +01:00
Mateusz Pusz
06d9197f44
refactor: explicit cleanup for deduction guides of quantity and quantity_point
2024-10-29 14:06:32 +01:00
Mateusz Pusz
c51b6e1f75
refactor: Forwarding concept applied to quantity and quantity_point
2024-10-29 13:56:02 +01:00
Mateusz Pusz
699b0e7c23
refactor: quantity_spec.h cleanup: extraneous detail namespace usage removed
2024-10-29 13:20:15 +01:00
Mateusz Pusz
74325e7965
refactor: per_mille symbol definition syntax changed
2024-10-29 13:15:57 +01:00
Mateusz Pusz
975025f88a
refactor: 💥 convertibility traits and concepts refactored to use bool flags instead of wrappers
2024-10-29 13:15:10 +01:00
Mateusz Pusz
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
Mateusz Pusz
797ae2e559
docs: typo in a comment fixed
2024-10-29 08:35:11 +01:00
Mateusz Pusz
08f90ba474
feat: quantity_values are now defined on top of std::chrono::duration_values
2024-10-28 16:08:56 +01:00
Mateusz Pusz
4651c61be4
refactor: Unicode symbols description reworked based on the latest SG16 recommendations
2024-10-28 16:03:09 +01:00
Mateusz Pusz
045410707e
refactor: expr_fractions takes direct OneType type now instead of a trait
2024-10-27 08:02:03 +01:00
Mateusz Pusz
48fcbb8030
feat: DerivedDimensionExpr removed
2024-10-26 19:14:11 +02:00