26 lines
576 B
PL/PgSQL
26 lines
576 B
PL/PgSQL
-- AlterTable
|
|
ALTER TABLE "users" ADD COLUMN "upvoteTrust" DOUBLE PRECISION NOT NULL DEFAULT 0;
|
|
|
|
CREATE OR REPLACE FUNCTION confidence(successes FLOAT, trials FLOAT, z FLOAT)
|
|
RETURNS FLOAT
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
DECLARE
|
|
p FLOAT;
|
|
lhand FLOAT;
|
|
rhand FLOAT;
|
|
under FLOAT;
|
|
BEGIN
|
|
IF trials = 0 THEN
|
|
RETURN 0;
|
|
END IF;
|
|
|
|
p := successes / trials;
|
|
lhand := p + 1 / (2 * trials) * z * z;
|
|
rhand := z * sqrt(p * (1 - p) / trials + z * z / (4 * trials * trials));
|
|
under := 1 + 1 / trials * z * z;
|
|
|
|
RETURN (lhand - rhand) / under;
|
|
END;
|
|
$$;
|