ruby-statistics 2.1.0 → 2.1.1

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: d33cf13ba623ecbb23488499a13a52c75c906b3eb258e7b146b628d10a84de89
4
- data.tar.gz: a075adb8960b0906cd276a138e70fd3bc76c738d9ed70afac08d57ccd50d86b3
3
+ metadata.gz: 848fec0cdedc0a7bbf7e0b9a0b76dc51c977a2af07e10e939eafea73a2d40c04
4
+ data.tar.gz: 57b11ee97d5d6ef128f5ed080a0d4e6c98be97fb2845c34eed1b6363e25d98a9
5
5
  SHA512:
6
- metadata.gz: '0799701996d9c3496e35b9f2f73024c359bbc263c3e34995b047bbbda1c0acff8b1ae5bf323bd3f2fd1901bb9eb3331271ccbd2fc16d6911d179644a8ad1878f'
7
- data.tar.gz: fe31571ab416c16b9832a4dff937e583c41a67b58a4676315f5cbde7720773cbb705b35973e16ef3e002cc542ea7b947e4a93157ae1ea09fecaa0950ecea7ab1
6
+ metadata.gz: fc5f0624271c87842e7e0de7f82c662fa8115ab5bff7b0d834c1771b30c18ee5f7d699ae3579c1eb2a472a103ee33d66606ca134e3f6a1d2cbe6a54cc97221a8
7
+ data.tar.gz: eed125d00807ece033d3c29498f6df9d727fc117d06e73aca10af2ce0fedccebf76835a36a9fcacd610d6647e4903d7b4a98ac67e0accb7c24af5ecfd6967f96
@@ -4,4 +4,5 @@ rvm:
4
4
  - 2.3.7
5
5
  - 2.4.4
6
6
  - 2.5.1
7
- before_install: gem install bundler
7
+ - 2.6.0
8
+ before_install: gem update --system && gem install bundler
@@ -79,5 +79,61 @@ module Statistics
79
79
  euler/Math.sqrt(2 * Math::PI)
80
80
  end
81
81
  end
