version 1.14, 2003/07/30 07:57:45 |
version 1.15, 2003/07/31 01:02:39 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.13 2003/07/30 00:55:41 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.14 2003/07/30 07:57:45 noro Exp $ */ |
|
|
#include "ca.h" |
#include "ca.h" |
#include "inline.h" |
#include "inline.h" |
Line 98 NODE append_one(NODE,int); |
|
Line 98 NODE append_one(NODE,int); |
|
#define SG(a) ((a)->sugar) |
#define SG(a) ((a)->sugar) |
#define LEN(a) ((a)->len) |
#define LEN(a) ((a)->len) |
|
|
#define NEWRHist(r) ((r)=(RHist)MALLOC(sizeof(struct oRHist))) |
#define NEWRHist(r) \ |
|
((r)=(RHist)MALLOC(sizeof(struct oRHist)+(nd_wpd-1)*sizeof(unsigned int))) |
#define NEWND_pairs(m) if(!_ndp_free_list)_NDP_alloc(); (m)=_ndp_free_list; _ndp_free_list = NEXT(_ndp_free_list) |
#define NEWND_pairs(m) if(!_ndp_free_list)_NDP_alloc(); (m)=_ndp_free_list; _ndp_free_list = NEXT(_ndp_free_list) |
#define NEWNM(m) if(!_nm_free_list)_NM_alloc(); (m)=_nm_free_list; _nm_free_list = NEXT(_nm_free_list) |
#define NEWNM(m) if(!_nm_free_list)_NM_alloc(); (m)=_nm_free_list; _nm_free_list = NEXT(_nm_free_list) |
#define MKND(n,m,d) if(!_nd_free_list)_ND_alloc(); (d)=_nd_free_list; _nd_free_list = (ND)BDY(_nd_free_list); (d)->nv=(n); BDY(d)=(m) |
#define MKND(n,m,d) if(!_nd_free_list)_ND_alloc(); (d)=_nd_free_list; _nd_free_list = (ND)BDY(_nd_free_list); (d)->nv=(n); BDY(d)=(m) |
Line 1882 ND_pairs nd_reconstruct(ND_pairs d) |
|
Line 1883 ND_pairs nd_reconstruct(ND_pairs d) |
|
RHist mr0,mr; |
RHist mr0,mr; |
RHist r; |
RHist r; |
ND_pairs s0,s,t,prev_ndp_free_list; |
ND_pairs s0,s,t,prev_ndp_free_list; |
|
|
obpe = nd_bpe; |
obpe = nd_bpe; |
#if USE_NDV |
#if USE_NDV |
oadv = nmv_adv; |
oadv = nmv_adv; |
Line 1953 void ndl_dup(int obpe,unsigned int *d,unsigned int *r) |
|
Line 1954 void ndl_dup(int obpe,unsigned int *d,unsigned int *r) |
|
oepw = (sizeof(unsigned int)*8)/obpe; |
oepw = (sizeof(unsigned int)*8)/obpe; |
cepw = nd_epw; |
cepw = nd_epw; |
cbpe = nd_bpe; |
cbpe = nd_bpe; |
|
for ( i = 0; i < nd_wpd; i++ ) |
|
r[i] = 0; |
if ( is_rlex ) |
if ( is_rlex ) |
for ( i = 0; i < n; i++ ) { |
for ( i = 0; i < n; i++ ) { |
ei = (d[(n-1-i)/oepw]>>((oepw-((n-1-i)%oepw)-1)*obpe)) |
ei = (d[(n-1-i)/oepw]>>((oepw-((n-1-i)%oepw)-1)*obpe)) |
Line 2188 void ndv_realloc(NDV p,int obpe,int oadv) |
|
Line 2191 void ndv_realloc(NDV p,int obpe,int oadv) |
|
|
|
if ( p ) { |
if ( p ) { |
m = BDY(p); len = LEN(p); |
m = BDY(p); len = LEN(p); |
mr0 = (NMV)REALLOC(BDY(p),len*nmv_adv); |
if ( nmv_adv > oadv ) |
|
mr0 = (NMV)REALLOC(BDY(p),len*nmv_adv); |
|
else |
|
mr0 = BDY(p); |
m = (NMV)((char *)mr0+(len-1)*oadv); |
m = (NMV)((char *)mr0+(len-1)*oadv); |
mr = (NMV)((char *)mr0+(len-1)*nmv_adv); |
mr = (NMV)((char *)mr0+(len-1)*nmv_adv); |
t = (NMV)ALLOCA(nmv_adv); |
t = (NMV)ALLOCA(nmv_adv); |