UNPKG

hypertune

Version:

[Hypertune](https://www.hypertune.com/) is the most flexible platform for feature flags, A/B testing, analytics and app configuration. Built with full end-to-end type-safety, Git-style version control and local, synchronous, in-memory flag evaluation. Opt

32 lines 1.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = calculateBayesianProbability; const logbeta_1 = __importDefault(require("./logbeta")); function probabilityBbeatsA(successA, failureA, successB, failureB) { let total = 0.0; for (let i = 0; i < successB; i += 1) { total += Math.exp((0, logbeta_1.default)(successA + i, failureB + failureA) - Math.log(failureB + i) - (0, logbeta_1.default)(1 + i, failureB) - (0, logbeta_1.default)(successA, failureA)); } return total; } function calculateBayesianProbability(successes, failures, controlIndex) { if (controlIndex < 0 || controlIndex >= successes.length || controlIndex >= failures.length) { return null; } const numArms = successes.length; const probabilities = Array(numArms).fill(0); for (let i = 0; i < numArms; i += 1) { const probIbeatsControl = probabilityBbeatsA(successes[controlIndex] + 1, failures[controlIndex] + 1, successes[i] + 1, failures[i] + 1); probabilities[i] = probIbeatsControl; } return probabilities; } //# sourceMappingURL=calculateBayesianProbability.js.map