aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/brick/math
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/brick/math')
-rw-r--r--vendor/brick/math/CHANGELOG.md22
-rw-r--r--vendor/brick/math/SECURITY.md17
-rw-r--r--vendor/brick/math/composer.json6
-rw-r--r--vendor/brick/math/src/BigDecimal.php8
-rw-r--r--vendor/brick/math/src/BigInteger.php19
-rw-r--r--vendor/brick/math/src/BigNumber.php4
-rw-r--r--vendor/brick/math/src/BigRational.php11
-rw-r--r--vendor/brick/math/src/Internal/Calculator.php35
-rw-r--r--vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php6
-rw-r--r--vendor/brick/math/src/Internal/Calculator/NativeCalculator.php4
10 files changed, 70 insertions, 62 deletions
diff --git a/vendor/brick/math/CHANGELOG.md b/vendor/brick/math/CHANGELOG.md
index c5c5893b9..03c3d824d 100644
--- a/vendor/brick/math/CHANGELOG.md
+++ b/vendor/brick/math/CHANGELOG.md
@@ -2,29 +2,11 @@
All notable changes to this project will be documented in this file.
-## [0.10.2](https://github.com/brick/math/releases/tag/0.10.2) - 2022-08-11
-
-👌 **Improvements**
-
-- `BigRational::toFloat()` now simplifies the fraction before performing division (#73) thanks to @olsavmic
-
-## [0.10.1](https://github.com/brick/math/releases/tag/0.10.1) - 2022-08-02
-
-✨ **New features**
-
-- `BigInteger::gcdMultiple()` returns the GCD of multiple `BigInteger` numbers
-
-## [0.10.0](https://github.com/brick/math/releases/tag/0.10.0) - 2022-06-18
-
-💥 **Breaking changes**
-
-- Minimum PHP version is now 7.4
-
## [0.9.3](https://github.com/brick/math/releases/tag/0.9.3) - 2021-08-15
🚀 **Compatibility with PHP 8.1**
-- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (#60) thanks @TRowbotham
+- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (thanks @TRowbotham)
## [0.9.2](https://github.com/brick/math/releases/tag/0.9.2) - 2021-01-20
@@ -34,7 +16,7 @@ All notable changes to this project will be documented in this file.
## [0.9.1](https://github.com/brick/math/releases/tag/0.9.1) - 2020-08-19
-✨ **New features**
+✨ New features
- `BigInteger::not()` returns the bitwise `NOT` value
diff --git a/vendor/brick/math/SECURITY.md b/vendor/brick/math/SECURITY.md
new file mode 100644
index 000000000..cc8289bb5
--- /dev/null
+++ b/vendor/brick/math/SECURITY.md
@@ -0,0 +1,17 @@
+# Security Policy
+
+## Supported Versions
+
+Only the last two release streams are supported.
+
+| Version | Supported |
+| ------- | ------------------ |
+| 0.9.x | :white_check_mark: |
+| 0.8.x | :white_check_mark: |
+| < 0.8 | :x: |
+
+## Reporting a Vulnerability
+
+To report a security vulnerability, please use the
+[Tidelift security contact](https://tidelift.com/security).
+Tidelift will coordinate the fix and disclosure.
diff --git a/vendor/brick/math/composer.json b/vendor/brick/math/composer.json
index a8124e921..ec196632f 100644
--- a/vendor/brick/math/composer.json
+++ b/vendor/brick/math/composer.json
@@ -14,13 +14,13 @@
],
"license": "MIT",
"require": {
- "php": "^7.4 || ^8.0",
+ "php": "^7.1 || ^8.0",
"ext-json": "*"
},
"require-dev": {
- "phpunit/phpunit": "^9.0",
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
"php-coveralls/php-coveralls": "^2.2",
- "vimeo/psalm": "4.25.0"
+ "vimeo/psalm": "4.9.2"
},
"autoload": {
"psr-4": {
diff --git a/vendor/brick/math/src/BigDecimal.php b/vendor/brick/math/src/BigDecimal.php
index fd2babb86..78246500c 100644
--- a/vendor/brick/math/src/BigDecimal.php
+++ b/vendor/brick/math/src/BigDecimal.php
@@ -22,15 +22,19 @@ final class BigDecimal extends BigNumber
* This is a string of digits with an optional leading minus sign.
* No leading zero must be present.
* No leading minus sign must be present if the value is 0.
+ *
+ * @var string
*/
- private string $value;
+ private $value;
/**
* The scale (number of digits after the decimal point) of this decimal number.
*
* This must be zero or more.
+ *
+ * @var int
*/
- private int $scale;
+ private $scale;
/**
* Protected constructor. Use a factory method to obtain an instance.
diff --git a/vendor/brick/math/src/BigInteger.php b/vendor/brick/math/src/BigInteger.php
index f58e1c595..f213fbedb 100644
--- a/vendor/brick/math/src/BigInteger.php
+++ b/vendor/brick/math/src/BigInteger.php
@@ -26,8 +26,10 @@ final class BigInteger extends BigNumber
*
* No leading zeros must be present.
* No leading minus sign must be present if the number is zero.
+ *
+ * @var string
*/
- private string $value;
+ private $value;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -359,21 +361,6 @@ final class BigInteger extends BigNumber
return $ten;
}
- public static function gcdMultiple(BigInteger $a, BigInteger ...$n): BigInteger
- {
- $result = $a;
-
- foreach ($n as $next) {
- $result = $result->gcd($next);
-
- if ($result->isEqualTo(1)) {
- return $result;
- }
- }
-
- return $result;
- }
-
/**
* Returns the sum of this number and the given one.
*
diff --git a/vendor/brick/math/src/BigNumber.php b/vendor/brick/math/src/BigNumber.php
index 44f26e35a..38c8c554e 100644
--- a/vendor/brick/math/src/BigNumber.php
+++ b/vendor/brick/math/src/BigNumber.php
@@ -81,7 +81,9 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
$throw();
}
- $getMatch = static fn(string $value): ?string => (($matches[$value] ?? '') !== '') ? $matches[$value] : null;
+ $getMatch = static function(string $value) use ($matches) : ?string {
+ return isset($matches[$value]) && $matches[$value] !== '' ? $matches[$value] : null;
+ };
$sign = $getMatch('sign');
$numerator = $getMatch('numerator');
diff --git a/vendor/brick/math/src/BigRational.php b/vendor/brick/math/src/BigRational.php
index 46257814d..bee094f73 100644
--- a/vendor/brick/math/src/BigRational.php
+++ b/vendor/brick/math/src/BigRational.php
@@ -20,13 +20,17 @@ final class BigRational extends BigNumber
{
/**
* The numerator.
+ *
+ * @var BigInteger
*/
- private BigInteger $numerator;
+ private $numerator;
/**
* The denominator. Always strictly positive.
+ *
+ * @var BigInteger
*/
- private BigInteger $denominator;
+ private $denominator;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -429,8 +433,7 @@ final class BigRational extends BigNumber
*/
public function toFloat() : float
{
- $simplified = $this->simplified();
- return $simplified->numerator->toFloat() / $simplified->denominator->toFloat();
+ return $this->numerator->toFloat() / $this->denominator->toFloat();
}
/**
diff --git a/vendor/brick/math/src/Internal/Calculator.php b/vendor/brick/math/src/Internal/Calculator.php
index 99bebbe5d..a6eac799f 100644
--- a/vendor/brick/math/src/Internal/Calculator.php
+++ b/vendor/brick/math/src/Internal/Calculator.php
@@ -34,8 +34,10 @@ abstract class Calculator
/**
* The Calculator instance in use.
+ *
+ * @var Calculator|null
*/
- private static ?Calculator $instance = null;
+ private static $instance;
/**
* Sets the Calculator instance to use.
@@ -232,7 +234,7 @@ abstract class Calculator
* @param string $a The dividend.
* @param string $b The divisor, must not be zero.
*
- * @return array{string, string} An array containing the quotient and remainder.
+ * @return string[] An array containing the quotient and remainder.
*/
abstract public function divQR(string $a, string $b) : array;
@@ -281,7 +283,9 @@ abstract class Calculator
$modVal = $this->mod($x, $m);
}
- [$g, $x] = $this->gcdExtended($modVal, $m);
+ $x = '0';
+ $y = '0';
+ $g = $this->gcdExtended($modVal, $m, $x, $y);
if ($g !== '1') {
return null;
@@ -325,21 +329,24 @@ abstract class Calculator
return $this->gcd($b, $this->divR($a, $b));
}
- /**
- * @return array{string, string, string} GCD, X, Y
- */
- private function gcdExtended(string $a, string $b) : array
+ private function gcdExtended(string $a, string $b, string &$x, string &$y) : string
{
if ($a === '0') {
- return [$b, '0', '1'];
+ $x = '0';
+ $y = '1';
+
+ return $b;
}
- [$gcd, $x1, $y1] = $this->gcdExtended($this->mod($b, $a), $a);
+ $x1 = '0';
+ $y1 = '0';
+
+ $gcd = $this->gcdExtended($this->mod($b, $a), $a, $x1, $y1);
$x = $this->sub($y1, $this->mul($this->divQ($b, $a), $x1));
$y = $x1;
- return [$gcd, $x, $y];
+ return $gcd;
}
/**
@@ -486,8 +493,6 @@ abstract class Calculator
*
* @throws \InvalidArgumentException If the rounding mode is invalid.
* @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is provided but rounding is necessary.
- *
- * @psalm-suppress ImpureFunctionCall
*/
final public function divRound(string $a, string $b, int $roundingMode) : string
{
@@ -611,9 +616,9 @@ abstract class Calculator
/**
* Performs a bitwise operation on a decimal number.
*
- * @param 'and'|'or'|'xor' $operator The operator to use.
- * @param string $a The left operand.
- * @param string $b The right operand.
+ * @param string $operator The operator to use, must be "and", "or" or "xor".
+ * @param string $a The left operand.
+ * @param string $b The right operand.
*
* @return string
*/
diff --git a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
index 34078687d..6632b378a 100644
--- a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
@@ -94,6 +94,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritdoc}
+ *
+ * @psalm-suppress InvalidNullableReturnType
+ * @psalm-suppress NullableReturnStatement
*/
public function modPow(string $base, string $exp, string $mod) : string
{
@@ -102,6 +105,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritDoc}
+ *
+ * @psalm-suppress NullableReturnStatement
+ * @psalm-suppress InvalidNullableReturnType
*/
public function sqrt(string $n) : string
{
diff --git a/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php b/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
index a7eb23b90..020a6338b 100644
--- a/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
@@ -22,8 +22,10 @@ class NativeCalculator extends Calculator
* For addition, it is assumed that an extra digit can hold a carry (1) without overflowing.
* Example: 32-bit: max number 1,999,999,999 (9 digits + carry)
* 64-bit: max number 1,999,999,999,999,999,999 (18 digits + carry)
+ *
+ * @var int
*/
- private int $maxDigits;
+ private $maxDigits;
/**
* Class constructor.