about summary refs log tree commit diff
path: root/sourcecodes/k-best/src/ilogi.c
diff options
context:
space:
mode:
authorziejd22017-09-14 15:39:41 -0500
committerziejd22017-09-14 15:57:50 -0500
commitc4f926438dcb8abe805e910399940f79ff643c4b (patch)
tree3146d05ada5cf4b48d9bdd16c1baa498e8df7192 /sourcecodes/k-best/src/ilogi.c
parent57ebf49403b75dcf8482d174b59f7fd2a961d98e (diff)
downloadBNW-c4f926438dcb8abe805e910399940f79ff643c4b.tar.gz
Add files via upload
Diffstat (limited to 'sourcecodes/k-best/src/ilogi.c')
-rw-r--r--sourcecodes/k-best/src/ilogi.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/sourcecodes/k-best/src/ilogi.c b/sourcecodes/k-best/src/ilogi.c
new file mode 100644
index 00000000..50a8e651
--- /dev/null
+++ b/sourcecodes/k-best/src/ilogi.c
@@ -0,0 +1,37 @@
+#include <stdlib.h>
+#include <math.h>
+#include "cfg.h"
+#include "ilogi.h"
+
+score_t* ilogi = NULL;
+int      len_ilogi = 0;
+
+static int refcount = 0;
+
+int ensure_ilogi(int maxi){
+  if (maxi >= len_ilogi)
+    len_ilogi = maxi+1;
+  
+  ilogi = (score_t*) realloc(ilogi, len_ilogi * sizeof(score_t));
+  ++refcount;
+
+  {
+    int i;
+
+    if (ilogi) 
+      ilogi[0] = 0.0;
+
+    for(i=1;i<len_ilogi;++i) 
+      ilogi[i] = i*log(i);
+  }
+  
+  return 1;
+}
+ 
+void free_ilogi(){
+  --refcount;
+  if (!refcount){
+    free(ilogi);
+    ilogi = NULL;
+  }
+}