t_lib 0.1.0 → 0.1.0.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
  SHA1:
3
- metadata.gz: 71a976dc879dcb427fc7547d10efa0b3b9894924
4
- data.tar.gz: 13889f6b40136de79fce29832389def051ba3772
3
+ metadata.gz: 9821928a9b695eb9a02d9508c512dc82baa21119
4
+ data.tar.gz: 815e887eeba7749e2a80aafb3944bb20898e8d4b
5
5
  SHA512:
6
- metadata.gz: a6c04a9b669e1bd9c58d058bf82269822355626016ff91201a7224ce58562a6294000d8f0404b0ffb68bb9ced23933726a89c3be08049c5327e89b380eea5954
7
- data.tar.gz: cae4d1a937666d5a5f6eb6bfeb7118b94171f2e343d4d796699aa05a011800c88b5ca71566c8a0e47bf7356dbad1afbf949edb2d8dedb190a79019bbfcb51047
6
+ metadata.gz: 7a26f0ffcc3d7da5b84934772261a1919332dd6cbd56673b1693dfdb24317f4a015b6246eb96dfd0406c3350905d57ac9daf9936d2da71de6c289f0a876fa437
7
+ data.tar.gz: e28be8515a0263556be90f0c719e90d07c9d928619f60c2bcad2e7022f56b086ea73360500c8d3c183d7a81373f8afd21486eb2c7ba924b1d00eb5da98c82e9d
data/lib/t_lib/math.rb ADDED
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/ruby
2
+ # -*- encoding: utf-8 -*-
3
+
4
+ module TLib
5
+ module Math
6
+
7
+ #
8
+ # === gauusian distribution
9
+ # @todo
10
+ #
11
+ def gauusian(x, mu, sigma)
12
+ f1 = 1.0/(Math.sqrt(2.0*Math::PI)*Math.sqrt(sigma))
13
+ f2 = Math.exp(-(((x-mu)**2)/((2.0*sigma))))
14
+ return f1 * f2
15
+ end
16
+
17
+ #
18
+ # === gauusian distribution
19
+ # @todo
20
+ #
21
+ def gauusian_array(x, mu, sigma)
22
+ if x[0].size <= 1
23
+ x = x[0]
24
+ mu = mu[0]
25
+ sigma = sigma[0][0]
26
+ return gauusian(x, mu, sigma)
27
+ else
28
+ return gauusian_over_2dim(x, mu, sigma)
29
+ end
30
+ end
31
+
32
+
33
+ #
34
+ # === gauusian distribution over 2 dim version
35
+ #
36
+ def gauusian_over_2dim(x, mu, conv)
37
+ x = Matrix[x]
38
+ mu = Matrix[mu]
39
+ conv = Matrix[*conv]
40
+ f1 = 1.0/(((2.0 * Math::PI)**(@dim/2.0)) * ( conv.det**(0.5) ))
41
+ f2 = Math.exp((-1.0/2.0)*((x-mu) * conv.inverse * (x-mu).transpose)[0, 0])
42
+
43
+ return (f1 * f2)
44
+ end
45
+
46
+ #
47
+ # ===ボックス―ミューラー法をよる正規分布乱数発生
48
+ # @param mu flout 平均
49
+ # @param sigma flout 標準偏差
50
+ # @return ボックスミューラー法に従う正規分布に従う乱数を生成
51
+ #
52
+ def normal_rand(mu = 0,sigma = 1.0)
53
+ a, b = rand(), rand() ;
54
+ return (Math.sqrt(-2*Math.log(rand()))*Math.sin(2*Math::PI*rand()) * sigma) + mu
55
+ end
56
+
57
+ #
58
+ # === 指数分布に従った乱数を返す
59
+ #
60
+ def exp(ave=0.5)
61
+ x = rand() ;
62
+ y = rand() ;
63
+ while ((1.0/ave)*Math.exp(-(x/ave)) < y )
64
+ x = rand() ;
65
+ y = rand() ;
66
+ end
67
+ return x ;
68
+ end
69
+
70
+
71
+
72
+ #
73
+ # ===ポアソン分布に従う乱数を発生する
74
+ #
75
+ def poisson_rand(mu=0.0)
76
+ lambda = Math.exp(-mu)
77
+ k = 0
78
+ p = 1.0
79
+ while p >= lambda
80
+ p *= rand()
81
+ k += 1
82
+ end
83
+ return k - 1
84
+ end
85
+ def scale(x)
86
+ sum_each_vec = []
87
+ ave_list = []
88
+ std_list = []
89
+ x.each{|vec|
90
+ vec.each_with_index{|data, i|
91
+ sum_each_vec[i] = (sum_each_vec[i] == nil) ? data : sum_each_vec[i]+data
92
+ }
93
+ }
94
+ x[0].size.times{|i|
95
+ ave_list.push(sum_each_vec[i]/x.size)
96
+ }
97
+
98
+ sum_each_vec = []
99
+ x.each{|vec|
100
+ vec.each_with_index{|data, i|
101
+ sum_each_vec[i] = (sum_each_vec[i] == nil) ? (ave_list[i]-data)**2 : (sum_each_vec[i]+(ave_list[i]-data)**2)
102
+ }
103
+ }
104
+ x[0].size.times{|i|
105
+ std_list.push(Math.sqrt(sum_each_vec[i]/x.size))
106
+ }
107
+
108
+ scaled_x = []
109
+ x.each_with_index{|vec, i|
110
+ scaled_x[i] ||= []
111
+ vec.each_with_index{|data, j|
112
+ scaled_x[i][j] ||= (data-ave_list[j])/std_list[j]
113
+ }
114
+ }
115
+ return scaled_x
116
+ end
117
+
118
+ end
119
+ end
data/lib/t_lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TLib
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.0.1"
3
3
  end
data/lib/t_lib.rb CHANGED
@@ -2,9 +2,9 @@ require "t_lib/version"
2
2
 
3
3
  module TLib
4
4
  # Your code goes here...
5
- self.write_json(file_name, data) {
5
+ def self.write_json(file_name, data)
6
6
  File.open(file_name) do |file|
7
7
  JSON.dump(data, file)
8
8
  end
9
- }
9
+ end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: t_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - tcom
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-24 00:00:00.000000000 Z
11
+ date: 2017-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,6 +70,7 @@ files:
70
70
  - bin/console
71
71
  - bin/setup
72
72
  - lib/t_lib.rb
73
+ - lib/t_lib/math.rb
73
74
  - lib/t_lib/version.rb
74
75
  - t_lib.gemspec
75
76
  homepage: https://github.com/Tcom242242/t_lib