From c4f926438dcb8abe805e910399940f79ff643c4b Mon Sep 17 00:00:00 2001 From: ziejd2 Date: Thu, 14 Sep 2017 15:39:41 -0500 Subject: Add files via upload --- sourcecodes/k-best/src/ls_XIC.c | 82 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sourcecodes/k-best/src/ls_XIC.c (limited to 'sourcecodes/k-best/src/ls_XIC.c') diff --git a/sourcecodes/k-best/src/ls_XIC.c b/sourcecodes/k-best/src/ls_XIC.c new file mode 100644 index 00000000..22d51d04 --- /dev/null +++ b/sourcecodes/k-best/src/ls_XIC.c @@ -0,0 +1,82 @@ +#include +#include +#include "get_local_scores.h" +#include "ilogi.h" +#include "ls_XIC.h" + +extern int* nof_vals; +extern int N; + +static int bic = 0; + +#define BIG_XIC_DATA (1<<16) + +/* XIC = log(ML) - 0.5*nof_params*log(n) */ + +score_t big_xic_score(int i, varset_t psi, int nof_freqs){ + + int vc_v = nof_vals[i]; + score_t pcc = get_nof_cfgs(psi); + score_t nof_params = pcc * (vc_v-1); + int* freqp = freqmem; + int* end_freqp = freqp + nof_freqs * vc_v; + + score_t res = bic ? (-0.5 * nof_params * log(N)) : nof_params; + + for(;freqp < end_freqp; freqp += vc_v) { + int pcfreq = 0; + int v; + for(v = 0; v