victory 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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