From df8386f75b0538075d72d52693836bb8878f505b Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Mon, 19 Oct 2015 16:23:00 +0100 Subject: First commit of MAMMULT code --- dynamics/randomwalks/entropyrate2add.c | 147 +++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100755 dynamics/randomwalks/entropyrate2add.c (limited to 'dynamics/randomwalks/entropyrate2add.c') diff --git a/dynamics/randomwalks/entropyrate2add.c b/dynamics/randomwalks/entropyrate2add.c new file mode 100755 index 0000000..fae4fc8 --- /dev/null +++ b/dynamics/randomwalks/entropyrate2add.c @@ -0,0 +1,147 @@ +#include +#include +#include +#include "utils.h" + + +int main(int argc, char *argv[]){ + + if (argc < 6){ + printf("Usage: %s \n", argv[0]); + exit(1); + } + + + FILE *filein0,*filein1, *filein, *fileout; + unsigned int N0, K0,N1, K1, N, K; + unsigned int *J_slap0, *r_slap0, *J_slap1, *r_slap1, *J_slap, *r_slap; + double *w_slap; + + + int i, j; + double c_i, d_i, f_i, f_i_2; + double alpha = (atof(argv[5])); + double beta = (atof(argv[6])); + + + int ov; + int deg0, deg1; + double degM, part, f_j, f_j_2; + double degMrid, maxdegM = 200.0; + double num1, num2, den, h; + int number_nodes=(atoi(argv[4])); + double M=2.0; + + filein0 = openfile_or_exit(argv[1], "r", 2); + read_slap(filein0, &K0, &N0, &J_slap0, &r_slap0); + + filein1 = openfile_or_exit(argv[2], "r", 2); + read_slap(filein1, &K1, &N1, &J_slap1, &r_slap1); + + + filein = openfile_or_exit(argv[3], "r", 2); + read_slap_w(filein, &K, &N, &J_slap, &r_slap,&w_slap); + + int r_slap0_n[N+1],r_slap1_n[N+1]; + for (i=0; i<=N; i++) { + if (i<=N0) { + r_slap0_n[i]=r_slap0[i]; + } + else { + r_slap0_n[i]=r_slap0[N0]; + } + if (i<=N1) { + r_slap1_n[i]=r_slap1[i]; + } + else { + r_slap1_n[i]=r_slap1[N1]; + } + + } + + + + double c_i_vec[N]; + double d_i_vec[N]; + double f_i_vec[N]; + + for (i=0; i0.0000000001) { + f_j = pow (deg0, alpha); + } + else { + f_j = 0; + } + if (deg1>0.0000000001) { + f_j_2 = pow (deg1, beta); + } + else { + f_j_2=0; + } + c_i+=ov*(f_j+f_j_2); + + d_i+=ov*(f_j+f_j_2)*log((ov*(f_j+f_j_2))); + + + + + } + c_i_vec[i]=c_i; + d_i_vec[i]=d_i; + deg0=r_slap0_n[i+1]-r_slap0_n[i]; + deg1=r_slap1_n[i+1]-r_slap1_n[i]; + + degM=(deg0+deg1)*1.0; + + part = (M/(M-1))* (1-(pow((deg0/degM),2))-(pow((deg1/degM),2)) ); + + if (deg0>0.0000000001) { + f_i = pow (deg0, alpha); + } + else { + f_i = 0; + } + if (deg1>0.0000000001) { + f_i_2 = pow (deg1, beta); + } + else { + f_i_2=0; + } + f_i_vec[i]=f_i+f_i_2; + + } + num1=0; + num2=0; + den=0; + for (i=0; i0.0) { + num1+=f_i_vec[i]*c_i_vec[i]*log(c_i_vec[i]); + } + + + num2=num2+f_i_vec[i]*d_i_vec[i]; + den=den+f_i_vec[i]*c_i_vec[i]; + + + + + } + + h=(num1-num2)/den; + printf("%f %f %f\n", h, alpha, beta); + +} -- cgit v1.2.3