The bound is only valid for epsilon below one, which is checked rather than assumed; the noise is drawn from the deterministic inverse-normal stream so the released value is reproducible across language arms.
Details
Formula: M(D) = f(D) + N(0, sigma^2) with sigma = sqrt(2 log(1.25/delta)) Delta_2 f / epsilon.
References
Dwork and Roth (2014), The Algorithmic Foundations of Differential Privacy, Foundations and Trends in Theoretical Computer Science 9(3-4):211-407, Theorem A.1. doi:10.1561/0400000042
Examples
Gaussm(c(1, 2, 3), l2_sens = 1, epsilon = 0.5, delta = 1e-5)
#> $estimate
#> [1] -5.535543
#>
#> $released
#> [1] -5.535543 8.535543 -8.146437
#>
#> $noise
#> [1] -6.535543 6.535543 -11.146437
#>
#> $sigma
#> [1] 9.689611
#>
#> $c
#> [1] 4.844805
#>
#> $epsilon
#> [1] 0.5
#>
#> $delta
#> [1] 1e-05
#>
#> $n
#> [1] 3
#>
#> $method
#> [1] "f(D) + N(0, sigma^2) with sigma = sqrt(2 ln(1.25/delta)) Delta_2 f / eps, Dwork & Roth (2014) Thm A.1"
#>
#> attr(,"class")
#> [1] "morie_rich_result" "list"
