about summary refs log tree commit diff
path: root/sourcecodes/k-best/src/ls_BDe.c
diff options
context:
space:
mode:
authorziejd22021-03-02 11:17:06 -0600
committerGitHub2021-03-02 11:17:06 -0600
commit33c4b9f23a53daed3b0a97114d7658015da6a07f (patch)
tree3ed43fec4c313b81d5586a3a2969bcbe33297b6d /sourcecodes/k-best/src/ls_BDe.c
parentb798acc788139830c427769c1b8a5ade717d8c20 (diff)
downloadBNW-33c4b9f23a53daed3b0a97114d7658015da6a07f.tar.gz
Delete sourcecodes/k-best directory
Diffstat (limited to 'sourcecodes/k-best/src/ls_BDe.c')
-rw-r--r--sourcecodes/k-best/src/ls_BDe.c163
1 files changed, 0 insertions, 163 deletions
diff --git a/sourcecodes/k-best/src/ls_BDe.c b/sourcecodes/k-best/src/ls_BDe.c
deleted file mode 100644
index 83865f31..00000000
--- a/sourcecodes/k-best/src/ls_BDe.c
+++ /dev/null
@@ -1,163 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include<stdio.h>
-#include <math.h>
-#include "get_local_scores.h"
-#include "ilogi.h"
-#include "ls_BDe.h"
-
-extern int*     nof_vals;
-extern int      N;
-
-score_t ess;
-
-int*    freq2mem  = NULL;
-int*    freq2mem2 = NULL;
-int     nof_freq2s;
-
-
-#define BIG_BDE_DATA (1<<10)
-
-extern double lgamma(double); /* to avoid the warning with ansi-flag */
-
-/* BDe */
-
-score_t big_bde_score(int i, varset_t psi, int nof_freqs){
-
-  int vc_v = nof_vals[i];
-  score_t pcc =  get_nof_cfgs(psi);
-  score_t ess_per_pcc = ess / pcc;
-  score_t ess_per_cc  = ess_per_pcc / vc_v;
-
-  int* freqp = freqmem;
-  int* end_freqp = freqp + nof_freqs * vc_v;
-
-  score_t res = nof_freqs * lgamma(ess_per_pcc);
-  int nof_zeros = 0;
-    
-  memset(freq2mem,  0, nof_freq2s*sizeof(int)); /* could reset later */
-  memset(freq2mem2, 0, nof_freq2s*sizeof(int)); /* could reset later */
-
-  for(;freqp < end_freqp; freqp += vc_v) {
-    int  pcfreq = 0;
-    int v;
-    for(v = 0; v<vc_v; ++v) {
-      int freq = freqp[v];
-      if (freq) {
-	pcfreq += freq;
-	if(freq<nof_freq2s){
-	  ++freq2mem[freq];
-	} else {
-	  res += lgamma(ess_per_cc + freq);
-	}
-      } else {
-	++ nof_zeros;
-      }
-    }
-    if(pcfreq<nof_freq2s){
-      ++freq2mem2[pcfreq];
-    } else {
-      res -= lgamma(ess_per_pcc + pcfreq);
-    }
-  }
-
-  res += (nof_zeros - nof_freqs * vc_v) * lgamma(ess_per_cc);
-
-  {
-    int i;
-
-    for(i=1;i<nof_freq2s;++i){
-      int freq2 = freq2mem[i];
-      if(freq2) res += freq2 * lgamma(ess_per_cc + i);
-    }
-
-    for(i=1;i<nof_freq2s;++i){
-      int freq2 = freq2mem2[i];
-      if(freq2) res -= freq2 * lgamma(ess_per_pcc + i);
-    }
-
-  }
-
-  return res > 0.0 ? 0.0 : res;
-}
-
-
-score_t bde_score(int i, varset_t psi, int nof_freqs){
-//HR
-//printf ("bde score %d, %u %d",i, psi, nof_freqs);
-
-  int vc_v = nof_vals[i];
-  score_t pcc =  get_nof_cfgs(psi);
-  score_t ess_per_pcc = ess / pcc;
-  score_t ess_per_cc  = ess_per_pcc / vc_v;
-
-  int* freqp = freqmem;
-  int* end_freqp = freqp + nof_freqs * vc_v;
-
-  score_t res = nof_freqs * lgamma(ess_per_pcc);
-  int nof_zeros = 0;
-    
-  memset(freq2mem,  0, nof_freq2s*sizeof(int)); /* could reset later */
-  memset(freq2mem2, 0, nof_freq2s*sizeof(int)); /* could reset later */
-
-  for(;freqp < end_freqp; freqp += vc_v) {
-    int  pcfreq = 0;
-    int v;
-    for(v = 0; v<vc_v; ++v) {
-      int freq = freqp[v];
-      if (freq) {
-	pcfreq += freq;
-	++freq2mem[freq];
-      } else {
-	++ nof_zeros;
-      }
-    }
-    ++freq2mem2[pcfreq];
-  }
-
-  res += (nof_zeros - nof_freqs * vc_v) * lgamma(ess_per_cc);
-
-  {
-    int i;
-
-    for(i=1;i<nof_freq2s;++i){
-      int freq2 = freq2mem[i];
-      if(freq2) res += freq2 * lgamma(ess_per_cc + i);
-    }
-
-    for(i=1;i<nof_freq2s;++i){
-      int freq2 = freq2mem2[i];
-      if(freq2) res -= freq2 * lgamma(ess_per_pcc + i);
-    }
-
-  }
-
-  return res > 0.0 ? 0.0 : res;
-}
-
-
-
-scorefun init_BDe_scorer(char* arg){
-
-  scorefun sf;
-
-  ess = atof(arg);
-
-  if (N<BIG_BDE_DATA){
-    sf = bde_score;
-    nof_freq2s = N+1;
-  } else {
-    sf = big_bde_score;
-    nof_freq2s = BIG_BDE_DATA;
-  }
-
-  freq2mem  = malloc(nof_freq2s * sizeof(int));
-  freq2mem2 = malloc(nof_freq2s * sizeof(int));
-
-  return sf;
-}
-
-void free_BDe_scorer(){
-  if(freq2mem)  free(freq2mem);
-  if(freq2mem2) free(freq2mem2);
-}