Remove dependency on abandoned pear/math_biginteger package.#33
Open
eisberg wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Closes #31
This Pull Request removes the abandoned
pear/math_bigintegerdependency by refactoring theBigDecimalprimitive class to fully rely on PHP's native GMP (GNU Multiple Precision) extension.Changes Proposed
composer.json: Droppedpear/math_bigintegerrequirement.BigDecimal:DecimalToBinary()usinggmp_export()with explicit bit-length calculation and two's complement binary construction for negative numbers.BinaryDataToDecimal()usinggmp_import()with manual sign-bit reconstruction for safe reverse mapping.BigDecimalTest: Added and extendedBigDecimalTestto ensure that the newly refactored GMP implementation produces identical results compared to the legacyMath_BigIntegercode.Verification Results
All PHPUnit assertions pass successfully. Tested with large arbitrary-precision values (
83086059037282.54), including negative scales and zeros, with no regressions or unexpected output.