UNPKG

differential-privacy

Version:

Implements Global Differential Privacy for almost any numeric function

15 lines 700 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.laplaceProbDistribution = void 0; var decimal_js_1 = require("decimal.js"); var ONE = new decimal_js_1.Decimal(1); var TWO = new decimal_js_1.Decimal(2); function laplaceProbDistribution(sensitivity, epsilon) { var scale = sensitivity.dividedBy(epsilon); var symmetricRandom = decimal_js_1.Decimal.random().minus(0.5); var sign = symmetricRandom.greaterThan(0) ? 1 : -1; return scale.times(sign) .times(decimal_js_1.Decimal.log(ONE.minus(TWO.times(decimal_js_1.Decimal.abs(symmetricRandom))))); } exports.laplaceProbDistribution = laplaceProbDistribution; //# sourceMappingURL=laplace.js.map