contrek 1.4.0 → 1.4.2
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 +4 -4
- data/CHANGELOG.md +7 -1
- data/Gemfile.lock +4 -1
- data/PERFORMANCE.md +40 -4
- data/README.md +211 -59
- data/contrek.gemspec +1 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/ContrekApi.h +37 -11
- data/ext/cpp_polygon_finder/PolygonFinder/src/Tests.cpp +53 -144
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/RawBitmap.cpp +14 -2
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/RawBitmap.h +1 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/AsciiSource.cpp +69 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/AsciiSource.h +34 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/PngSource.cpp +108 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/PngSource.h +40 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/RasterSource.h +22 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/RasterStreamer.h +92 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/FinderUtils.cpp +6 -8
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/PolygonFinder.cpp +8 -2
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/PolygonFinder.h +4 -1
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/concurrent/Finder.cpp +7 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/concurrent/Poolable.h +1 -0
- data/ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/concurrent/Tile.cpp +3 -3
- data/ext/cpp_polygon_finder/cpp_polygon_finder.cpp +47 -0
- data/lib/contrek/bitmaps/bitmap.rb +2 -2
- data/lib/contrek/bitmaps/chunky_bitmap.rb +23 -8
- data/lib/contrek/bitmaps/png_bitmap.rb +4 -0
- data/lib/contrek/bitmaps/rgba_bitmap.rb +50 -0
- data/lib/contrek/bitmaps/streaming/raster_streamer.rb +66 -0
- data/lib/contrek/bitmaps/streaming/sources/ascii.rb +33 -0
- data/lib/contrek/bitmaps/streaming/sources/base.rb +27 -0
- data/lib/contrek/bitmaps/streaming/sources/png.rb +105 -0
- data/lib/contrek/finder/concurrent/finder.rb +5 -3
- data/lib/contrek/finder/polygon_finder.rb +8 -4
- data/lib/contrek/version.rb +1 -1
- data/lib/contrek.rb +5 -0
- metadata +26 -1
|
@@ -10,10 +10,13 @@ module Contrek
|
|
|
10
10
|
@options = {versus: :a}.merge(options)
|
|
11
11
|
sanitize_options
|
|
12
12
|
@source_bitmap = bitmap
|
|
13
|
+
@processing_height = (options[:processing_height] || bitmap.h).abs
|
|
14
|
+
raise ArgumentError, "Option processing_height must be less or equal than image height!" if @processing_height > bitmap.h
|
|
15
|
+
|
|
13
16
|
@matcher = matcher
|
|
14
17
|
|
|
15
18
|
@test_bitmap = test_bitmap
|
|
16
|
-
@node_cluster = NodeCluster.new(@
|
|
19
|
+
@node_cluster = NodeCluster.new(@processing_height, @options)
|
|
17
20
|
@reports = {}
|
|
18
21
|
|
|
19
22
|
# 1 finds matching blocks
|
|
@@ -51,10 +54,11 @@ module Contrek
|
|
|
51
54
|
groups_names: @node_cluster.root_nodes.map(&:name).join,
|
|
52
55
|
benchmarks: format_benchmarks,
|
|
53
56
|
width: @source_bitmap.w,
|
|
54
|
-
height: @
|
|
57
|
+
height: @processing_height,
|
|
55
58
|
treemap: (@node_cluster.treemap if @options.has_key?(:treemap)),
|
|
56
59
|
options: @ori_options,
|
|
57
|
-
versus: @options[:versus]
|
|
60
|
+
versus: @options[:versus],
|
|
61
|
+
number_of_threads: 0
|
|
58
62
|
}
|
|
59
63
|
Result.new(@node_cluster.polygons, metadata)
|
|
60
64
|
end
|
|
@@ -102,7 +106,7 @@ module Contrek
|
|
|
102
106
|
matching = false
|
|
103
107
|
min_x = start_x
|
|
104
108
|
max_x = start_x
|
|
105
|
-
@source_bitmap.scan(start_x: start_x, end_x: end_x) do |x, y, color|
|
|
109
|
+
@source_bitmap.scan(start_x: start_x, end_x: end_x, end_y: @processing_height) do |x, y, color|
|
|
106
110
|
# puts "#{x} #{y}"
|
|
107
111
|
if @matcher.match?(color) && matching == false
|
|
108
112
|
min_x = x
|
data/lib/contrek/version.rb
CHANGED
data/lib/contrek.rb
CHANGED
|
@@ -5,11 +5,16 @@ require "contrek/bitmaps/painting"
|
|
|
5
5
|
require "contrek/bitmaps/rendering"
|
|
6
6
|
require "contrek/bitmaps/bitmap"
|
|
7
7
|
require "contrek/bitmaps/chunky_bitmap"
|
|
8
|
+
require "contrek/bitmaps/rgba_bitmap"
|
|
8
9
|
require "contrek/bitmaps/png_bitmap"
|
|
9
10
|
require "contrek/bitmaps/raw_bitmap"
|
|
10
11
|
require "contrek/bitmaps/rgb_color"
|
|
11
12
|
require "contrek/bitmaps/rgb_cpp_color"
|
|
12
13
|
require "contrek/bitmaps/sample_generator"
|
|
14
|
+
require "contrek/bitmaps/streaming/raster_streamer"
|
|
15
|
+
require "contrek/bitmaps/streaming/sources/base"
|
|
16
|
+
require "contrek/bitmaps/streaming/sources/ascii"
|
|
17
|
+
require "contrek/bitmaps/streaming/sources/png"
|
|
13
18
|
require "contrek/shared/result"
|
|
14
19
|
require "contrek/finder/bounds"
|
|
15
20
|
require "contrek/finder/list"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: contrek
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.4.
|
|
4
|
+
version: 1.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Emanuele Cesaroni
|
|
@@ -99,6 +99,20 @@ dependencies:
|
|
|
99
99
|
- - "~>"
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
101
|
version: 1.3.5
|
|
102
|
+
- !ruby/object:Gem::Dependency
|
|
103
|
+
name: ffi
|
|
104
|
+
requirement: !ruby/object:Gem::Requirement
|
|
105
|
+
requirements:
|
|
106
|
+
- - "~>"
|
|
107
|
+
- !ruby/object:Gem::Version
|
|
108
|
+
version: '1.17'
|
|
109
|
+
type: :runtime
|
|
110
|
+
prerelease: false
|
|
111
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
112
|
+
requirements:
|
|
113
|
+
- - "~>"
|
|
114
|
+
- !ruby/object:Gem::Version
|
|
115
|
+
version: '1.17'
|
|
102
116
|
- !ruby/object:Gem::Dependency
|
|
103
117
|
name: rice
|
|
104
118
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -152,6 +166,12 @@ files:
|
|
|
152
166
|
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/RemoteFastPngBitmap.h
|
|
153
167
|
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/spng.c
|
|
154
168
|
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/spng.h
|
|
169
|
+
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/AsciiSource.cpp
|
|
170
|
+
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/AsciiSource.h
|
|
171
|
+
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/PngSource.cpp
|
|
172
|
+
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/PngSource.h
|
|
173
|
+
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/RasterSource.h
|
|
174
|
+
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/bitmaps/streaming/RasterStreamer.h
|
|
155
175
|
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/FinderUtils.cpp
|
|
156
176
|
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/FinderUtils.h
|
|
157
177
|
- ext/cpp_polygon_finder/PolygonFinder/src/polygon/finder/List.cpp
|
|
@@ -252,7 +272,12 @@ files:
|
|
|
252
272
|
- lib/contrek/bitmaps/rendering.rb
|
|
253
273
|
- lib/contrek/bitmaps/rgb_color.rb
|
|
254
274
|
- lib/contrek/bitmaps/rgb_cpp_color.rb
|
|
275
|
+
- lib/contrek/bitmaps/rgba_bitmap.rb
|
|
255
276
|
- lib/contrek/bitmaps/sample_generator.rb
|
|
277
|
+
- lib/contrek/bitmaps/streaming/raster_streamer.rb
|
|
278
|
+
- lib/contrek/bitmaps/streaming/sources/ascii.rb
|
|
279
|
+
- lib/contrek/bitmaps/streaming/sources/base.rb
|
|
280
|
+
- lib/contrek/bitmaps/streaming/sources/png.rb
|
|
256
281
|
- lib/contrek/cpp/cpp_concurrent_finder.rb
|
|
257
282
|
- lib/contrek/cpp/cpp_concurrent_horizontal_merger.rb
|
|
258
283
|
- lib/contrek/cpp/cpp_concurrent_merger.rb
|