1 // Copyright (C) The Lightning Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
8 "golang.org/x/exp/rand"
9 "gonum.org/v1/gonum/stat/distuv"
12 var chisquared = distuv.ChiSquared{K: 1, Src: rand.NewSource(rand.Uint64())}
14 func pvalue(a, b []bool) float64 {
19 for ai, aval := range []bool{false, true} {
20 for bi, bval := range []bool{false, true} {
23 if a[i] == aval && b[i] == bval {
31 for ai := 0; ai < 2; ai++ {
32 for bi := 0; bi < 2; bi++ {
33 rowtotal := tab[ai*2] + tab[ai*2+1]
34 coltotal := tab[bi] + tab[2+bi]
35 exp := float64(rowtotal) * float64(coltotal) / float64(len(a))
37 d := float64(obs) - exp
41 return 1 - chisquared.CDF(sum)