Benchmark.bigo do |x|
!
x.generator do |size|
(1..size).to_a.shuffle # shuffled
end
!
x.report("rand#include?(size/2)") do |a, size|
a.include? (size / 2) # deterministic size
end
!
x.chart! 'shuffled_and_deterministic.html'
end
Slide 109
Slide 109 text
No content
Slide 110
Slide 110 text
Benchmark.bigo do |x|
!
x.generator do |size|
(1..size).to_a.shuffle # shuffled
end
!
x.report("rand#include?(size/2)") do |a, size|
a.include? (size / 2) # deterministic size
end
!
x.chart! 'shuffled_and_deterministic.html'
end
Slide 111
Slide 111 text
Benchmark.bigo do |x|
!
x.generator do |size|
(1..size).to_a.shuffle # shuffled
end
!
x.report("rand#include?(rand)") do |a, size|
a.include? rand(size) # randomized
end
!
x.chart! 'shuffled_and_random.html'
end
Slide 112
Slide 112 text
No content
Slide 113
Slide 113 text
Benchmark.bigo do |x|
x.generator do |size|
(1..size).to_a # not shuffled
end
!
x.report("ordered#include?(1)") do |a, size|
a.include? 1 # deterministic best case
end
!
x.report("ordered#include?(size)") do |a, size|
a.include? size # deterministic worst case
end
!
x.report("ordered#include?(rand)") do |a, size|
a.include? rand(size) # random average case
end
!
x.chart! 'not_shuffled.html'
end
Slide 114
Slide 114 text
No content
Slide 115
Slide 115 text
#FTUDBTF
PS
"WFSBHFDBTF
PS
8PSTUDBTF
Slide 116
Slide 116 text
5FSSBGPSNFS
A geometric toolkit for dealing with
geometry, geography, formats
Slide 117
Slide 117 text
$POWFY
)VMM
Slide 118
Slide 118 text
No content
Slide 119
Slide 119 text
+BSWJT
.BSDI
Slide 120
Slide 120 text
.POPUPOF
$IBJO
Slide 121
Slide 121 text
LON = -122.6764, LAT = 45.5165
!
def random_walk size
walk = [[LON, LAT]] # start in portland
!
size.times do
walk << walk.last.map {|i| i + rand(-100..100) / 10000.0 }
end
!
Terraformer::LineString.new(walk)
end
!
def circle size
size = 3 if size < 3
diam = [100, size].max
Terraformer::Circle.new([LON, LAT], diam, size).to_feature
end
Slide 122
Slide 122 text
@generator_name = :random_walk
!
# dynamically generates either
# a random walk or a circle
dynamic_generator = Proc.new {|size|
self.send(@generator_name, size)
}
!
def convex_hull obj, impl
Terraformer::ConvexHull.impl = impl
obj.convex_hull
end
Slide 123
Slide 123 text
Benchmark.bigo do |x|
x.generator &dynamic_generator
!
# sample each point for 20 seconds
x.time = 20
!
x.min_size = 200
x.step_size = 200
x.steps = 5
!
## reports on next slide
!
x.chart! 'terraformer.html'
end
"UUSJCVUJPOT
From The Noun Project:
Island by Athena Manolopoulos
Surfboard by Rachel Healey
Surf Board v1 by Sean D’Auria
Van by Okan Benn
Diamond by Ryan Beck
Beach Ball by Max Hancock
Turtle by im icons
Rabbit by Theresa Stoodley