victory 0.2.0 → 0.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.
@@ -0,0 +1,229 @@
1
+ /* Exact-width integer types
2
+ * Portable Snippets - https://gitub.com/nemequ/portable-snippets
3
+ * Created by Evan Nemerson <evan@nemerson.com>
4
+ *
5
+ * To the extent possible under law, the authors have waived all
6
+ * copyright and related or neighboring rights to this code. For
7
+ * details, see the Creative Commons Zero 1.0 Universal license at
8
+ * https://creativecommons.org/publicdomain/zero/1.0/
9
+ *
10
+ * This header tries to define psnip_(u)int(8|16|32|64)_t to
11
+ * appropriate types given your system. For most systems this means
12
+ * including <stdint.h> and adding a few preprocessor definitions.
13
+ *
14
+ * If you prefer, you can define any necessary types yourself.
15
+ * Snippets in this repository which rely on these types will not
16
+ * attempt to include this header if you have already defined the
17
+ * types it uses.
18
+ */
19
+
20
+ #if !defined(PSNIP_EXACT_INT_H)
21
+ # define PSNIP_EXACT_INT_H
22
+ # if !defined(PSNIP_EXACT_INT_HAVE_STDINT)
23
+ # if defined(_STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
24
+ # define PSNIP_EXACT_INT_HAVE_STDINT
25
+ # elif defined(__has_include)
26
+ # if __has_include(<stdint.h>)
27
+ # define PSNIP_EXACT_INT_HAVE_STDINT
28
+ # endif
29
+ # elif \
30
+ defined(HAVE_STDINT_H) || \
31
+ defined(_STDINT_H_INCLUDED) || \
32
+ defined(_STDINT_H) || \
33
+ defined(_STDINT_H_)
34
+ # define PSNIP_EXACT_INT_HAVE_STDINT
35
+ # elif \
36
+ (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))) || \
37
+ (defined(_MSC_VER) && (_MSC_VER >= 1600)) || \
38
+ (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x570)) || \
39
+ (defined(__WATCOMC__) && (__WATCOMC__ >= 1250))
40
+ # define PSNIP_EXACT_INT_HAVE_STDINT
41
+ # endif
42
+ # endif
43
+
44
+ # if \
45
+ defined(__INT8_TYPE__) && defined(__INT16_TYPE__) && defined(__INT32_TYPE__) && defined(__INT64_TYPE__) && \
46
+ defined(__UINT8_TYPE__) && defined(__UINT16_TYPE__) && defined(__UINT32_TYPE__) && defined(__UINT64_TYPE__)
47
+ # define psnip_int8_t __INT8_TYPE__
48
+ # define psnip_int16_t __INT16_TYPE__
49
+ # define psnip_int32_t __INT32_TYPE__
50
+ # define psnip_int64_t __INT64_TYPE__
51
+ # define psnip_uint8_t __UINT8_TYPE__
52
+ # define psnip_uint16_t __UINT16_TYPE__
53
+ # define psnip_uint32_t __UINT32_TYPE__
54
+ # define psnip_uint64_t __UINT64_TYPE__
55
+ # elif defined(PSNIP_EXACT_INT_HAVE_STDINT)
56
+ # include <stdint.h>
57
+ # if !defined(psnip_int8_t)
58
+ # define psnip_int8_t int8_t
59
+ # endif
60
+ # if !defined(psnip_uint8_t)
61
+ # define psnip_uint8_t uint8_t
62
+ # endif
63
+ # if !defined(psnip_int16_t)
64
+ # define psnip_int16_t int16_t
65
+ # endif
66
+ # if !defined(psnip_uint16_t)
67
+ # define psnip_uint16_t uint16_t
68
+ # endif
69
+ # if !defined(psnip_int32_t)
70
+ # define psnip_int32_t int32_t
71
+ # endif
72
+ # if !defined(psnip_uint32_t)
73
+ # define psnip_uint32_t uint32_t
74
+ # endif
75
+ # if !defined(psnip_int64_t)
76
+ # define psnip_int64_t int64_t
77
+ # endif
78
+ # if !defined(psnip_uint64_t)
79
+ # define psnip_uint64_t uint64_t
80
+ # endif
81
+ # elif defined(_MSC_VER)
82
+ # if !defined(psnip_int8_t)
83
+ # define psnip_int8_t __int8
84
+ # endif
85
+ # if !defined(psnip_uint8_t)
86
+ # define psnip_uint8_t unsigned __int8
87
+ # endif
88
+ # if !defined(psnip_int16_t)
89
+ # define psnip_int16_t __int16
90
+ # endif
91
+ # if !defined(psnip_uint16_t)
92
+ # define psnip_uint16_t unsigned __int16
93
+ # endif
94
+ # if !defined(psnip_int32_t)
95
+ # define psnip_int32_t __int32
96
+ # endif
97
+ # if !defined(psnip_uint32_t)
98
+ # define psnip_uint32_t unsigned __int32
99
+ # endif
100
+ # if !defined(psnip_int64_t)
101
+ # define psnip_int64_t __int64
102
+ # endif
103
+ # if !defined(psnip_uint64_t)
104
+ # define psnip_uint64_t unsigned __int64
105
+ # endif
106
+ # else
107
+ # include <limits.h>
108
+ # if !defined(psnip_int8_t)
109
+ # if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-127-1)) && (CHAR_MAX == 127)
110
+ # define psnip_int8_t char
111
+ # elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-127-1)) && (SHRT_MAX == 127)
112
+ # define psnip_int8_t short
113
+ # elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-127-1)) && (INT_MAX == 127)
114
+ # define psnip_int8_t int
115
+ # elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-127-1)) && (LONG_MAX == 127)
116
+ # define psnip_int8_t long
117
+ # elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-127-1)) && (LLONG_MAX == 127)
118
+ # define psnip_int8_t long long
119
+ # else
120
+ # error Unable to locate 8-bit signed integer type.
121
+ # endif
122
+ # endif
123
+ # if !defined(psnip_uint8_t)
124
+ # if defined(UCHAR_MAX) && (UCHAR_MAX == 255)
125
+ # define psnip_uint8_t unsigned char
126
+ # elif defined(USHRT_MAX) && (USHRT_MAX == 255)
127
+ # define psnip_uint8_t unsigned short
128
+ # elif defined(UINT_MAX) && (UINT_MAX == 255)
129
+ # define psnip_uint8_t unsigned int
130
+ # elif defined(ULONG_MAX) && (ULONG_MAX == 255)
131
+ # define psnip_uint8_t unsigned long
132
+ # elif defined(ULLONG_MAX) && (ULLONG_MAX == 255)
133
+ # define psnip_uint8_t unsigned long long
134
+ # else
135
+ # error Unable to locate 8-bit unsigned integer type.
136
+ # endif
137
+ # endif
138
+ # if !defined(psnip_int16_t)
139
+ # if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-32767-1)) && (CHAR_MAX == 32767)
140
+ # define psnip_int16_t char
141
+ # elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-32767-1)) && (SHRT_MAX == 32767)
142
+ # define psnip_int16_t short
143
+ # elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-32767-1)) && (INT_MAX == 32767)
144
+ # define psnip_int16_t int
145
+ # elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-32767-1)) && (LONG_MAX == 32767)
146
+ # define psnip_int16_t long
147
+ # elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-32767-1)) && (LLONG_MAX == 32767)
148
+ # define psnip_int16_t long long
149
+ # else
150
+ # error Unable to locate 16-bit signed integer type.
151
+ # endif
152
+ # endif
153
+ # if !defined(psnip_uint16_t)
154
+ # if defined(UCHAR_MAX) && (UCHAR_MAX == 65535)
155
+ # define psnip_uint16_t unsigned char
156
+ # elif defined(USHRT_MAX) && (USHRT_MAX == 65535)
157
+ # define psnip_uint16_t unsigned short
158
+ # elif defined(UINT_MAX) && (UINT_MAX == 65535)
159
+ # define psnip_uint16_t unsigned int
160
+ # elif defined(ULONG_MAX) && (ULONG_MAX == 65535)
161
+ # define psnip_uint16_t unsigned long
162
+ # elif defined(ULLONG_MAX) && (ULLONG_MAX == 65535)
163
+ # define psnip_uint16_t unsigned long long
164
+ # else
165
+ # error Unable to locate 16-bit unsigned integer type.
166
+ # endif
167
+ # endif
168
+ # if !defined(psnip_int32_t)
169
+ # if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-2147483647-1)) && (CHAR_MAX == 2147483647)
170
+ # define psnip_int32_t char
171
+ # elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-2147483647-1)) && (SHRT_MAX == 2147483647)
172
+ # define psnip_int32_t short
173
+ # elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-2147483647-1)) && (INT_MAX == 2147483647)
174
+ # define psnip_int32_t int
175
+ # elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-2147483647-1)) && (LONG_MAX == 2147483647)
176
+ # define psnip_int32_t long
177
+ # elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-2147483647-1)) && (LLONG_MAX == 2147483647)
178
+ # define psnip_int32_t long long
179
+ # else
180
+ # error Unable to locate 32-bit signed integer type.
181
+ # endif
182
+ # endif
183
+ # if !defined(psnip_uint32_t)
184
+ # if defined(UCHAR_MAX) && (UCHAR_MAX == 4294967295)
185
+ # define psnip_uint32_t unsigned char
186
+ # elif defined(USHRT_MAX) && (USHRT_MAX == 4294967295)
187
+ # define psnip_uint32_t unsigned short
188
+ # elif defined(UINT_MAX) && (UINT_MAX == 4294967295)
189
+ # define psnip_uint32_t unsigned int
190
+ # elif defined(ULONG_MAX) && (ULONG_MAX == 4294967295)
191
+ # define psnip_uint32_t unsigned long
192
+ # elif defined(ULLONG_MAX) && (ULLONG_MAX == 4294967295)
193
+ # define psnip_uint32_t unsigned long long
194
+ # else
195
+ # error Unable to locate 32-bit unsigned integer type.
196
+ # endif
197
+ # endif
198
+ # if !defined(psnip_int64_t)
199
+ # if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-9223372036854775807LL-1)) && (CHAR_MAX == 9223372036854775807LL)
200
+ # define psnip_int64_t char
201
+ # elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-9223372036854775807LL-1)) && (SHRT_MAX == 9223372036854775807LL)
202
+ # define psnip_int64_t short
203
+ # elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-9223372036854775807LL-1)) && (INT_MAX == 9223372036854775807LL)
204
+ # define psnip_int64_t int
205
+ # elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-9223372036854775807LL-1)) && (LONG_MAX == 9223372036854775807LL)
206
+ # define psnip_int64_t long
207
+ # elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-9223372036854775807LL-1)) && (LLONG_MAX == 9223372036854775807LL)
208
+ # define psnip_int64_t long long
209
+ # else
210
+ # error Unable to locate 64-bit signed integer type.
211
+ # endif
212
+ # endif
213
+ # if !defined(psnip_uint64_t)
214
+ # if defined(UCHAR_MAX) && (UCHAR_MAX == 18446744073709551615ULL)
215
+ # define psnip_uint64_t unsigned char
216
+ # elif defined(USHRT_MAX) && (USHRT_MAX == 18446744073709551615ULL)
217
+ # define psnip_uint64_t unsigned short
218
+ # elif defined(UINT_MAX) && (UINT_MAX == 18446744073709551615ULL)
219
+ # define psnip_uint64_t unsigned int
220
+ # elif defined(ULONG_MAX) && (ULONG_MAX == 18446744073709551615ULL)
221
+ # define psnip_uint64_t unsigned long
222
+ # elif defined(ULLONG_MAX) && (ULLONG_MAX == 18446744073709551615ULL)
223
+ # define psnip_uint64_t unsigned long long
224
+ # else
225
+ # error Unable to locate 64-bit unsigned integer type.
226
+ # endif
227
+ # endif
228
+ # endif
229
+ #endif
@@ -0,0 +1,4 @@
1
+ require 'mkmf'
2
+ extension_name = "CBitset"
3
+ dir_config(extension_name)
4
+ create_makefile(extension_name)
@@ -1,4 +1,4 @@
1
1
  require 'mkmf'
