Ed Hennis
012c67a7eb
Rework subtraction rounding (again) for more accuracy
...
- Go back to the old method of computing the mantissa, but when post
processing, expand the mantissa to slightly larger than maxMantissa,
then in doRoundDown, if the result is not exact, subtract one.
Finally, let doNormalize figure out the rounding of the result.
2026-06-06 01:04:26 -04:00
Ed Hennis
74c66d0944
refactor: Construct Number::Guard from MantissaRange or relevant fields
...
- Simplifies the function signatures in Guard, because it doesn't need
to have those values passed in constantly.
- Also simplifies some of the functions because they don't need to store
values just to pass them to Guard functions.
2026-06-05 12:06:41 -04:00
Ed Hennis
f1bb4ded21
clang-tidy: template param names, const correctness, braces
2026-06-04 20:05:53 -04:00
Ed Hennis
aa8888732e
Merge branch 'develop' into ximinez/number-round-maxrep-down
2026-06-04 19:03:32 -04:00
Ayaz Salikhov
8abe82eefa
ci: Redesign matrix configuration based on Nix images ( #7385 )
...
Co-authored-by: semgrep-companion-app[bot] <218312740+semgrep-companion-app[bot]@users.noreply.github.com>
2026-06-04 20:02:59 +00:00
Ayaz Salikhov
5b8e6cd1dd
test: Fix LCOV_EXCL_END -> LCOV_EXCL_STOP ( #7407 )
2026-06-04 19:35:36 +00:00
Ayaz Salikhov
12e81abef3
ci: Improve sanitizer-libs, add doxygen, dpkg, rpm in nix ( #7403 )
2026-06-04 14:52:42 +00:00
Ayaz Salikhov
6c543426c3
ci: Fix clang asan include dirs in nix images, add curl & gnupg ( #7400 )
2026-06-03 22:19:15 +00:00
yinyiqian1
e5cf1a0985
fix: Add zero NFT Offer ID check for NFTokenCancelOffer ( #7391 )
2026-06-03 19:30:20 +00:00
Ayaz Salikhov
023bdaeeed
ci: Install gcov, nettools, cacert in nix images ( #7398 )
2026-06-03 19:14:17 +00:00
Bart
96b2c0964f
refactor: Replace intr_ptr::SharedPtr<SHAMapTreeNode> by SHAMapTreeNodePtr ( #7396 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
2026-06-03 15:34:19 +00:00
Ayaz Salikhov
1441d4690d
chore: Update flake.lock to allow conan with clang-22 support ( #7390 )
2026-06-03 00:16:02 +00:00
Ed Hennis
c84939ccea
Remove the kMaxRep+1 rounding tests
2026-06-02 15:59:26 -04:00
Ed Hennis
9e8c3caef4
Improve accuracy of Number::operator+=
...
- Use more of the available range of the uint128 operands.
- Also refactor Number::Guard::round() to return an enum.
2026-06-02 15:35:42 -04:00
Vito Tumas
225ed204ad
test: Suppress invariant-failure logs in Vault and LoanBroker bug-regression tests ( #7379 )
2026-06-02 17:12:09 +00:00
Ayaz Salikhov
ad111bcc22
ci: Patch binaries in nix-based images and test in every distro ( #7376 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-06-02 13:51:20 +00:00
Ed Hennis
35bee87909
Experimental: Scale addition operands up to preserve accuracy
2026-06-01 21:52:31 -04:00
Ed Hennis
261508a0ec
Merge remote-tracking branch 'XRPLF/develop' into ximinez/number-round-maxrep-down
...
* XRPLF/develop:
ci: Check binaries separately from building them (7355)
ci: [DEPENDABOT] bump eps1lon/actions-label-merge-conflict from 3.0.3 to 3.1.0 (7375)
refactor: Use `STLedgerEntry` type aliases instead of `std::shared_ptr` (7282)
fix: Adjust xrpld systemd service and update timer (7374)
release: Bump version to 3.2.0-rc3 (7371)
fix: Pin overpayment principal reduction to exact on-grid value (7360)
fix: Improve upward rounding edge cases for Number::operator/= (7328)
refactor: Revert "perf: Remove unnecessary caches (5439)" (7359)
fix: Add zero domainID check for permissionedDomain (7362)
2026-06-01 15:33:34 -04:00
Ayaz Salikhov
d4cb68d5a1
ci: Check binaries separately from building them ( #7355 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-06-01 16:47:01 +00:00
dependabot[bot]
e209ee5371
ci: [DEPENDABOT] bump eps1lon/actions-label-merge-conflict from 3.0.3 to 3.1.0 ( #7375 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 15:29:12 +00:00
Vito Tumas
109b649106
refactor: Use STLedgerEntry type aliases instead of std::shared_ptr ( #7282 )
2026-06-01 15:27:13 +00:00
Michael Legleux
0fffe23abc
fix: Adjust xrpld systemd service and update timer ( #7374 )
2026-06-01 03:33:19 +00:00
Bart
7e15621e7b
release: Bump version to 3.2.0-rc3 ( #7371 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
2026-05-31 22:55:18 +00:00
Vito Tumas
99431d7833
fix: Pin overpayment principal reduction to exact on-grid value ( #7360 )
2026-05-31 22:54:23 +00:00
Ed Hennis
47365f4220
fix: Improve upward rounding edge cases for Number::operator/= ( #7328 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
2026-05-31 00:23:29 +00:00
Bart
1599c1a672
refactor: Revert "perf: Remove unnecessary caches ( #5439 )" ( #7359 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
2026-05-30 18:48:59 +00:00
yinyiqian1
763dd503be
fix: Add zero domainID check for permissionedDomain ( #7362 )
2026-05-30 00:16:25 +00:00
Ed Hennis
9f872f2179
Include upward, write tests based on "expected" behavior
2026-05-29 19:46:50 -04:00
Ed Hennis
d1af39d9dd
test: Add another rounding unit test
2026-05-29 19:03:34 -04:00
Ed Hennis
f6a26ca34f
CI feedback: Add test cases covering other rounding modes
...
- Downward with a negative result, and ToNearest with a remainder
slightly larger than 0.5.
2026-05-29 18:54:08 -04:00
Ed Hennis
c0569037f8
Apply suggestions from code review
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-29 16:34:51 -04:00
Ed Hennis
be9ae88d48
Accept AI suggestion
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-28 23:38:54 -04:00
Ed Hennis
cd21d74538
Update the testUpwardRoundsDown test to run under all scales
...
- Demonstrates the incorrect "before" behavior
2026-05-28 19:58:52 -04:00
Ed Hennis
2fdfd2b420
Review feedback from Tapanito and AI
...
- Add missing headers.
- Improve code coverage exclusions.
- Clean up several variable names.
- Improve explanatory comments.
- Remove the switch statement from MantissaRange::getMin. Change it to
a straight power of ten lookup.
2026-05-28 18:41:19 -04:00
Ed Hennis
06a3f76ccd
Skip clang-tidy false positive: misc-include-cleaner
2026-05-28 17:47:41 -04:00
Ed Hennis
dadf4d737d
Merge branch 'develop' into ximinez/number-division-accuracy
2026-05-28 17:46:40 -04:00
Bart
2f3558c610
ci: Run PR title and description checks on staging and release branches ( #7331 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
2026-05-28 14:57:29 +00:00
Ed Hennis
7b66b42713
Merge branch 'develop' into ximinez/number-division-accuracy
2026-05-27 17:00:59 -04:00
Ayaz Salikhov
f9551ac5ca
style: Run shfmt on workflows, actions and markdown bash code ( #7333 )
2026-05-27 19:24:18 +00:00
Ed Hennis
18ac8a0583
Merge branch 'develop' into ximinez/number-division-accuracy
2026-05-27 15:18:17 -04:00
Bart
1acc42313c
release: Bump version to 3.2.0-rc2 ( #7348 )
2026-05-27 15:11:38 -04:00
Bart
396d772a15
refactor: Enable support for fixCleanup3_2_0 amendment ( #7347 )
2026-05-27 19:10:33 +00:00
Ayaz Salikhov
1438bf1c67
release: Bump version to 3.2.0-rc1 ( #7335 )
2026-05-27 13:20:57 -04:00
Ed Hennis
de2efa5cb9
Remove TMax entirely from normalizeToRange; check type matching directly
2026-05-27 13:06:52 -04:00
Ed Hennis
8dcd88e83c
Tweak how the denominator is handled in division
...
- Removes one int64 to 128 conversion
2026-05-27 12:34:49 -04:00
Ed Hennis
5333422402
Merge remote-tracking branch 'XRPLF/develop' into ximinez/number-division-accuracy
...
* XRPLF/develop:
fix: Fix a rounding error at the `Number::maxRep` cusp (7051)
2026-05-27 12:17:30 -04:00
Ed Hennis
4ec049e727
Minor fixes: missing include, variable init, typo
2026-05-27 12:09:13 -04:00
Ed Hennis
7da643d864
fix: Fix a rounding error at the Number::maxRep cusp ( #7051 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
2026-05-27 15:19:20 +00:00
Ed Hennis
ae9c72bb7c
Test optimization: Number_test::pow10
2026-05-27 00:36:38 -04:00
Ed Hennis
5abecb9fcb
Significant rewrite
...
- Simplify Number::operator/= to use more constexpr values, and fewer
variations.
- Most significantly, rounding up doesn't need more precision, it only
needs to know if there's a remainder after the current precision work
is done. Tracked similarly Guard::xbit_.
- Build a constexpr lookup array for powers of 10. Only a handful of
values are used, but since it's built at compile time, and constexpr,
unused values do not affect memory or performance.
2026-05-27 00:07:48 -04:00