bigdecimal 3.1.8 → 3.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2090d7c93ccb0ee94f4e31b443f01a4a996c7f0a12f0684ac21bcdea56813fda
4
- data.tar.gz: de18780d3080b0251e6f9cb8a0b6b31ea77d38d92874b57eb37efb40cec83997
3
+ metadata.gz: 61cbb7233c53f76dca23b078090706faa4c5796f983d9b0bf207bb2d6c652625
4
+ data.tar.gz: d7f68a343595d21e009f43ac47558d1805e004cefb85e6d0d423e46b307ba9fa
5
5
  SHA512:
6
- metadata.gz: 5a2c8d3e0c57a6bd6e63ffcb5c0a125b9edcb85a4528db302d95bce276e9fadc513727a7a7b9f3bb22a10c305e2b5533c53e60612ed68843456b5d43c4aabd9e
7
- data.tar.gz: 3b93bfadda8ce3963d2aa61ce1342be2664ea216d029ec24588869a14b12ffb0171538f088490cf8da25fe836361be2d3ff630d514790a0d152bb988c952431e
6
+ metadata.gz: 1b091bed99353940b359a3d4ba6639f67cfad6859efda3709007aec5310539c0159d333ee5fb425cdecde146d2bd4241b6e208ee273cde337f449d467a7593e4
7
+ data.tar.gz: 0fa14bd118018db4d4b436375f804d62e6c894458a3fa555cafc2c8da2888bd03dea8206e3ce15a73f82b35afcd6c8285881d2c76acb14e9013cf1e72f7284c3
@@ -31,7 +31,7 @@
31
31
  #include "bits.h"
32
32
  #include "static_assert.h"
33
33
 
34
- #define BIGDECIMAL_VERSION "3.1.8"
34
+ #define BIGDECIMAL_VERSION "3.1.9"
35
35
 
36
36
  /* #define ENABLE_NUMERIC_STRING */
37
37
 
@@ -2459,7 +2459,7 @@ BigDecimal_fix(VALUE self)
2459
2459
  * round(n, mode)
2460
2460
  *
2461
2461
  * Round to the nearest integer (by default), returning the result as a
2462
- * BigDecimal if n is specified, or as an Integer if it isn't.
2462
+ * BigDecimal if n is specified and positive, or as an Integer if it isn't.
2463
2463
  *
2464
2464
  * BigDecimal('3.14159').round #=> 3
2465
2465
  * BigDecimal('8.7').round #=> 9
@@ -2467,6 +2467,7 @@ BigDecimal_fix(VALUE self)
2467
2467
  *
2468
2468
  * BigDecimal('3.14159').round(2).class.name #=> "BigDecimal"
2469
2469
  * BigDecimal('3.14159').round.class.name #=> "Integer"
2470
+ * BigDecimal('3.14159').round(0).class.name #=> "Integer"
2470
2471
  *
2471
2472
  * If n is specified and positive, the fractional part of the result has no
2472
2473
  * more than that many digits.
@@ -5276,7 +5277,7 @@ VP_EXPORT Real *
5276
5277
  VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)
5277
5278
  {
5278
5279
  const char *orig_szVal = szVal;
5279
- size_t i, j, ni, ipf, nf, ipe, ne, dot_seen, exp_seen, nalloc;
5280
+ size_t i, j, ni, ipf, nf, ipe, ne, exp_seen, nalloc;
5280
5281
  size_t len;
5281
5282
  char v, *psz;
5282
5283
  int sign=1;
@@ -5362,13 +5363,11 @@ VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)
5362
5363
  ne = 0; /* number of digits in the exponential part */
5363
5364
  ipf = 0; /* index of the beginning of the fractional part */
5364
5365
  ipe = 0; /* index of the beginning of the exponential part */
5365
- dot_seen = 0;
5366
5366
  exp_seen = 0;
5367
5367
 
5368
5368
  if (v != '\0') {
5369
5369
  /* Scanning fractional part */
5370
5370
  if ((psz[i] = szVal[j]) == '.') {
5371
- dot_seen = 1;
5372
5371
  ++i;
5373
5372
  ++j;
5374
5373
  ipf = i;
@@ -5384,9 +5383,6 @@ VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)
5384
5383
  }