2
- extension_name = "XORList"
2
+ extension_name = "CXORList"
3
3
  dir_config(extension_name)
4
4
  create_makefile(extension_name)
@@ -111,7 +111,7 @@ static VALUE xor_list_each(VALUE self) {
111
111
  static VALUE list;
112
112
  static VALUE containers;
113
113
 
114
- void Init_XORList() {
114
+ void Init_CXORList() {
115
115
  containers = rb_define_module("Containers");
116
116
  list = rb_define_class_under(containers, "XORList", rb_cObject);
117
117
  rb_define_alloc_func(list, xor_list_alloc);
data/extensions.rb ADDED
@@ -0,0 +1,13 @@
1
+ Victory::Extension = Struct.new(:path, :name)
2
+ def extensions
3
+ [
4
+ Victory::Extension.new('algorithms/string', 'CString'),
5
+ Victory::Extension.new('containers/bitset', 'CBitset'),
6
+ Victory::Extension.new('containers/deque', 'CDeque'),
7
+ Victory::Extension.new('containers/bst', 'CBst'),
8
+ Victory::Extension.new('containers/rbtree_map', 'CRBTreeMap'),
9
+ Victory::Extension.new('containers/splaytree_map', 'CSplayTreeMap'),
10
+ Victory::Extension.new('containers/xor_list', 'CXORList'),
11
+ ]
12
+ end
13
+
@@ -0,0 +1,26 @@
1
+ module Greedy
2
+ module Solution
3
+ attr_reader :score, :next_solutions
4
+ end
5
+
6
+ def self.init(solution)
7
+ Engine.new(solution)
8
+ end
9
+
10
+ class Engine
11
+ def initialize(solution)
12
+ @initial_solution = solution
13
+ @solutions_history = [@initial_solution]
14
+ end
15
+
16
+ def run(iterations)
17
+ iterations.times do
18
+ @solutions_history << @solutions_history[-1].next_solutions.max_by { |solution| solution.score }
19
+ end
20
+ end
21
+
22
+ def current_solution
23
+ @solutions_history[-1]
24
+ end
25
+ end
26
+ end
@@ -331,7 +331,7 @@ module Algorithms::Sort
331
331
  pivot2 = container[right]
332
332
  # pointers
333
333
  less = left + 1
334
- great = right -1
334
+ great = right - 1
335
335
  # sorting
336
336
  k = less
337
337
  while k <= great
@@ -0,0 +1,48 @@
1
+ require "CBitset"
2
+
3
+ =begin
4
+ Copyright (c) 2011 Tyler McMullen
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ =end
25
+
26
+ class Containers::Bitset
27
+
28
+ # Return a string that represents this bitset packed into 8-bit
29
+ # characters. The first 3 bits represent the number of padding bits
30
+ # in the final byte of the string.
31
+
32
+ # You could make a good case that this is redundant with
33
+ # Marshal.dump and Marshal.load, but it does save a few bytes.
34
+ def pack
35
+ # Number of bits of zero padding in this representation.
36
+ padding_bits = (size+3) & 7
37
+ padding_bits = (padding_bits == 0) ? 0 : (8 - padding_bits)
38
+ [("%03b" % padding_bits) + self.to_s].pack("b*")
39
+ end
40
+
41
+ # Convert a string created using the pack method back into a bitset.
42
+ def self.unpack str
43
+ bits = str.unpack("b*")[0]
44
+ padding_bits = bits[0...3].to_i(2)
45
+ from_s(bits[3 .. -1 - padding_bits])
46
+ end
47
+
48
+ end
@@ -0,0 +1,3 @@
1
+ require 'CXORList'
2
+
3
+ class Containers::XORList; end
@@ -1,3 +1,3 @@
1
1
  module Victory
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/victory.rb CHANGED
@@ -1,18 +1,12 @@
1
1
  require "victory/version"
2
2
 
3
- module Victory
4
- class Error < StandardError; end
5
- # Your code goes here...
6
- end
7
-
8
3
  module Algorithms; end
9
4
  module Containers; end
10
5
 
11
- require 'XORList'
12
-
13
6
  require 'algorithms/search'
14
7
  require 'algorithms/sort'
15
8
  require 'algorithms/string'
9
+ require 'algorithms/greedy'
16
10
  require 'containers/prefix_tree'
17
11
  require 'containers/heap'
18
12
  require 'containers/stack'
@@ -26,6 +20,8 @@ require 'containers/trie'
26
20
  require 'containers/kd_tree'
27
21
  require 'containers/tuple'
28
22
  require 'containers/list'
23
+ require 'containers/bitset'
24
+ require 'containers/xor_list'
29
25
  require 'io_helpers/reader'
30
26
  require 'io_helpers/writer'
31
27
  require 'include_rgl'
@@ -35,4 +31,6 @@ Containers::Set = Set
35
31
  require 'ostruct'
36
32
  Containers::OpenStruct = OpenStruct
37
33
  require 'matrix'
38
- Containers::Matrix = Matrix
34
+ Containers::Matrix = Matrix
35
+ require 'concurrent-ruby'
36
+ Containers::Concurrent = Concurrent
data/victory.gemspec CHANGED
@@ -1,7 +1,7 @@
1
-
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'victory/version'
4
+ require_relative 'extensions'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'victory'
@@ -25,19 +25,13 @@ Gem::Specification.new do |spec|
25
25
  spec.bindir = 'exe'
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ['lib', 'ext']
28
- spec.extensions = [
29
- 'ext/algorithms/string/extconf.rb',
30
- 'ext/containers/bst/extconf.rb',
31
- 'ext/containers/deque/extconf.rb',
32
- 'ext/containers/rbtree_map/extconf.rb',
33
- 'ext/containers/splaytree_map/extconf.rb',
34
- 'ext/containers/xor_list/extconf.rb'
35
- ]
28
+ spec.extensions = extensions.map { |extension| "ext/#{extension.path}/extconf.rb" }
36
29
 
37
- spec.add_development_dependency 'bundler', '~> 1.17'
30
+ spec.add_development_dependency 'bundler', '~> 2.1'
38
31
  spec.add_development_dependency 'minitest', '~> 5.0'
39
32
  spec.add_development_dependency 'rake', '~> 10.0'
40
33
  spec.add_development_dependency 'rake-compiler'
41
34
  spec.add_development_dependency 'rgl', '~> 0.5.4'
42
35
  spec.add_development_dependency 'rspec'
36
+ spec.add_development_dependency 'concurrent-ruby', '~> 1.1.6'
43
37
  end
metadata CHANGED
@@ -1,38 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: victory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnold Szederjesi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-30 00:00:00.000000000 Z
11
+ date: 2020-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
+ prerelease: false
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: '1.17'
20
+ version: '2.1'
20
21
  type: :development
21
- prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
+ prerelease: false
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
32
  - - "~>"
32
33
  - !ruby/object:Gem::Version
33
34
  version: '5.0'
34
35
  type: :development
35
- prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
@@ -40,13 +40,13 @@ dependencies:
40
40
  version: '5.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
+ prerelease: false
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
46
  - - "~>"
46
47
  - !ruby/object:Gem::Version
47
48
  version: '10.0'
48
49
  type: :development
49
- prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
@@ -54,13 +54,13 @@ dependencies:
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake-compiler
57
+ prerelease: false
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
60
  - - ">="
60
61
  - !ruby/object:Gem::Version
61
62
  version: '0'
62
63
  type: :development
63
- prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
@@ -68,13 +68,13 @@ dependencies:
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rgl
71
+ prerelease: false
71
72
  requirement: !ruby/object:Gem::Requirement
72
73
  requirements:
73
74
  - - "~>"
74
75
  - !ruby/object:Gem::Version
75
76
  version: 0.5.4
76
77
  type: :development
77
- prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
@@ -82,26 +82,41 @@ dependencies:
82
82
  version: 0.5.4
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
+ prerelease: false
85
86
  requirement: !ruby/object:Gem::Requirement
86
87
  requirements:
87
88
  - - ">="
88
89
  - !ruby/object:Gem::Version
89
90
  version: '0'
90
91
  type: :development
91
- prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: concurrent-ruby
99
+ prerelease: false
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: 1.1.6
105
+ type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.1.6
97
111
  description:
98
112
  email:
99
113
  - szederjesiarnold@gmail.com
100
114
  executables: []
101
115
  extensions:
102
116
  - ext/algorithms/string/extconf.rb
103
- - ext/containers/bst/extconf.rb
117
+ - ext/containers/bitset/extconf.rb
104
118
  - ext/containers/deque/extconf.rb
119
+ - ext/containers/bst/extconf.rb
105
120
  - ext/containers/rbtree_map/extconf.rb
106
121
  - ext/containers/splaytree_map/extconf.rb
107
122
  - ext/containers/xor_list/extconf.rb
@@ -121,6 +136,11 @@ files:
121
136
  - ext/algorithms/string/LICENSE.md
122
137
  - ext/algorithms/string/extconf.rb
123
138
  - ext/algorithms/string/string.c
139
+ - ext/containers/bitset/LICENSE.txt
140
+ - ext/containers/bitset/bitset.c
141
+ - ext/containers/bitset/builtin.h
142
+ - ext/containers/bitset/exact-int.h
143
+ - ext/containers/bitset/extconf.rb
124
144
  - ext/containers/bst/LICENSE.md
125
145
  - ext/containers/bst/bst.c
126
146
  - ext/containers/bst/extconf.rb
@@ -135,9 +155,12 @@ files:
135
155
  - ext/containers/splaytree_map/splaytree.c
136
156
  - ext/containers/xor_list/extconf.rb
137
157
  - ext/containers/xor_list/xor_list.c
158
+ - extensions.rb
159
+ - lib/algorithms/greedy.rb
138
160
  - lib/algorithms/search.rb
139
161
  - lib/algorithms/sort.rb
140
162
  - lib/algorithms/string.rb
163
+ - lib/containers/bitset.rb
141
164
  - lib/containers/deque.rb
142
165
  - lib/containers/heap.rb
143
166
  - lib/containers/kd_tree.rb
@@ -151,6 +174,7 @@ files:
151
174
  - lib/containers/suffix_array.rb
152
175
  - lib/containers/trie.rb
153
176
  - lib/containers/tuple.rb
177
+ - lib/containers/xor_list.rb
154
178
  - lib/include_rgl.rb
155
179
  - lib/io_helpers/reader.rb
156
180
  - lib/io_helpers/writer.rb
@@ -179,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
203
  - !ruby/object:Gem::Version
180
204
  version: '0'
181
205
  requirements: []
182
- rubygems_version: 3.0.1
206
+ rubygems_version: 3.0.3
183
207
  signing_key:
184
208
  specification_version: 4
185
209
  summary: A gem providing all useful algorithms and data structures for programming