Saki Takamachi
edfd55c197
ext/bcmath: use vector in compare ( #18859 )
2025-06-21 01:34:42 +09:00
Saki Takamachi
2751064692
use XSSE for bcmath ( #18770 )
2025-06-06 08:25:52 +09:00
Saki Takamachi
c5f3281446
ext/bcmath: Improving bcpow()
performance ( #18099 )
2025-04-30 08:05:28 +09:00
Saki Takamachi
c927d24af6
ext/bcmath: Use const
qualifiers appropriately ( #18284 )
2025-04-11 12:39:31 +09:00
Saki Takamachi
1ce79eb219
ext/bcmath: In the arm processor environment, NEON is used to use SIMD. ( #18130 )
2025-03-26 07:48:02 +09:00
Saki Takamachi
fb07c62f2c
ext/bcmath: Extracted common logic into function and macro ( #18103 )
2025-03-19 18:10:12 +09:00
Saki Takamachi
6b6fde9098
ext/bcmath: If size of BC_VECTOR
array is within 64 bytes, stack area is now used ( #18065 )
2025-03-15 08:43:43 +09:00
Saki Takamachi
843d2a9b5f
ext/bcmath: bc_divide()
small fix ( #18060 )
2025-03-15 08:41:14 +09:00
Saki Takamachi
32547f1127
ext/bcmath: If the result is 0
, n_scale
is set to 0
. ( #18056 )
2025-03-14 17:52:50 +09:00
Saki Takamachi
fa1effdb3c
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fixed pointer subtraction for scale (#17986 )
2025-03-14 09:00:33 +09:00
Saki Takamachi
7c9872e255
Fixed pointer subtraction for scale ( #17986 )
...
Closes #17986
2025-03-14 09:00:00 +09:00
Saki Takamachi
4e4f1729dd
ext/bcmath: Simplify bc_divide()
code ( #17987 )
...
Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
2025-03-14 08:53:48 +09:00
Saki Takamachi
5bf6e2e378
Merge branch 'PHP-8.4'
...
* PHP-8.4:
follow up for #17615
2025-01-29 19:25:05 +09:00
Saki Takamachi
18d96671a5
follow up for #17615
...
The deleted line has returned, so delete it again.
2025-01-29 19:25:03 +09:00
Saki Takamachi
c9fa625e41
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fixed GH-17398: bcmul memory leak (#17615 )
2025-01-29 19:15:23 +09:00
Saki Takamachi
4c90bb2da4
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fixed GH-17398: bcmul memory leak (#17615 )
2025-01-29 19:15:10 +09:00
Saki Takamachi
5a4832f97b
Fixed GH-17398: bcmul memory leak ( #17615 )
...
Changed BCG memory allocation to be forcibly released in
PHP_GSHUTDOWN_FUNCTION regardless of refcount.
Fixes #17398
Closes #17615
2025-01-29 19:12:18 +09:00
Saki Takamachi
2b36680f0a
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fixed GH-17275: Fixed the calculation logic of dividend scale (#17279 )
2024-12-27 21:36:36 +09:00
Saki Takamachi
ef036090d9
Fixed GH-17275: Fixed the calculation logic of dividend scale ( #17279 )
...
Fixes #17275
Closes #17279
2024-12-27 21:36:26 +09:00
Saki Takamachi
0507b83360
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Correctly round rounding mode with zero edge case (#17065 )
2024-12-17 00:17:38 +09:00
Saki Takamachi
52ebdfbe00
Correctly round rounding mode with zero edge case ( #17065 )
...
Fixes #17064
Closes #17065
2024-12-17 00:17:23 +09:00
Saki Takamachi
bb13556240
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Correctly compare 0 and -0 (#17051 )
2024-12-07 01:52:44 +09:00
Saki Takamachi
063c3c8522
Correctly compare 0 and -0 ( #17051 )
...
Fixes #17049
Closes #17051
2024-12-07 01:52:30 +09:00
Saki Takamachi
5930278702
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fixed GH-16978: Avoid unnecessary padding with leading zeros (#16988 )
2024-11-29 21:28:48 +09:00
Saki Takamachi
d17ed3445d
Fixed GH-16978: Avoid unnecessary padding with leading zeros ( #16988 )
...
Fixed an issue where leading zeros were padded beyond the allocated memory.
fixes #16978
closes #16988
2024-11-29 21:28:38 +09:00
Saki Takamachi
9b3af0253f
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fixed a bug in BcMath\Number::pow() and bcpow() when raising negative powers of 0. (#16694 )
2024-11-20 00:17:38 +09:00
Saki Takamachi
2c8662d6f9
Fixed a bug in BcMath\Number::pow() and bcpow() when raising negative powers of 0. ( #16694 )
...
Closes #16694
Fixes #16236
2024-11-20 00:16:52 +09:00
Saki Takamachi
f464298c8e
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fixed a bug where size_t underflows (#16696 )
Added early return case when result is 0 (#16697 )
2024-11-05 08:43:58 +09:00
Saki Takamachi
fd1dff988e
Fixed a bug where size_t underflows ( #16696 )
...
fixes #16262
closes #16696
2024-11-05 08:41:09 +09:00
Saki Takamachi
2fe7719a44
Added early return case when result is 0 ( #16697 )
...
fixes #16265
closes #16697
2024-11-05 08:38:38 +09:00
Christoph M. Becker
825509ee9e
Drop superfluous LONG_MAX/LONG_MIN fallback definitions (GH-15667)
...
Both macros are supposed to be defined in limits.h (C99) and as such it
is superfluous to provide fallback definitions. Even worse, because
these fallback definitions didn't cater to LP64, ILP64 and SILP64 data
models (and maybe some rather uncommon ones), but just assumed ILP32,
they are confusing.
2024-09-27 17:34:54 +02:00
Jorg Adam Sowa
306dedcf5e
ext/bcmath: bcpow() performance improvement ( #15790 )
...
* Added function for squaring to improve performance of power calculation
* Aligned backslashes
* Removed unnecessary comments
* Extracted common part of multiplication and square functions
* Added comment to bc_fast_square
* Improved wording of bc_mul_finish_from_vector
* Reused new function name
* Replaced macro with function
2024-09-17 22:16:26 +02:00
Saki Takamachi
fad899e566
[RFC] Support object types in BCMath ( #13741 )
...
Added BcMath\Number class. It is an immutable object, has methods that are
equivalent to existing BCMath calculation functions, and can also be calculated
using operators.
The existing BCMath function returned a string for each calculation, but this
class returns an object.
RFC: https://wiki.php.net/rfc/support_object_type_in_bcmath ,
https://wiki.php.net/rfc/fix_up_bcmath_number_class
---------
Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
2024-09-04 11:12:51 +09:00
Saki Takamachi
a27878cff3
Fixed LONG_MAX in BCMath ext ( #15663 )
2024-08-31 01:07:33 +09:00
Saki Takamachi
e8fe7e4f52
ext/bcmath: Fixed bcdiv()
div by one ( #15629 )
...
Fixed the incorrect scale that should be used when dividing by 1, that is,
comparing the divisor and 1 to confirm equality.
Additionally, have increased the number of test cases for bcdiv_by_pow_10.phpt.
2024-08-30 09:33:17 +09:00
Saki Takamachi
674ec02e54
Fixed the sign to be PLUS if the result is 0 ( #15599 )
2024-08-28 08:48:33 +09:00
Saki Takamachi
8c704ab401
ext/bcmath: Optimize bcdiv
processing ( #14660 )
...
Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Co-authored-by: Gina Peter Banyard <girgias@php.net>
2024-08-18 17:57:27 +09:00
Saki Takamachi
8a4a30469a
Zend: Add ZEND_BYTES_SWAP32
/ZEND_BYTES_SWAP64
( #14910 )
2024-07-22 17:57:16 +09:00
Saki Takamachi
3c9ab6eb71
ext/bcmath: Moved macros and added a test
2024-07-17 21:48:16 +09:00
Saki Takamachi
be4b10e95e
Added scale to bc_compare argument ( #14802 )
...
In the original specification, the scale of bc_num was directly changed
and compared.
This becomes a problem when objects are supported, so we will modify it
to compare without changing bc_num.
2024-07-12 00:08:47 +09:00
Saki Takamachi
37488d6e01
ext/bcmath: Minor fixes to bcmul()
( #14564 )
...
The original calculation method for prod_arr_size allowed for some error,
which could have increased the number of simple loops without byte tricks
at the end of the calculation when converting to bc_num.
The new method calculates the size accurately, so the number of loops does
not increase unnecessarily.
2024-06-14 02:20:32 +09:00
Saki Takamachi
25579a8616
ext/bcmath: Renamed macros and variables ( #14507 )
...
Made the macro BC_UINT_T a typedef and renamed it BC_VECTOR.
Additionally, several macros have been renamed to be consistent with BC_VECTOR.
2024-06-09 09:11:11 +09:00
Gina Peter Banyard
ec54edb9e1
ext/bcmath: Use an enum for comparison result ( #14374 )
...
Improve logic of callers of bc_compare
2024-05-30 17:26:03 +01:00
Gina Peter Banyard
c7bdf30daa
Merge branch 'PHP-8.3'
...
* PHP-8.3:
ext/bcmath: Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0)
2024-05-30 15:52:45 +01:00
Gina Peter Banyard
ba7b305530
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
ext/bcmath: Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0)
2024-05-30 15:51:05 +01:00
Gina Peter Banyard
709869c8bd
ext/bcmath: Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0)
2024-05-30 15:47:25 +01:00
Niels Dossche
4e99bb5935
Faster BCD into integer parsing
2024-05-23 22:38:21 +02:00
Niels Dossche
04a34c3433
Faster writing of BCD representation
2024-05-23 22:38:21 +02:00
Niels Dossche
aef0eada16
Use size_t for length
2024-05-23 22:38:21 +02:00
Saki Takamachi
8734a9a4af
ext/bcmath: Prevent overflow of uint32_t/uint64_t ( #14297 )
...
If add more than a certain number of times, it will overflow, so need to adjust
the digits before adding.
2024-05-23 06:13:11 +09:00