| version 1.16, 2019/08/21 00:37:47 |
version 1.17, 2019/08/28 23:27:34 |
|
|
| /* $OpenXM: OpenXM_contrib2/asir2018/engine/nd.c,v 1.15 2019/04/20 06:04:18 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2018/engine/nd.c,v 1.16 2019/08/21 00:37:47 noro Exp $ */ |
| |
|
| #include "nd.h" |
#include "nd.h" |
| |
|
| Line 2611 ND_pairs nd_newpairs( NODE g, int t ) |
|
| Line 2611 ND_pairs nd_newpairs( NODE g, int t ) |
|
| |
|
| dl = DL(nd_psh[t]); |
dl = DL(nd_psh[t]); |
| ts = SG(nd_psh[t]) - TD(dl); |
ts = SG(nd_psh[t]) - TD(dl); |
| if ( nd_module && nd_intersect && (MPOS(dl) > 1) ) return 0; |
if ( nd_module && nd_intersect && (MPOS(dl) > nd_intersect) ) return 0; |
| for ( r0 = 0, h = g; h; h = NEXT(h) ) { |
for ( r0 = 0, h = g; h; h = NEXT(h) ) { |
| if ( nd_module && (MPOS(DL(nd_psh[(long)BDY(h)])) != MPOS(dl)) ) |
if ( nd_module && (MPOS(DL(nd_psh[(long)BDY(h)])) != MPOS(dl)) ) |
| continue; |
continue; |
| Line 3370 void nd_gr(LIST f,LIST v,int m,int homo,int retdp,int |
|
| Line 3370 void nd_gr(LIST f,LIST v,int m,int homo,int retdp,int |
|
| nd_demand = 0; |
nd_demand = 0; |
| if ( nd_module && nd_intersect ) { |
if ( nd_module && nd_intersect ) { |
| for ( j = nd_psn-1, x = 0; j >= 0; j-- ) |
for ( j = nd_psn-1, x = 0; j >= 0; j-- ) |
| if ( MPOS(DL(nd_psh[j])) > 1 ) { |
if ( MPOS(DL(nd_psh[j])) > nd_intersect ) { |
| MKNODE(xx,(pointer)((unsigned long)j),x); x = xx; |
MKNODE(xx,(pointer)((unsigned long)j),x); x = xx; |
| } |
} |
| conv_ilist(nd_demand,0,x,0); |
conv_ilist(nd_demand,0,x,0); |
| Line 3778 void nd_gr_trace(LIST f,LIST v,int trace,int homo,int |
|
| Line 3778 void nd_gr_trace(LIST f,LIST v,int trace,int homo,int |
|
| Z cont; |
Z cont; |
| DPM zdpm; |
DPM zdpm; |
| |
|
| if ( !m && !nd_gentrace ) dpm_ptozp((DPM)BDY(t),&cont,&zdpm); |
if ( !nd_gentrace ) dpm_ptozp((DPM)BDY(t),&cont,&zdpm); |
| else zdpm = (DPM)BDY(t); |
else zdpm = (DPM)BDY(t); |
| c = (pointer)dpmtondv(m,zdpm); |
c = (pointer)dpmtondv(m,zdpm); |
| } else { |
} else { |
| Line 3887 void nd_gr_trace(LIST f,LIST v,int trace,int homo,int |
|
| Line 3887 void nd_gr_trace(LIST f,LIST v,int trace,int homo,int |
|
| nd_setup_parameters(nd_nvar,0); |
nd_setup_parameters(nd_nvar,0); |
| for ( r = cand; r; r = NEXT(r) ) { |
for ( r = cand; r; r = NEXT(r) ) { |
| if ( nd_module ) { |
if ( nd_module ) { |
| if ( retdp ) BDY(r) = ndvtodpm(0,BDY(t)); |
if ( retdp ) BDY(r) = ndvtodpm(0,BDY(r)); |
| else BDY(r) = ndvtopl(0,CO,vv,BDY(r),mrank); |
else BDY(r) = ndvtopl(0,CO,vv,BDY(r),mrank); |
| } else if ( retdp ) BDY(r) = ndvtodp(0,BDY(t)); |
} else if ( retdp ) BDY(r) = ndvtodp(0,BDY(r)); |
| else BDY(r) = (pointer)ndvtop(0,CO,vv,BDY(t)); |
else BDY(r) = (pointer)ndvtop(0,CO,vv,BDY(r)); |
| } |
} |
| if ( nd_nalg ) |
if ( nd_nalg ) |
| cand = postprocess_algcoef(av,alist,cand); |
cand = postprocess_algcoef(av,alist,cand); |
| Line 8491 void parse_nd_option(NODE opt) |
|
| Line 8491 void parse_nd_option(NODE opt) |
|
| nd_newelim = value?1:0; |
nd_newelim = value?1:0; |
| else if ( !strcmp(key,"intersect") ) |
else if ( !strcmp(key,"intersect") ) |
| nd_intersect = value?1:0; |
nd_intersect = value?1:0; |
| |
else if ( !strcmp(key,"syzgen") ) |
| |
nd_intersect = ZTOS((Q)value); |
| else if ( !strcmp(key,"lf") ) |
else if ( !strcmp(key,"lf") ) |
| nd_lf = value?1:0; |
nd_lf = value?1:0; |
| else if ( !strcmp(key,"trace") ) { |
else if ( !strcmp(key,"trace") ) { |