tatara 0.1.0 → 0.2.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.
@@ -0,0 +1,256 @@
1
+ # Tatara::IntArray
2
+ ## About
3
+
4
+ `Tatara::IntArray` is `Array` class like `static type programming lang`.
5
+
6
+ `Tatara::IntArray` use `Integer` value.
7
+ But, you can use `Float` for value.
8
+
9
+ ```ruby
10
+ @i = Tatara::IntArray.new
11
+ @i[0] = 42
12
+ # => Set value 42 for index of 0.
13
+ @i[1] = 8.4
14
+ # => Set value 8 for index of 1.
15
+ ```
16
+
17
+ But, can not use `String` for value.
18
+
19
+ ```ruby
20
+ @i = Tatara::IntArray.new
21
+ @i[0] = "42"
22
+ # => Error!
23
+ ```
24
+
25
+ ## Methods
26
+ ### Tatara::IntArray#new
27
+
28
+ Create new `Tatara::IntArray` instance.
29
+
30
+ ```ruby
31
+ @i = Tatara::IntArray.new
32
+ ```
33
+
34
+ ### Tatara::IntArray#\[\]
35
+
36
+ Access by index.
37
+
38
+ ```ruby
39
+ @i = Tatara::IntArray.new
40
+ @i[0] = 42
41
+ puts @i[0]
42
+ # => 42
43
+ ```
44
+
45
+
46
+ ### Tatara::IntArray#\[\]=
47
+
48
+ Set value by index.
49
+
50
+ ```ruby
51
+ @i = Tatara::IntArray.new
52
+ @i[0] = 42
53
+ # => Set value 42 for index of 0.
54
+ ```
55
+
56
+ ### Tatara::IntArray#push
57
+
58
+ Create new value on end of `Tatara::IntArray`.
59
+
60
+ ```ruby
61
+ @i = Tatara::IntArray.new
62
+ @i.push(42)
63
+ # => Set value 42 on end of `Tatara::IntArray`
64
+ ```
65
+
66
+ ### Tatara::IntArray#size
67
+
68
+ Size of `Tatara::IntArray`.
69
+
70
+ ```ruby
71
+ @i = Tatara::IntArray.new
72
+ puts @i.size
73
+ # => 0
74
+ @i.push(42)
75
+ puts @i.size
76
+ # => 1
77
+ ```
78
+
79
+ ### Tatara::IntArray#clear
80
+
81
+ Clear `Tatara::IntArray`.
82
+
83
+ ```ruby
84
+ @i = Tatara::IntArray.new
85
+ @i.push(42)
86
+ puts @i.size
87
+ # => 1
88
+ @i.clear
89
+ puts @i.size
90
+ # => 0
91
+ ```
92
+
93
+ ### Tatara::IntArray#operator<<
94
+
95
+ Create new value on end of `Tatara::IntArray`.
96
+
97
+ ```ruby
98
+ @i = Tatara::IntArray.new
99
+ @i << 42
100
+ # => Set value 42 on end of `Tatara::IntArray`
101
+ ```
102
+
103
+ ### Tatara::IntArray#map
104
+
105
+ `map` method for `Tatara::IntArray`.
106
+ It's likes `Array#map`
107
+
108
+ ```ruby
109
+ @i = Tatara::IntArray.new
110
+ (1..3).each{|i| @i << i }
111
+ # => Set new value's
112
+ @i.map{|i|
113
+ puts i
114
+ }
115
+ # => 1 2 3
116
+ ```
117
+
118
+ ### Tatara::IntArray#map!
119
+
120
+ `map!` method for `Tatara::IntArray`.
121
+ It's likes `Array#map!`
122
+
123
+ ```ruby
124
+ @i = Tatara::IntArray.new
125
+ (1..3).each{|i| @i << i }
126
+ # => Set new value's
127
+ @i.map!{|i| i * 2 }
128
+ @i.map{|i|
129
+ puts i
130
+ }
131
+ # => 2 4 6
132
+ ```
133
+
134
+ ### Tatara::IntArray#each
135
+
136
+ `each` method for `Tatara::IntArray`.
137
+ It's likes `Array#each`
138
+
139
+ ```ruby
140
+ @i = Tatara::IntArray.new
141
+ (1..3).each{|i| @i << i }
142
+ # => Set new value's
143
+ @i.each{|i|
144
+ puts i
145
+ }
146
+ # => 1 2 3
147
+ ```
148
+
149
+ ### Tatara::IntArray#each_with_index
150
+
151
+ `each_with_index` method for `Tatara::IntArray`.
152
+ It's likes `Array#each_with_index`
153
+
154
+ ```ruby
155
+ @i = Tatara::IntArray.new
156
+ (1..3).each{|i| @i << i }
157
+ # => Set new value's
158
+ @i.each_with_index{|v, i|
159
+ puts "#{i}:#{v}"
160
+ }
161
+ # => 1:1 2:2 3:3
162
+ ```
163
+
164
+ ### Tatara::IntArray#intersection
165
+
166
+ Intersection value's
167
+
168
+ ```ruby
169
+ @i1 = Tatara::IntArray.new
170
+ (1..10).each{|i| @i1 << i}
171
+ @i2 = Tatara::IntArray.new
172
+ (10..20).each{|i| @i2 << i}
173
+ @i = @i1.intersection @i2
174
+ # => [10]
175
+ ```
176
+
177
+ ### Tatara::IntArray#operator&
178
+
179
+ Intersection value's
180
+
181
+ ```ruby
182
+ @i1 = Tatara::IntArray.new
183
+ (1..10).each{|i| @i1 << i}
184
+ @i2 = Tatara::IntArray.new
185
+ (10..20).each{|i| @i2 << i}
186
+ @i = @i1 & @i2
187
+ # => [10]
188
+ ```
189
+
190
+ ### Tatara::IntArray#sort
191
+
192
+ Sort value's.
193
+
194
+ ```ruby
195
+ @i = Tatara::IntArray.new
196
+ [9, 1, 4].each{|i| @ << i }
197
+ @i = @i.sort
198
+ # => [1, 4, 9]
199
+ ```
200
+
201
+ ### Tatara::IntArray#sort!
202
+
203
+ Sort value's.
204
+
205
+ ```ruby
206
+ @i = Tatara::IntArray.new
207
+ [9, 1, 4].each{|i| @ << i }
208
+ @i.sort!
209
+ # => [1, 4, 9]
210
+ ```
211
+
212
+ ### Tatara::IntArray#reverse
213
+
214
+ Reverse value's.
215
+
216
+ ```ruby
217
+ @i = Tatara::IntArray.new
218
+ [9, 1, 4].each{|i| @i << i }
219
+ @i = @i.reverse
220
+ # => [4, 1, 9]
221
+ ```
222
+
223
+ ### Tatara::IntArray#reverse!
224
+
225
+ Reverse value's.
226
+
227
+ ```ruby
228
+ @i = Tatara::IntArray.new
229
+ [9, 1, 4].each{|i| @i << i }
230
+ @i.reverse!
231
+ # => [4, 1, 9]
232
+ ```
233
+
234
+ ### Tatara::IntArray#first
235
+
236
+ Get first value of `Tatara::IntArray`.
237
+
238
+ ```ruby
239
+ @i = Tatara::IntArray.new
240
+ (1..3).each{|i| @i << i }
241
+ # => Set new value's
242
+ puts @i.first
243
+ # => 1
244
+ ```
245
+
246
+ ### Tatara::IntArray#last
247
+
248
+ Get last value of `Tatara::IntArray`.
249
+
250
+ ```ruby
251
+ @i = Tatara::IntArray.new
252
+ (1..3).each{|i| @i << i }
253
+ # => Set new value's
254
+ puts @i.last
255
+ # => 3
256
+ ```
@@ -0,0 +1,52 @@
1
+ # Tatara::IntFloatMap
2
+ ## About
3
+
4
+ `Tatara::IntFloatMap` is `Map` class like `static type programming lang`.
5
+
6
+ `Tatara::IntFloatMap` used by `Integer` key, and `Float` value.
7
+ But, you can use `Float` for key & value.
8
+
9
+ ```ruby
10
+ @i = Tatara::IntFloatMap.new
11
+ @i[0] = 42
12
+ # => Key: 0, Value: 42.0
13
+ @i[10.0] = 8.4
14
+ # => Key: 10, Value: 8.4
15
+ ```
16
+
17
+ But, can not set `String`.
18
+
19
+ ```ruby
20
+ @i = Tatara::IntFloatMap.new
21
+ @i[0] = "42"
22
+ # => Error!
23
+ ```
24
+
25
+ ## Methods
26
+ ### Tatara::IntFloatMap#new
27
+
28
+ Create new `Tatara::IntFloatMap` instance.
29
+ ```ruby
30
+ @i = Tatara::IntFloatMap.new
31
+ ```
32
+
33
+ ### Tatara::IntFloatMap#\[\]
34
+
35
+ Access by key.
36
+
37
+ ```ruby
38
+ @i = Tatara::IntFloatMap.new
39
+ @i[0] = 4.2
40
+ puts @i[0]
41
+ # => 4.2
42
+ ```
43
+
44
+ ### Tatara::IntFloatMap#\[\]=
45
+
46
+ Set value by key.
47
+
48
+ ```ruby
49
+ @i = Tatara::IntFloatMap.new
50
+ @i[0] = 4.2
51
+ # => Set value is 4.2
52
+ ```
@@ -0,0 +1,52 @@
1
+ # Tatara::IntIntMap
2
+ ## About
3
+
4
+ `Tatara::IntIntMap` is `Map` class like `static type programming lang`.
5
+
6
+ `Tatara::IntIntMap` used by `Integer` key, and `Integer` value.
7
+ But, you can use `Float` for key & value.
8
+
9
+ ```ruby
10
+ @i = Tatara::IntIntMap.new
11
+ @i[0] = 42
12
+ # => Key: 0, Value: 42.
13
+ @i[10.0] = 8.4
14
+ # => Key: 10, Value: 8.
15
+ ```
16
+
17
+ But, can not set `String`.
18
+
19
+ ```ruby
20
+ @i = Tatara::IntIntMap.new
21
+ @i[0] = "42"
22
+ # => Error!
23
+ ```
24
+
25
+ ## Methods
26
+ ### Tatara::IntIntMap#new
27
+
28
+ Create new `Tatara::IntIntMap` instance.
29
+ ```ruby
30
+ @i = Tatara::IntIntMap.new
31
+ ```
32
+
33
+ ### Tatara::IntIntMap#\[\]
34
+
35
+ Access by key.
36
+
37
+ ```ruby
38
+ @i = Tatara::IntIntMap.new
39
+ @i[0] = 42
40
+ puts @i[0]
41
+ # => 42
42
+ ```
43
+
44
+ ### Tatara::IntIntMap#\[\]=
45
+
46
+ Set value by key.
47
+
48
+ ```ruby
49
+ @i = Tatara::IntIntMap.new
50
+ @i[0] = 42
51
+ # => Set value is 42.
52
+ ```
@@ -0,0 +1,52 @@
1
+ # Tatara::IntStringMap
2
+ ## About
3
+
4
+ `Tatara::IntStringMap` is `Map` class like `static type programming lang`.
5
+
6
+ `Tatara::IntStringMap` used by `Integer` key, and `String` value.
7
+ But, you can use `Float` for key & value.
8
+
9
+ ```ruby
10
+ @i = Tatara::IntStringMap.new
11
+ @i[0] = "42"
12
+ # => Key: 0, Value: "42".
13
+ @i[10.0] = "8.4"
14
+ # => Key: 10, Value: "8.4".
15
+ ```
16
+
17
+ But, can not set `Integer` & `Float` for value.
18
+
19
+ ```ruby
20
+ @i = Tatara::IntStringMap.new
21
+ @i[0] = 42
22
+ # => Error!
23
+ ```
24
+
25
+ ## Methods
26
+ ### Tatara::IntStringMap#new
27
+
28
+ Create new `Tatara::IntStringMap` instance.
29
+ ```ruby
30
+ @i = Tatara::IntStringMap.new
31
+ ```
32
+
33
+ ### Tatara::IntStringMap#\[\]
34
+
35
+ Access by key.
36
+
37
+ ```ruby
38
+ @i = Tatara::IntStringMap.new
39
+ @i[0] = "42"
40
+ puts @i[0]
41
+ # => "42"
42
+ ```
43
+
44
+ ### Tatara::IntStringMap#\[\]=
45
+
46
+ Set value by key.
47
+
48
+ ```ruby
49
+ @i = Tatara::IntStringMap.new
50
+ @i[0] = "42"
51
+ # => Set value is "42".
52
+ ```
@@ -0,0 +1,268 @@
1
+ # Tatara::IntVector
2
+ ## About
3
+
4
+ `Tatara::IntVector` is `Vector` class like `static type programming lang`.
5
+
6
+ `Tatara::IntVector` use `Integer` value.
7
+ But, you can use `Float` for value.
8
+
9
+ ```ruby
10
+ @i = Tatara::IntVector.new
11
+ @i[0] = 42
12
+ # => Set value 42 for index of 0.
13
+ @i[1] = 8.4
14
+ # => Set value 8 for index of 1.
15
+ ```
16
+
17
+ But, can not use `String` for value.
18
+
19
+ ```ruby
20
+ @i = Tatara::IntVector.new
21
+ @i[0] = "42"
22
+ # => Error!
23
+ ```
24
+
25
+ ## Methods
26
+ ### Tatara::IntVector#new
27
+
28
+ Create new `Tatara::IntVector` instance.
29
+
30
+ ```ruby
31
+ @i = Tatara::IntVector.new
32
+ ```
33
+
34
+ ### Tatara::IntVector#\[\]
35
+
36
+ Access by index.
37
+
38
+ ```ruby
39
+ @i = Tatara::IntVector.new
40
+ @i[0] = 42
41
+ puts @i[0]
42
+ # => 42
43
+ ```
44
+
45
+ ### Tatara::IntVector#\[\]=
46
+
47
+ Set value by index.
48
+
49
+ ```ruby
50
+ @i = Tatara::IntVector.new
51
+ @i[0] = 42
52
+ # => Set value 42 for index of 0.
53
+ ```
54
+
55
+ ### Tatara::IntVector#emplace_back
56
+
57
+ Create new value on end of `Tatara::intVector`.
58
+
59
+ ```ruby
60
+ @i = Tatara::IntVector.new
61
+ @i.emplace_back(42)
62
+ # => Set value 42 on end of `Tatara::intVector`
63
+ ```
64
+
65
+ ### Tatara::IntVector#size
66
+
67
+ Size of `Tatara::intVector`.
68
+
69
+ ```ruby
70
+ @i = Tatara::IntVector.new
71
+ puts @i.size
72
+ # => 0
73
+ @i.emplace_back(42)
74
+ puts @i.size
75
+ # => 1
76
+ ```
77
+
78
+ ### Tatara::IntVector#clear
79
+
80
+ Clear `Tatara::intVector`.
81
+
82
+ ```ruby
83
+ @i = Tatara::IntVector.new
84
+ @i.emplace_back(42)
85
+ puts @i.size
86
+ # => 1
87
+ @i.clear
88
+ puts @i.size
89
+ # => 0
90
+ ```
91
+
92
+ ### Tatara::IntVector#sum
93
+
94
+ Sum value's for `Tatara::IntVector`.
95
+
96
+ ```ruby
97
+ @i = Tatara::IntVector.new
98
+ (1..3).each{|i|
99
+ @i.emplace_back(i)
100
+ }
101
+ puts @i.sum
102
+ # => 6
103
+ ```
104
+
105
+ ### Tatara::IntVector#operator<<
106
+
107
+ Create new value on end of `Tatara::intVector`.
108
+
109
+ ```ruby
110
+ @i = Tatara::IntVector.new
111
+ @i << 42
112
+ # => Set value 42 on end of `Tatara::intVector`
113
+ ```
114
+
115
+ ### Tatara::IntVector#map
116
+
117
+ `map` method for `Tatara::IntVector`.
118
+ It's likes `Array#map`
119
+
120
+ ```ruby
121
+ @i = Tatara::IntVector.new
122
+ (1..3).each{|i| @i << i }
123
+ # => Set new value's
124
+ @i.map{|i|
125
+ puts i
126
+ }
127
+ # => 1 2 3
128
+ ```
129
+
130
+ ### Tatara::IntVector#map!
131
+
132
+ `map!` method for `Tatara::IntVector`.
133
+ It's likes `Array#map!`
134
+
135
+ ```ruby
136
+ @i = Tatara::IntVector.new
137
+ (1..3).each{|i| @i << i }
138
+ # => Set new value's
139
+ @i.map!{|i| i * 2 }
140
+ @i.map{|i|
141
+ puts i
142
+ }
143
+ # => 2 4 6
144
+ ```
145
+
146
+ ### Tatara::IntVector#each
147
+
148
+ `each` method for `Tatara::IntVector`.
149
+ It's likes `Array#each`
150
+
151
+ ```ruby
152
+ @i = Tatara::IntVector.new
153
+ (1..3).each{|i| @i << i }
154
+ # => Set new value's
155
+ @i.each{|i|
156
+ puts i
157
+ }
158
+ # => 1 2 3
159
+ ```
160
+
161
+ ### Tatara::IntVector#each_with_index
162
+
163
+ `each_with_index` method for `Tatara::IntVector`.
164
+ It's likes `Array#each_with_index`
165
+
166
+ ```ruby
167
+ @i = Tatara::IntVector.new
168
+ (1..3).each{|i| @i << i }
169
+ # => Set new value's
170
+ @i.each_with_index{|v, i|
171
+ puts "#{i}:#{v}"
172
+ }
173
+ # => 1:1 2:2 3:3
174
+ ```
175
+
176
+ ### Tatara::Intvector#intersection
177
+
178
+ Intersection value's
179
+
180
+ ```ruby
181
+ @i1 = Tatara::IntVector.new
182
+ (1..10).each{|i| @i1 << i}
183
+ @i2 = Tatara::IntVector.new
184
+ (10..20).each{|i| @i2 << i}
185
+ @i = @i1.intersection @i2
186
+ # => [10]
187
+ ```
188
+
189
+ ### Tatara::Intvector#operator&
190
+
191
+ Intersection value's
192
+
193
+ ```ruby
194
+ @i1 = Tatara::IntVector.new
195
+ (1..10).each{|i| @i1 << i}
196
+ @i2 = Tatara::IntVector.new
197
+ (10..20).each{|i| @i2 << i}
198
+ @i = @i1 & @i2
199
+ # => [10]
200
+ ```
201
+
202
+ ### Tatara::IntVector#sort
203
+
204
+ Sort value's.
205
+
206
+ ```ruby
207
+ @i = Tatara::IntVector.new
208
+ [9, 1, 4].each{|i| @i << i }
209
+ @i = @i.sort
210
+ # => [1, 4, 9]
211
+ ```
212
+
213
+ ### Tatara::IntVector#sort!
214
+
215
+ Sort value's.
216
+
217
+ ```ruby
218
+ @i = Tatara::IntVector.new
219
+ [9, 1, 4].each{|i| @i << i }
220
+ @i.sort!
221
+ # => [1, 4, 9]
222
+ ```
223
+
224
+ ### Tatara::IntVector#reverse
225
+
226
+ Reverse value's.
227
+
228
+ ```ruby
229
+ @i = Tatara::IntVector.new
230
+ [9, 1, 4].each{|i| @i << i }
231
+ @i = @i.reverse
232
+ # => [4, 1, 9]
233
+ ```
234
+
235
+ ### Tatara::IntVector#reverse!
236
+
237
+ Reverse value's.
238
+
239
+ ```ruby
240
+ @i = Tatara::IntVector.new
241
+ [9, 1, 4].each{|i| @i << i }
242
+ @i.reverse!
243
+ # => [4, 1, 9]
244
+ ```
245
+
246
+ ### Tatara::IntVector#first
247
+
248
+ Get first value of `Tatara::IntVector`.
249
+
250
+ ```ruby
251
+ @i = Tatara::IntVector.new
252
+ (1..3).each{|i| @i << i }
253
+ # => Set new value's
254
+ puts @i.first
255
+ # => 1
256
+ ```
257
+
258
+ ### Tatara::IntVector#last
259
+
260
+ Get last value of `Tatara::IntVector`.
261
+
262
+ ```ruby
263
+ @i = Tatara::IntVector.new
264
+ (1..3).each{|i| @i << i }
265
+ # => Set new value's
266
+ puts @i.last
267
+ # => 3
268
+ ```