5385
5384
  if (!strict_p) {
5386
5385
  v = psz[i] = '\0';
5387
- if (nf == 0) {
5388
- dot_seen = 0;
5389
- }
5390
5386
  break;
5391
5387
  }
5392
5388
  goto invalid_value;
@@ -5457,7 +5453,7 @@ VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)
5457
5453
 
5458
5454
  psz[i] = '\0';
5459
5455
 
5460
- if (strict_p && (((ni == 0 || dot_seen) && nf == 0) || (exp_seen && ne == 0))) {
5456
+ if (strict_p && ((ni == 0 && nf == 0) || (exp_seen && ne == 0))) {
5461
5457
  VALUE str;
5462
5458
  invalid_value:
5463
5459
  if (!strict_p) {
@@ -24,15 +24,17 @@ have_header("math.h")
24
24
  have_header("stdbool.h")
25
25
  have_header("stdlib.h")
26
26
 
27
- have_header("x86intrin.h")
28
- have_func("_lzcnt_u32", "x86intrin.h")
29
- have_func("_lzcnt_u64", "x86intrin.h")
30
-
31
- have_header("intrin.h")
32
- have_func("__lzcnt", "intrin.h")
33
- have_func("__lzcnt64", "intrin.h")
34
- have_func("_BitScanReverse", "intrin.h")
35
- have_func("_BitScanReverse64", "intrin.h")
27
+ if have_header("x86intrin.h")
28
+ have_func("_lzcnt_u32", "x86intrin.h")
29
+ have_func("_lzcnt_u64", "x86intrin.h")
30
+ end
31
+
32
+ if have_header("intrin.h")
33
+ have_func("__lzcnt", "intrin.h")
34
+ have_func("__lzcnt64", "intrin.h")
35
+ have_func("_BitScanReverse", "intrin.h")
36
+ have_func("_BitScanReverse64", "intrin.h")
37
+ end
36
38
 
37
39
  have_func("labs", "stdlib.h")
38
40
  have_func("llabs", "stdlib.h")
@@ -15,7 +15,8 @@
15
15
  _Pragma("GCC diagnostic push") \
16
16
  _Pragma("GCC diagnostic ignored \"-Wattributes\"") \
17
17
  __attribute__((__no_sanitize__(x))) y; \
18
- _Pragma("GCC diagnostic pop")
18
+ _Pragma("GCC diagnostic pop") \
19
+ y
19
20
  #endif
20
21
 
21
22
  #undef strtod
@@ -155,7 +155,7 @@ class Complex < Numeric
155
155
  # See also Kernel.BigDecimal.
156
156
  #
157
157
  def to_d(*args)
158
- BigDecimal(self) unless self.imag.zero? # to raise eerror
158
+ BigDecimal(self) unless self.imag.zero? # to raise error
159
159
 
160
160
  if args.length == 0
161
161
  case self.real
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigdecimal
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.8
4
+ version: 3.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenta Murata
8
8
  - Zachary Scott
9
9
  - Shigeo Kobayashi
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2024-05-07 00:00:00.000000000 Z
12
+ date: 2024-12-25 00:00:00.000000000 Z
14
13
  dependencies: []
15
14
  description: This library provides arbitrary-precision decimal floating-point number
16
15
  class.
@@ -47,7 +46,6 @@ licenses:
47
46
  - BSD-2-Clause
48
47
  metadata:
49
48
  changelog_uri: https://github.com/ruby/bigdecimal/blob/master/CHANGES.md
50
- post_install_message:
51
49
  rdoc_options: []
52
50
  require_paths:
53
51
  - lib
@@ -62,8 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
60
  - !ruby/object:Gem::Version
63
61
  version: '0'
64
62
  requirements: []
65
- rubygems_version: 3.5.9
66
- signing_key:
63
+ rubygems_version: 3.6.2
67
64
  specification_version: 4
68
65
  summary: Arbitrary-precision decimal floating-point number library.
69
66
  test_files: []