bigdecimal 1.3.0.pre.2 → 1.3.0
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 +4 -4
- data/bigdecimal.gemspec +1 -1
- data/ext/bigdecimal/bigdecimal.c +28 -18
- data/lib/bigdecimal/math.rb +7 -7
- data/lib/bigdecimal/util.rb +4 -4
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e26ceb2017642a4b5325636c315f5b541579f890
|
4
|
+
data.tar.gz: 58db7e3cc1e17b3754a3dac96425fffaf11cb648
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c479456ed3a6ae4bb3de2a4cbbc02d0eaee8455fd2a9bfeaeaa4115474828197cfc321ea4ec96faf0476ed0efecf5a721705cbcea011c01bd911d433e067f4ff
|
7
|
+
data.tar.gz: 03b204ded5fe35cbf6355b59fc0a4b90314488ad0d9cf8c5b6287b177afe78cbf2d053ce968dd8a57f67ac0dd47cdb9d40f65dcd75d4083b15376169f2656bc6
|
data/bigdecimal.gemspec
CHANGED
data/ext/bigdecimal/bigdecimal.c
CHANGED
@@ -335,15 +335,18 @@ BigDecimal_double_fig(VALUE self)
|
|
335
335
|
return INT2FIX(VpDblFig());
|
336
336
|
}
|
337
337
|
|
338
|
-
/*
|
339
|
-
*
|
338
|
+
/* call-seq:
|
339
|
+
* big_decimal.precs -> array
|
340
|
+
*
|
341
|
+
* Returns an Array of two Integer values.
|
340
342
|
*
|
341
|
-
*
|
343
|
+
* The first value is the current number of significant digits in the
|
344
|
+
* BigDecimal. The second value is the maximum number of significant digits
|
345
|
+
* for the BigDecimal.
|
342
346
|
*
|
343
|
-
*
|
344
|
-
* BigDecimal. The second value is the maximum number of significant digits
|
345
|
-
* for the BigDecimal.
|
347
|
+
* BigDecimal('5').precs #=> [9, 18]
|
346
348
|
*/
|
349
|
+
|
347
350
|
static VALUE
|
348
351
|
BigDecimal_prec(VALUE self)
|
349
352
|
{
|
@@ -456,7 +459,7 @@ check_rounding_mode_option(VALUE const opts)
|
|
456
459
|
goto noopt;
|
457
460
|
|
458
461
|
mode = rb_hash_lookup2(opts, ID2SYM(id_half), Qundef);
|
459
|
-
if (mode == Qundef)
|
462
|
+
if (mode == Qundef || NIL_P(mode))
|
460
463
|
goto noopt;
|
461
464
|
|
462
465
|
if (SYMBOL_P(mode))
|
@@ -478,6 +481,7 @@ check_rounding_mode_option(VALUE const opts)
|
|
478
481
|
return VP_ROUND_HALF_EVEN;
|
479
482
|
else if (strncasecmp(s, "down", 4) == 0)
|
480
483
|
return VP_ROUND_HALF_DOWN;
|
484
|
+
break;
|
481
485
|
default:
|
482
486
|
break;
|
483
487
|
}
|
@@ -901,13 +905,14 @@ BigDecimal_coerce(VALUE self, VALUE other)
|
|
901
905
|
}
|
902
906
|
|
903
907
|
/*
|
904
|
-
* call-seq:
|
908
|
+
* call-seq:
|
909
|
+
* +big_decimal -> big_decimal
|
905
910
|
*
|
906
911
|
* Return self.
|
907
912
|
*
|
908
|
-
*
|
909
|
-
* b = +a # b == a
|
913
|
+
* +BigDecimal('5') #=> 0.5e1
|
910
914
|
*/
|
915
|
+
|
911
916
|
static VALUE
|
912
917
|
BigDecimal_uplus(VALUE self)
|
913
918
|
{
|
@@ -1218,14 +1223,14 @@ BigDecimal_ge(VALUE self, VALUE r)
|
|
1218
1223
|
}
|
1219
1224
|
|
1220
1225
|
/*
|
1221
|
-
*
|
1226
|
+
* call-seq:
|
1227
|
+
* -big_decimal -> big_decimal
|
1222
1228
|
*
|
1223
|
-
*
|
1229
|
+
* Return the negation of self.
|
1224
1230
|
*
|
1225
|
-
*
|
1226
|
-
* b = -a
|
1227
|
-
* b == a * -1
|
1231
|
+
* -BigDecimal('5') #=> -0.5e1
|
1228
1232
|
*/
|
1233
|
+
|
1229
1234
|
static VALUE
|
1230
1235
|
BigDecimal_neg(VALUE self)
|
1231
1236
|
{
|
@@ -1672,11 +1677,16 @@ BigDecimal_mult2(VALUE self, VALUE b, VALUE n)
|
|
1672
1677
|
}
|
1673
1678
|
}
|
1674
1679
|
|
1675
|
-
/*
|
1680
|
+
/*
|
1681
|
+
* call-seq:
|
1682
|
+
* big_decimal.abs -> big_decimal
|
1676
1683
|
*
|
1677
|
-
*
|
1678
|
-
*
|
1684
|
+
* Returns the absolute value, as a BigDecimal.
|
1685
|
+
*
|
1686
|
+
* BigDecimal('5').abs #=> 0.5e1
|
1687
|
+
* BigDecimal('-3').abs #=> 0.3e1
|
1679
1688
|
*/
|
1689
|
+
|
1680
1690
|
static VALUE
|
1681
1691
|
BigDecimal_abs(VALUE self)
|
1682
1692
|
{
|
data/lib/bigdecimal/math.rb
CHANGED
@@ -26,7 +26,7 @@ require 'bigdecimal'
|
|
26
26
|
# include BigMath
|
27
27
|
#
|
28
28
|
# a = BigDecimal((PI(100)/2).to_s)
|
29
|
-
# puts sin(a,100) # => 0.
|
29
|
+
# puts sin(a,100) # => 0.99999999999999999999......e0
|
30
30
|
#
|
31
31
|
module BigMath
|
32
32
|
module_function
|
@@ -38,7 +38,7 @@ module BigMath
|
|
38
38
|
# precision, +numeric+.
|
39
39
|
#
|
40
40
|
# BigMath.sqrt(BigDecimal.new('2'), 16).to_s
|
41
|
-
# #=> "0.
|
41
|
+
# #=> "0.1414213562373095048801688724e1"
|
42
42
|
#
|
43
43
|
def sqrt(x, prec)
|
44
44
|
x.sqrt(prec)
|
@@ -53,7 +53,7 @@ module BigMath
|
|
53
53
|
# If +decimal+ is Infinity or NaN, returns NaN.
|
54
54
|
#
|
55
55
|
# BigMath.sin(BigMath.PI(5)/4, 5).to_s
|
56
|
-
# #=> "0.
|
56
|
+
# #=> "0.70710678118654752440082036563292800375e0"
|
57
57
|
#
|
58
58
|
def sin(x, prec)
|
59
59
|
raise ArgumentError, "Zero or negative precision for sin" if prec <= 0
|
@@ -97,7 +97,7 @@ module BigMath
|
|
97
97
|
# If +decimal+ is Infinity or NaN, returns NaN.
|
98
98
|
#
|
99
99
|
# BigMath.cos(BigMath.PI(4), 16).to_s
|
100
|
-
# #=> "-0.
|
100
|
+
# #=> "-0.999999999999999999999999999999856613163740061349e0"
|
101
101
|
#
|
102
102
|
def cos(x, prec)
|
103
103
|
raise ArgumentError, "Zero or negative precision for cos" if prec <= 0
|
@@ -141,7 +141,7 @@ module BigMath
|
|
141
141
|
# If +decimal+ is NaN, returns NaN.
|
142
142
|
#
|
143
143
|
# BigMath.atan(BigDecimal.new('-1'), 16).to_s
|
144
|
-
# #=> "-0.
|
144
|
+
# #=> "-0.785398163397448309615660845819878471907514682065e0"
|
145
145
|
#
|
146
146
|
def atan(x, prec)
|
147
147
|
raise ArgumentError, "Zero or negative precision for atan" if prec <= 0
|
@@ -178,7 +178,7 @@ module BigMath
|
|
178
178
|
# +numeric+.
|
179
179
|
#
|
180
180
|
# BigMath.PI(10).to_s
|
181
|
-
# #=> "0.
|
181
|
+
# #=> "0.3141592653589793238462643388813853786957412e1"
|
182
182
|
#
|
183
183
|
def PI(prec)
|
184
184
|
raise ArgumentError, "Zero or negative precision for PI" if prec <= 0
|
@@ -223,7 +223,7 @@ module BigMath
|
|
223
223
|
# digits of precision, +numeric+.
|
224
224
|
#
|
225
225
|
# BigMath.E(10).to_s
|
226
|
-
# #=> "0.
|
226
|
+
# #=> "0.271828182845904523536028752390026306410273e1"
|
227
227
|
#
|
228
228
|
def E(prec)
|
229
229
|
raise ArgumentError, "Zero or negative precision for E" if prec <= 0
|
data/lib/bigdecimal/util.rb
CHANGED
@@ -13,7 +13,7 @@ class Integer < Numeric
|
|
13
13
|
# require 'bigdecimal/util'
|
14
14
|
#
|
15
15
|
# 42.to_d
|
16
|
-
# # =>
|
16
|
+
# # => 0.42e2
|
17
17
|
#
|
18
18
|
def to_d
|
19
19
|
BigDecimal(self)
|
@@ -34,7 +34,7 @@ class Float < Numeric
|
|
34
34
|
# require 'bigdecimal/util'
|
35
35
|
#
|
36
36
|
# 0.5.to_d
|
37
|
-
# # =>
|
37
|
+
# # => 0.5e0
|
38
38
|
#
|
39
39
|
def to_d(precision=nil)
|
40
40
|
BigDecimal(self, precision || Float::DIG)
|
@@ -55,7 +55,7 @@ class String
|
|
55
55
|
# require 'bigdecimal/util'
|
56
56
|
#
|
57
57
|
# "0.5".to_d
|
58
|
-
# # =>
|
58
|
+
# # => 0.5e0
|
59
59
|
#
|
60
60
|
def to_d
|
61
61
|
BigDecimal(self)
|
@@ -117,7 +117,7 @@ class Rational < Numeric
|
|
117
117
|
# r = (22/7.0).to_r
|
118
118
|
# # => (7077085128725065/2251799813685248)
|
119
119
|
# r.to_d(3)
|
120
|
-
# # =>
|
120
|
+
# # => 0.314e1
|
121
121
|
def to_d(precision)
|
122
122
|
if precision <= 0
|
123
123
|
raise ArgumentError, "negative precision"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigdecimal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.0
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenta Murata
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-12-
|
13
|
+
date: 2016-12-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -91,9 +91,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: '0'
|
97
97
|
requirements: []
|
98
98
|
rubyforge_project:
|
99
99
|
rubygems_version: 2.6.7
|