mirror of
https://github.com/nikdoof/vsphere-influxdb-go.git
synced 2025-12-19 21:49:21 +00:00
add vendoring with go dep
This commit is contained in:
31
vendor/github.com/influxdata/influxdb/etc/burn-in/random_gaussian.rb
generated
vendored
Normal file
31
vendor/github.com/influxdata/influxdb/etc/burn-in/random_gaussian.rb
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
class RandomGaussian
|
||||
def initialize(mean, stddev, rand_helper = lambda { Kernel.rand })
|
||||
@rand_helper = rand_helper
|
||||
@mean = mean
|
||||
@stddev = stddev
|
||||
@valid = false
|
||||
@next = 0
|
||||
end
|
||||
|
||||
def rand
|
||||
if @valid then
|
||||
@valid = false
|
||||
return @next
|
||||
else
|
||||
@valid = true
|
||||
x, y = self.class.gaussian(@mean, @stddev, @rand_helper)
|
||||
@next = y
|
||||
return x
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def self.gaussian(mean, stddev, rand)
|
||||
theta = 2 * Math::PI * rand.call
|
||||
rho = Math.sqrt(-2 * Math.log(1 - rand.call))
|
||||
scale = stddev * rho
|
||||
x = mean + scale * Math.cos(theta)
|
||||
y = mean + scale * Math.sin(theta)
|
||||
return x, y
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user