normale_distribution 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +1 -0
- data/CHANGELOG +4 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +13 -0
- data/README.md +40 -0
- data/Rakefile +16 -0
- data/certs/nephos.pem +22 -0
- data/lib/normale_distribution.rb +13 -0
- data/lib/normale_distribution/persistant.rb +32 -0
- data/normale_distribution.gemspec +38 -0
- data/test/normale_distribution.rb +33 -0
- data/test/unit_test.rb +7 -0
- data/version +1 -0
- metadata +94 -0
- metadata.gz.sig +1 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 394e4ec0ea40117b42c097903d253d590ea380ea
|
4
|
+
data.tar.gz: a6beebab07d01cd3b7c27f41d0eeac37e194d598
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4423bd75b8939437288ad11562e0745995898a96fc15b788a98ecce6374798e0f57e9bf4e73431002d934a29e8fd4fa74b9fc00ab2159c3e8d93a1c38dc57ee5
|
7
|
+
data.tar.gz: d8f0fd53b27bb9d55b9ba1768791de00c079258113088b6ac2f3a8d595a3c22ec6f2782975ba323af808db7f47c97c35407329b79b1ef4f3ba3f3d2a76875885
|
checksums.yaml.gz.sig
ADDED
data.tar.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Y���lY�YaZ{i\�����F�פ�N'�>k5��2Bw����"�K���b�i�;�0��6��(���I(h�r��y�e���u�������6���f�7'�Dh��M,2��{�(L�z��T���fܦE�+ګr[=V���c���ZH������5�kѕ�k���M�]̉ER�*w�p���g���l�2@� mD�~J���0uE��1�Z>�aU�__T�ZCb�ً���6H�g�+H�;�VŔk.%
|
data/CHANGELOG
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/README.md
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# Normale
|
2
|
+
|
3
|
+
|
4
|
+
## Installation
|
5
|
+
|
6
|
+
```sh
|
7
|
+
gem install normale_distribution
|
8
|
+
```
|
9
|
+
|
10
|
+
or in the ``Gemfile``
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
gem 'normale_distribution'
|
14
|
+
```
|
15
|
+
|
16
|
+
|
17
|
+
## Usage in Ruby
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
require 'normale_distribution'
|
21
|
+
|
22
|
+
NormaleDistribution::between standard_deviation: 15, esperance: 100, a: 85, b: 115 # => 0.6826894921370859
|
23
|
+
NormaleDistribution::less_than standard_deviation: 15, esperance: 100, a: 85 # => 0.15865525393145707
|
24
|
+
NormaleDistribution::greater_than standard_deviation: 15, esperance: 100, a: 115 # => 0.15865525393145707
|
25
|
+
```
|
26
|
+
|
27
|
+
|
28
|
+
## Unitary tests
|
29
|
+
|
30
|
+
```sh
|
31
|
+
rake test
|
32
|
+
```
|
33
|
+
|
34
|
+
|
35
|
+
## Contributes !
|
36
|
+
|
37
|
+
Find a bug ? Want a new feature ?
|
38
|
+
Create a clear pull request and we'll see :)
|
39
|
+
|
40
|
+
- Nephos (poulet_a)
|
data/Rakefile
ADDED
data/certs/nephos.pem
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRYwFAYDVQQDDA1hcnRo
|
3
|
+
dXIucG91bGV0MRkwFwYKCZImiZPyLGQBGRYJY3J5cHRvbGFiMRMwEQYKCZImiZPy
|
4
|
+
LGQBGRYDbmV0MB4XDTE1MTAwMzIxNTQyMFoXDTE2MTAwMjIxNTQyMFowSDEWMBQG
|
5
|
+
A1UEAwwNYXJ0aHVyLnBvdWxldDEZMBcGCgmSJomT8ixkARkWCWNyeXB0b2xhYjET
|
6
|
+
MBEGCgmSJomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
7
|
+
ggEBANnLB9vH7/O0aUWi0f9VtC7F73zMC1OvxDaJq+qIcmGBFiKPOngDCRyKffWf
|
8
|
+
A6gyf7VsJAlDVFYoyNw7bzLFjBT9gkb5xmED3Uaxvt8Ax131YvKv0sTsQeiTVHHW
|
9
|
+
1crq7266hW1McrFU2A1uQRV8FHuruUJBuP7UUYK7fZi0barbkdAIb4VvQFZxXByI
|
10
|
+
lKdQSuhu8k0RcG1vTACEsQXJIUImc8CWMi8/TG3HidJdASMvIWtV2rNQXlQ+UgIc
|
11
|
+
UeHC0p+SNTrc09H6q+5eH8NRYhJ91xKuLXv7NNy8M3quAMHcQ1GM6DWljc+Jc4cm
|
12
|
+
uAPQMYJf7Vy6OzWLoEiv2QU6sE0CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
13
|
+
DwQEAwIEsDAdBgNVHQ4EFgQU08cDEZOTZNjP/0+E2unJWyw4NzQwJgYDVR0RBB8w
|
14
|
+
HYEbYXJ0aHVyLnBvdWxldEBjcnlwdG9sYWIubmV0MCYGA1UdEgQfMB2BG2FydGh1
|
15
|
+
ci5wb3VsZXRAY3J5cHRvbGFiLm5ldDANBgkqhkiG9w0BAQUFAAOCAQEAo60BuRZM
|
16
|
+
5Vtn0H0kHHTPiXz09lwxx4cFpTqrTTM0T6qM3gKsR5eLyR1Rt5hGmYLPgY4ZW4zI
|
17
|
+
XcuDbgRJrczZs7AZNy5NXyVWpxCwkZzklpbGTuYQdFz7mKfVyALjLjrilOIktXcz
|
18
|
+
PvB7EoLlqYvq9cnwV3WE1MkRcBd07xpofcp0kxae2dCOZPUq24TcNaRe7Utw6jjA
|
19
|
+
iL0bcH7zZkzMsNoNpPAgsd3ovU4Mf9M+A3M8COmd7KzKyZ0k7P12u5InPWUsNQS2
|
20
|
+
tcYkgfqUJPitIJx1RvWZpIyH5uJhRUYK3+vU9nMOxez5WbIlC1TtpByKAPMX+sht
|
21
|
+
gib3AoIT8jh/2w==
|
22
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'normale_distribution/persistant'
|
2
|
+
|
3
|
+
module NormaleDistribution
|
4
|
+
def self.between standard_deviation: nil, esperance: nil, sd: 1.0, e: 0.0, a: nil, b: nil
|
5
|
+
NormaleDistribution::Persistant.new(standard_deviation: standard_deviation||sd, esperance: esperance||e).between a, b
|
6
|
+
end
|
7
|
+
def self.greater_than standard_deviation: nil, esperance: nil, sd: 1.0, e: 0.0, a: nil
|
8
|
+
NormaleDistribution::Persistant.new(standard_deviation: standard_deviation||sd, esperance: esperance||e).greater_than a
|
9
|
+
end
|
10
|
+
def self.less_than standard_deviation: nil, esperance: nil, sd: 1.0, e: 0.0, a: nil, b: nil
|
11
|
+
NormaleDistribution::Persistant.new(standard_deviation: standard_deviation||sd, esperance: esperance||e).less_than a
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module NormaleDistribution
|
2
|
+
class Persistant
|
3
|
+
attr_accessor :standard_deviation, :esperance
|
4
|
+
def initialize standard_deviation: 1.0, esperance: 0.0
|
5
|
+
@standard_deviation = Float(standard_deviation)
|
6
|
+
@esperance = Float(esperance)
|
7
|
+
raise ArgumentError, "standard_deviation must be > 0" unless @standard_deviation > 0.0
|
8
|
+
end
|
9
|
+
|
10
|
+
def greater_than a
|
11
|
+
1 - repartition(a)
|
12
|
+
end
|
13
|
+
|
14
|
+
def less_than a
|
15
|
+
repartition a
|
16
|
+
end
|
17
|
+
|
18
|
+
def between a, b
|
19
|
+
repartition(b) - repartition(a)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def density t
|
24
|
+
#1.0 / (standard_deviation * (2 * Math::PI) ** 0.5) * Math::exp((t - esperance) / (2 * standard_deviation)))
|
25
|
+
end
|
26
|
+
|
27
|
+
def repartition t
|
28
|
+
erf = (Float(t) - esperance) / (standard_deviation * 2.0**0.5)
|
29
|
+
0.5 * (1.0 + Math.erf(erf))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'normale_distribution'
|
3
|
+
s.version = File.read("version")
|
4
|
+
s.date = Time.now.getgm.to_s.split.first
|
5
|
+
s.summary = File.read("CHANGELOG").match(/^v[^\n]+\n((\t[^\n]+\n)+)/m)[1].split("\t").join
|
6
|
+
s.description = 'A ruby implementation of the Normal Distribution'
|
7
|
+
s.authors = ['Nephos (poulet_a)']
|
8
|
+
s.email = ['arthur.poulet@mailoo.org']
|
9
|
+
s.files = %w(
|
10
|
+
lib/normale_distribution.rb
|
11
|
+
lib/normale_distribution/persistant.rb
|
12
|
+
|
13
|
+
README.md
|
14
|
+
CHANGELOG
|
15
|
+
|
16
|
+
Rakefile
|
17
|
+
Gemfile
|
18
|
+
Gemfile.lock
|
19
|
+
normale_distribution.gemspec
|
20
|
+
version
|
21
|
+
|
22
|
+
test/unit_test.rb
|
23
|
+
test/normale_distribution.rb
|
24
|
+
|
25
|
+
certs/nephos.pem
|
26
|
+
)
|
27
|
+
s.executables = %w(
|
28
|
+
)
|
29
|
+
s.homepage = 'https://github.com/Nephos/NormaleDistribution'
|
30
|
+
s.license = 'WTFPL'
|
31
|
+
|
32
|
+
s.cert_chain = ['certs/nephos.pem']
|
33
|
+
s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem') if $0 =~ /gem\z/
|
34
|
+
|
35
|
+
# s.add_dependency 'nephos', '~> 1.0'
|
36
|
+
s.add_dependency 'nomorebeer', '~> 1.1'
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class TestNormale < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_simple
|
4
|
+
NormaleDistribution::Persistant.new
|
5
|
+
NormaleDistribution::Persistant.new standard_deviation: 1
|
6
|
+
NormaleDistribution::Persistant.new esperance: 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_qi
|
10
|
+
rule = NormaleDistribution::Persistant.new standard_deviation: 15, esperance: 100
|
11
|
+
assert_equal 0.68, rule.between(85, 115).round(2)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_centroid
|
15
|
+
[0.1, 1, 2, 4.1324].each do |space|
|
16
|
+
[0, 1, -1, 12, 41, 0.2, 0.233].each do |center|
|
17
|
+
rule = NormaleDistribution::Persistant.new standard_deviation: space, esperance: center
|
18
|
+
[0.2, 0.4, 0.45, 0.55, 0.94, 1.1].each do |diff|
|
19
|
+
assert_equal -rule.between(diff, center), rule.between(center, diff)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_error
|
26
|
+
assert_raise { NormaleDistribution::Persistant.new 1, 2 }
|
27
|
+
assert_raise { NormaleDistribution::Persistant.new 1 }
|
28
|
+
assert_raise { NormaleDistribution::Persistant.new standard_deviation: "ok" }
|
29
|
+
assert_raise { NormaleDistribution::Persistant.new standard_deviation: -1 }
|
30
|
+
assert_raise { NormaleDistribution::Persistant.new standard_deviation: 0 }
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
data/test/unit_test.rb
ADDED
data/version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
metadata
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: normale_distribution
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nephos (poulet_a)
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRYwFAYDVQQDDA1hcnRo
|
14
|
+
dXIucG91bGV0MRkwFwYKCZImiZPyLGQBGRYJY3J5cHRvbGFiMRMwEQYKCZImiZPy
|
15
|
+
LGQBGRYDbmV0MB4XDTE1MTAwMzIxNTQyMFoXDTE2MTAwMjIxNTQyMFowSDEWMBQG
|
16
|
+
A1UEAwwNYXJ0aHVyLnBvdWxldDEZMBcGCgmSJomT8ixkARkWCWNyeXB0b2xhYjET
|
17
|
+
MBEGCgmSJomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
+
ggEBANnLB9vH7/O0aUWi0f9VtC7F73zMC1OvxDaJq+qIcmGBFiKPOngDCRyKffWf
|
19
|
+
A6gyf7VsJAlDVFYoyNw7bzLFjBT9gkb5xmED3Uaxvt8Ax131YvKv0sTsQeiTVHHW
|
20
|
+
1crq7266hW1McrFU2A1uQRV8FHuruUJBuP7UUYK7fZi0barbkdAIb4VvQFZxXByI
|
21
|
+
lKdQSuhu8k0RcG1vTACEsQXJIUImc8CWMi8/TG3HidJdASMvIWtV2rNQXlQ+UgIc
|
22
|
+
UeHC0p+SNTrc09H6q+5eH8NRYhJ91xKuLXv7NNy8M3quAMHcQ1GM6DWljc+Jc4cm
|
23
|
+
uAPQMYJf7Vy6OzWLoEiv2QU6sE0CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQU08cDEZOTZNjP/0+E2unJWyw4NzQwJgYDVR0RBB8w
|
25
|
+
HYEbYXJ0aHVyLnBvdWxldEBjcnlwdG9sYWIubmV0MCYGA1UdEgQfMB2BG2FydGh1
|
26
|
+
ci5wb3VsZXRAY3J5cHRvbGFiLm5ldDANBgkqhkiG9w0BAQUFAAOCAQEAo60BuRZM
|
27
|
+
5Vtn0H0kHHTPiXz09lwxx4cFpTqrTTM0T6qM3gKsR5eLyR1Rt5hGmYLPgY4ZW4zI
|
28
|
+
XcuDbgRJrczZs7AZNy5NXyVWpxCwkZzklpbGTuYQdFz7mKfVyALjLjrilOIktXcz
|
29
|
+
PvB7EoLlqYvq9cnwV3WE1MkRcBd07xpofcp0kxae2dCOZPUq24TcNaRe7Utw6jjA
|
30
|
+
iL0bcH7zZkzMsNoNpPAgsd3ovU4Mf9M+A3M8COmd7KzKyZ0k7P12u5InPWUsNQS2
|
31
|
+
tcYkgfqUJPitIJx1RvWZpIyH5uJhRUYK3+vU9nMOxez5WbIlC1TtpByKAPMX+sht
|
32
|
+
gib3AoIT8jh/2w==
|
33
|
+
-----END CERTIFICATE-----
|
34
|
+
date: 2016-05-03 00:00:00.000000000 Z
|
35
|
+
dependencies:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: nomorebeer
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.1'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.1'
|
50
|
+
description: A ruby implementation of the Normal Distribution
|
51
|
+
email:
|
52
|
+
- arthur.poulet@mailoo.org
|
53
|
+
executables: []
|
54
|
+
extensions: []
|
55
|
+
extra_rdoc_files: []
|
56
|
+
files:
|
57
|
+
- CHANGELOG
|
58
|
+
- Gemfile
|
59
|
+
- Gemfile.lock
|
60
|
+
- README.md
|
61
|
+
- Rakefile
|
62
|
+
- certs/nephos.pem
|
63
|
+
- lib/normale_distribution.rb
|
64
|
+
- lib/normale_distribution/persistant.rb
|
65
|
+
- normale_distribution.gemspec
|
66
|
+
- test/normale_distribution.rb
|
67
|
+
- test/unit_test.rb
|
68
|
+
- version
|
69
|
+
homepage: https://github.com/Nephos/NormaleDistribution
|
70
|
+
licenses:
|
71
|
+
- WTFPL
|
72
|
+
metadata: {}
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
requirements: []
|
88
|
+
rubyforge_project:
|
89
|
+
rubygems_version: 2.5.1
|
90
|
+
signing_key:
|
91
|
+
specification_version: 4
|
92
|
+
summary: "* Initialize project"
|
93
|
+
test_files: []
|
94
|
+
has_rdoc:
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
k�����N���'#�О�dz�}k��N�^�"g�>�xADf��<c�!�j��,���lHt�&Uݗi]P��C�'*ՁL\�߇�@��d�dCמQN\.i����tl�%���B���#�X���v�Y���j�,%�6���E��Ak����jҕ����I���:SV�o[�}����%�D/�A|M�I��
|