blob: 50a8e65107bd836a653a4b848c5e711e21b824fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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;
}
}
|