82
+
83
+ # Inverse Standard Normal distribution:
84
+ # References:
85
+ # https://en.wikipedia.org/wiki/Inverse_distribution
86
+ # http://www.source-code.biz/snippets/vbasic/9.htm
87
+ class InverseStandardNormal < StandardNormal
88
+ A1 = -39.6968302866538
89
+ A2 = 220.946098424521
90
+ A3 = -275.928510446969
91
+ A4 = 138.357751867269
92
+ A5 = -30.6647980661472
93
+ A6 = 2.50662827745924
94
+ B1 = -54.4760987982241
95
+ B2 = 161.585836858041
96
+ B3 = -155.698979859887
97
+ B4 = 66.8013118877197
98
+ B5 = -13.2806815528857
99
+ C1 = -7.78489400243029E-03
100
+ C2 = -0.322396458041136
101
+ C3 = -2.40075827716184
102
+ C4 = -2.54973253934373
103
+ C5 = 4.37466414146497
104
+ C6 = 2.93816398269878
105
+ D1 = 7.78469570904146E-03
106
+ D2 = 0.32246712907004
107
+ D3 = 2.445134137143
108
+ D4 = 3.75440866190742
109
+ P_LOW = 0.02425
110
+ P_HIGH = 1 - P_LOW
111
+
112
+ def density_function(_)
113
+ raise NotImplementedError
114
+ end
115
+
116
+ def random(elements: 1, seed: Random.new_seed)
117
+ raise NotImplementedError
118
+ end
119
+
120
+ def cumulative_function(value)
121
+ return if value < 0.0 || value > 1.0
122
+ return -1.0 * Float::INFINITY if value.zero?
123
+ return Float::INFINITY if value == 1.0
124
+
125
+ if value < P_LOW
126
+ q = Math.sqrt((Math.log(value) * -2.0))
127
+ (((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6) / ((((D1 * q + D2) * q + D3) * q + D4) * q + 1.0)
128
+ elsif value <= P_HIGH
129
+ q = value - 0.5
130
+ r = q ** 2
131
+ (((((A1 * r + A2) * r + A3) * r + A4) * r + A5) * r + A6) * q / (((((B1 * r + B2) * r + B3) * r + B4) * r + B5) * r + 1.0)
132
+ else
133
+ q = Math.sqrt((Math.log(1 - value) * -2.0))
134
+ - (((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6) / ((((D1 * q + D2) * q + D3) * q + D4) * q + 1)
135
+ end
136
+ end
137
+ end
82
138
  end
83
139
  end
@@ -1,3 +1,3 @@
1
1
  module Statistics
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
@@ -27,7 +27,6 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_development_dependency "bundler",'~> 1.15', '>= 1.15.4'
31
30
  spec.add_development_dependency "rake", '~> 12.0', '>= 12.0.0'
32
31
  spec.add_development_dependency "rspec", '~> 3.6', '>= 3.6.0'
33
32
  spec.add_development_dependency "grb", '~> 0.4.1', '>= 0.4.1'
metadata CHANGED
@@ -1,113 +1,93 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-statistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - esteban zapata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-31 00:00:00.000000000 Z
11
+ date: 2019-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.15'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.15.4
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '1.15'
30
17
  - - ">="
31
18
  - !ruby/object:Gem::Version
32
- version: 1.15.4
33
- - !ruby/object:Gem::Dependency
34
- name: rake
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
19
+ version: 12.0.0
37
20
  - - "~>"
38
21
  - !ruby/object:Gem::Version
39
22
  version: '12.0'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 12.0.0
43
23
  type: :development
44
24
  prerelease: false
45
25
  version_requirements: !ruby/object:Gem::Requirement
46
26
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '12.0'
50
27
  - - ">="
51
28
  - !ruby/object:Gem::Version
52
29
  version: 12.0.0
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '12.0'
53
33
  - !ruby/object:Gem::Dependency
54
34
  name: rspec
55
35
  requirement: !ruby/object:Gem::Requirement
56
36
  requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: '3.6'
60
37
  - - ">="
61
38
  - !ruby/object:Gem::Version
62
39
  version: 3.6.0
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '3.6'
63
43
  type: :development
64
44
  prerelease: false
65
45
  version_requirements: !ruby/object:Gem::Requirement
66
46
  requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '3.6'
70
47
  - - ">="
71
48
  - !ruby/object:Gem::Version
72
49
  version: 3.6.0
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '3.6'
73
53
  - !ruby/object:Gem::Dependency
74
54
  name: grb
75
55
  requirement: !ruby/object:Gem::Requirement
76
56
  requirements:
77
- - - "~>"
57
+ - - ">="
78
58
  - !ruby/object:Gem::Version
79
59
  version: 0.4.1
80
- - - ">="
60
+ - - "~>"
81
61
  - !ruby/object:Gem::Version
82
62
  version: 0.4.1
83
63
  type: :development
84
64
  prerelease: false
85
65
  version_requirements: !ruby/object:Gem::Requirement
86
66
  requirements:
87
- - - "~>"
67
+ - - ">="
88
68
  - !ruby/object:Gem::Version
89
69
  version: 0.4.1
90
- - - ">="
70
+ - - "~>"
91
71
  - !ruby/object:Gem::Version
92
72
  version: 0.4.1
93
73
  - !ruby/object:Gem::Dependency
94
74
  name: byebug
95
75
  requirement: !ruby/object:Gem::Requirement
96
76
  requirements:
97
- - - "~>"
77
+ - - ">="
98
78
  - !ruby/object:Gem::Version
99
79
  version: 9.1.0
100
- - - ">="
80
+ - - "~>"
101
81
  - !ruby/object:Gem::Version
102
82
  version: 9.1.0
103
83
  type: :development
104
84
  prerelease: false
105
85
  version_requirements: !ruby/object:Gem::Requirement
106
86
  requirements:
107
- - - "~>"
87
+ - - ">="
108
88
  - !ruby/object:Gem::Version
109
89
  version: 9.1.0
110
- - - ">="
90
+ - - "~>"
111
91
  - !ruby/object:Gem::Version
112
92
  version: 9.1.0
113
93
  description: |-
@@ -180,8 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
160
  - !ruby/object:Gem::Version
181
161
  version: '0'
182
162
  requirements: []
183
- rubyforge_project:
184
- rubygems_version: 2.7.7
163
+ rubygems_version: 3.0.3
185
164
  signing_key:
186
165
  specification_version: 4
187
166
  summary: A ruby gem for som specific statistics. Inspired by the jStat js library.