differential-privacy
Version:
Implements Global Differential Privacy for almost any numeric function
15 lines • 700 B
JavaScript
;
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