Class: ActiveRecord::Relation
- Inherits:
-
Object
- Object
- ActiveRecord::Relation
- Defined in:
- lib/rails_elastic_sensitivity.rb
Constant Summary collapse
- EPS =
1- BETA =
EPS / (2 * (Math.log(2 / delta)))
Instance Method Summary collapse
- #compute_elastic_sensitivity(c, k, k_square, n) ⇒ Object
- #elastic_count ⇒ Object
- #laplace(scale) ⇒ Object
Instance Method Details
#compute_elastic_sensitivity(c, k, k_square, n) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/rails_elastic_sensitivity.rb', line 94 def compute_elastic_sensitivity(c, k, k_square, n) max = 0 n = 0 if k_square == 0 # MAX value is when k == 0 (0..n).each do |i| temp = (Math::E ** (-BETA*i)) * ((k_square * i **2 ) + (i * k) + c ) max = temp if temp > max end max end |
#elastic_count ⇒ Object
85 86 87 88 89 90 91 92 |
# File 'lib/rails_elastic_sensitivity.rb', line 85 def elastic_count es = Rails.cache.read("now_es") ture_result = self.count n = es.main_t.count elastic_sensitivity = compute_elastic_sensitivity(es.c, es.k, es.k_square, n) laplace_noise_scale = (2 * elastic_sensitivity) / EPS (ture_result + laplace(laplace_noise_scale)).abs end |
#laplace(scale) ⇒ Object
106 107 108 109 |
# File 'lib/rails_elastic_sensitivity.rb', line 106 def laplace(scale) u = 0.5 - rand(0.0..1.0) -(u <=> 0.0) * scale * Math.log(1 - (2 * (u).abs)) end |