From 06afc729f9061c1cfa14c78728d61d518324c2f0 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Wed, 04 May 2022 05:46:43 +0000 Subject: [PATCH] Moved all global variables to separate file and defined extern keyword where appropriate --- src/cell.c | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/cell.c b/src/cell.c index f95ff21..3df15ea 100644 --- a/src/cell.c +++ b/src/cell.c @@ -1,3 +1,4 @@ +/* vim: set ts=4 sts=4 sw=4 noet : */ #include<stdlib.h> #include "general.h" #include "vertex.h" @@ -5,7 +6,7 @@ ts_cell_list *init_cell_list(ts_uint ncmax1, ts_uint ncmax2, ts_uint ncmax3, ts_double stepsize){ ts_uint i; ts_uint nocells=ncmax1*ncmax2*ncmax3; - ts_cell_list *clist=(ts_cell_list *)malloc(sizeof(ts_cell_list)); + ts_cell_list *clist=(ts_cell_list *)calloc(1,sizeof(ts_cell_list)); if(clist==NULL) fatal("Error while allocating memory for cell list!",100); clist->ncmax[0]=ncmax1; @@ -14,8 +15,8 @@ clist->cellno=nocells; clist->dcell=1.0/(1.0 + stepsize); clist->shift=(ts_double) clist->ncmax[0]/2; - - clist->cell=(ts_cell **)malloc(nocells*sizeof(ts_cell *)); + clist->max_occupancy=16; /* hard coded max occupancy? */ + clist->cell=(ts_cell **)calloc(nocells,sizeof(ts_cell *)); if(clist->cell==NULL) fatal("Error while allocating memory for cell list! ncmax too large?",101); for(i=0;i<nocells;i++){ @@ -141,6 +142,7 @@ cell_occupation=clist->cell[neigh_cidx]->nvertex; // fprintf(stderr, "cell_occupation=%i\n",cell_occupation); if(cell_occupation>clist->max_occupancy){ + ts_fprintf(stderr,"max occupancy= %d, cell occupation= %d", clist->max_occupancy, cell_occupation); fatal("Neighbouring cell occupation more than set max_occupancy value.",2000); } // Now we check whether we didn't come close to some other vertices in the same @@ -149,10 +151,15 @@ for(l=0;l<cell_occupation;l++){ //carefull with this checks! - if(clist->cell[neigh_cidx]->vertex[l]->idx!=vtx->idx){ + if(clist->cell[neigh_cidx]->vertex[l]!=vtx){ // fprintf(stderr,"calling dist on vertex %i\n",l); dist=vtx_distance_sq(clist->cell[neigh_cidx]->vertex[l],vtx); - // fprintf(stderr,"dist was %f\n",dist); + +// if(vtx->idx==1) +// fprintf(stderr,"VTX(0) ima bliznji vertex z indeksom, %d, tipa %d \n", clist->cell[neigh_cidx]->vertex[l]->idx, clist->cell[neigh_cidx]->vertex[l]->id); +// if(vtx->idx==0 && clist->cell[neigh_cidx]->vertex[l]->idx==0) +// fprintf(stderr,"*** dist was %f\n",dist); + if(dist<=1.0 || (dist<=clist->dmin_interspecies && (clist->cell[neigh_cidx]->vertex[l]->id != vtx->id))) return TS_FAIL; } } -- Gitblit v1.9.3