My Project
Loading...
Searching...
No Matches
kstdhelper.cc File Reference

Go to the source code of this file.

Macros

#define TRANSEXT_PRIVATES

Functions

static int kFindLuckyPrime (ideal F, ideal Q)
poly kTryHC (ideal F, ideal Q)
static ideal kTryHilbstd_homog (ideal F, ideal Q)
static ideal kTryHilbstd_nonhomog (ideal F, ideal Q)
ideal kTryHilbstd (ideal F, ideal Q)
ideal kTryHilbstd_par (ideal F, ideal Q, tHomog h, intvec **mw)

Macro Definition Documentation

◆ TRANSEXT_PRIVATES

#define TRANSEXT_PRIVATES

Definition at line 17 of file kstdhelper.cc.

Function Documentation

◆ kFindLuckyPrime()

int kFindLuckyPrime ( ideal F,
ideal Q )
static

Definition at line 31 of file kstdhelper.cc.

32{
33 int prim=32003;
34 // assume coeff are in Q
35 return prim;
36}

◆ kTryHC()

poly kTryHC ( ideal F,
ideal Q )

Definition at line 38 of file kstdhelper.cc.

39{
40 if (Q!=NULL)
41 return NULL;
42 int prim=kFindLuckyPrime(F,Q);
43 if (TEST_OPT_PROT) Print("try HC in ring over ZZ/%d\n",prim);
44 // create Zp_ring
45 ring save_ring=currRing;
46 ring Zp_ring=rCopy0(save_ring);
47 nKillChar(Zp_ring->cf);
48 Zp_ring->cf=nInitChar(n_Zp, (void*)(long)prim);
49 rComplete(Zp_ring);
50 // map data
51 rChangeCurrRing(Zp_ring);
52 nMapFunc nMap=n_SetMap(save_ring->cf,Zp_ring->cf);
53 if (nMap==NULL) return NULL;
54 ideal FF=id_PermIdeal(F,1,IDELEMS(F),NULL,save_ring,Zp_ring,nMap,NULL,0,0);
55 ideal QQ=NULL;
56 if (Q!=NULL) QQ=id_PermIdeal(Q,1,IDELEMS(Q),NULL,save_ring,Zp_ring,nMap,NULL,0,0);
57 // call std
58 kStrategy strat=new skStrategy;
59 strat->LazyPass=20;
60 strat->LazyDegree = 1;
61 strat->kModW=kModW=NULL;
62 strat->kHomW=kHomW=NULL;
63 strat->homog = (tHomog)idHomIdeal(F,Q);
64 ideal res=mora(FF,QQ,NULL,NULL,strat);
65 // clean
66 idDelete(&FF);
67 poly HC=NULL;
68 if (strat->kNoether!=NULL) scComputeHC(res,QQ,0,HC);
69 delete strat;
70 if (QQ!=NULL) idDelete(&QQ);
71 idDelete(&res);
72 // map back
73 rChangeCurrRing(save_ring);
74 if (HC!=NULL)
75 {
76 //p_IncrExp(HC,Zp_ring->N,Zp_ring);
77 for (int i=rVar(Zp_ring)-1; i>0; i--)
78 {
79 int e;
80 if ((e=pGetExp(HC, i)) > 0) pSetExp(HC,i,e-1);
81 }
82 p_Setm(HC,Zp_ring);
83 if (TEST_OPT_PROT) Print("HC(%ld) found\n",pTotaldegree(HC));
84 pSetCoeff0(HC,nInit(1));
85 }
86 else
87 {
88 if (TEST_OPT_PROT) PrintS("HC not found\n");
89 }
90 rDelete(Zp_ring);
91 return HC;
92}
int i
Definition cfEzgcd.cc:132
intvec * kModW
Definition kutil.h:334
poly kNoether
Definition kutil.h:328
intvec * kHomW
Definition kutil.h:335
int LazyPass
Definition kutil.h:352
int LazyDegree
Definition kutil.h:352
char homog
Definition kutil.h:369
@ n_Zp
\F{p < 2^31}
Definition coeffs.h:29
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
Definition coeffs.h:703
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
Definition numbers.cc:412
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
Definition coeffs.h:80
void nKillChar(coeffs r)
undo all initialisations
Definition numbers.cc:563
#define Print
Definition emacs.cc:80
CanonicalForm res
Definition facAbsFact.cc:60
void scComputeHC(ideal S, ideal Q, int ak, poly &hEdge)
Definition hdegree.cc:1074
#define idDelete(H)
delete an ideal
Definition ideals.h:29
static BOOLEAN idHomIdeal(ideal id, ideal Q=NULL)
Definition ideals.h:91
ideal mora(ideal F, ideal Q, intvec *w, bigintmat *hilb, kStrategy strat)
Definition kstd1.cc:1887
VAR intvec * kHomW
Definition kstd1.cc:2409
VAR intvec * kModW
Definition kstd1.cc:2409
static int kFindLuckyPrime(ideal F, ideal Q)
Definition kstdhelper.cc:31
#define pSetCoeff0(p, n)
Definition monomials.h:59
#define nInit(i)
Definition numbers.h:24
#define NULL
Definition omList.c:12
#define TEST_OPT_PROT
Definition options.h:105
static void p_Setm(poly p, const ring r)
Definition p_polys.h:235
void rChangeCurrRing(ring r)
Definition polys.cc:16
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition polys.cc:13
static long pTotaldegree(poly p)
Definition polys.h:283
#define pGetExp(p, i)
Exponent.
Definition polys.h:42
#define pSetExp(p, i, v)
Definition polys.h:43
void PrintS(const char *s)
Definition reporter.cc:288
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
Definition ring.cc:3527
ring rCopy0(const ring r, BOOLEAN copy_qideal, BOOLEAN copy_ordering)
Definition ring.cc:1427
void rDelete(ring r)
unconditionally deletes fields in r
Definition ring.cc:454
static short rVar(const ring r)
define rVar(r) (r->N)
Definition ring.h:603
ideal id_PermIdeal(ideal I, int R, int C, const int *perm, const ring src, const ring dst, nMapFunc nMap, const int *par_perm, int P, BOOLEAN use_mult)
mapping ideals/matrices to other rings
#define IDELEMS(i)
#define Q
Definition sirandom.c:26
tHomog
Definition structs.h:31
skStrategy * kStrategy
Definition structs.h:54

◆ kTryHilbstd()

ideal kTryHilbstd ( ideal F,
ideal Q )

Definition at line 326 of file kstdhelper.cc.

327{
328 if (rField_is_Ring(currRing)) return NULL;
329 if(!TEST_V_PURE_GB)
330 {
332 if (h==(tHomog)TRUE) return kTryHilbstd_homog(F,Q);
333 if((!rField_is_Q(currRing))
335 ) return NULL;
336 if (h==(tHomog)FALSE) return kTryHilbstd_nonhomog(F,Q);
337 }
338 return NULL;
339}
#define TRUE
Definition auxiliary.h:101
#define FALSE
Definition auxiliary.h:97
STATIC_VAR Poly * h
Definition janet.cc:971
static ideal kTryHilbstd_nonhomog(ideal F, ideal Q)
static ideal kTryHilbstd_homog(ideal F, ideal Q)
#define TEST_V_PURE_GB
Definition options.h:137
static BOOLEAN rField_is_Zp(const ring r)
Definition ring.h:506
static BOOLEAN rField_is_Q(const ring r)
Definition ring.h:517
#define rField_is_Ring(R)
Definition ring.h:491
BOOLEAN id_HomIdealDP(ideal id, ideal Q, const ring r)

◆ kTryHilbstd_homog()

ideal kTryHilbstd_homog ( ideal F,
ideal Q )
static

Definition at line 115 of file kstdhelper.cc.

116{
117 // create Zp_ring
118 ring save_ring=currRing;
119 BITSET save_opt;SI_SAVE_OPT1(save_opt);
120 int prim=kFindLuckyPrime(F,Q);
121 //if(nCoeff_is_transExt(save_ring->cf)
122 //&&(nCoeff_is_Zp(save_ring->cf->extRing->cf)))
123 // prim=save_ring->cf->extRing->cf->ch;
124 if(nCoeff_is_Zp(save_ring->cf))
125 prim=save_ring->cf->ch;
126 coeffs cf=nInitChar(n_Zp, (void*)(long)prim);
127 ring Zp_ring=rDefault(cf,save_ring->N,save_ring->names,ringorder_dp);
128 // map data
129 nMapFunc nMap=n_SetMap(save_ring->cf,Zp_ring->cf);
130 if (nMap==NULL)
131 {
132 /*
133 if (nCoeff_is_transExt(save_ring->cf))
134 {
135 if (nCoeff_is_Q(save_ring->cf->extRing->cf))
136 nMap=nMapQa2Zp;
137 else if (nCoeff_is_Zp(save_ring->cf->extRing->cf))
138 nMap=nMapZpa2Zp;
139 else
140 {
141 SI_RESTORE_OPT1(save_opt);
142 return NULL;
143 }
144 }
145 else
146 {
147 */
148 SI_RESTORE_OPT1(save_opt);
149 return NULL;
150 }
151 rChangeCurrRing(Zp_ring);
152 ideal FF=id_PermIdeal(F,1,IDELEMS(F),NULL,save_ring,Zp_ring,nMap,NULL,0,0);
153 ideal QQ=NULL;
154 if (Q!=NULL) QQ=id_PermIdeal(Q,1,IDELEMS(Q),NULL,save_ring,Zp_ring,nMap,NULL,0,0);
155 // compute GB in Zp_ring
158 if(TEST_OPT_PROT) Print("std in char. %d ------------------\n",prim);
159 ideal GB=kStd_internal(FF,QQ,(tHomog)TRUE,NULL,NULL,0,0,NULL,NULL);
160 // compute hilb
161 bigintmat* hilb=hFirstSeries0b(GB,QQ,NULL,NULL,Zp_ring,coeffs_BIGINT);
162 // clean up Zp_ring
163 rChangeCurrRing(save_ring);
164 id_Delete(&GB,Zp_ring);
165 id_Delete(&FF,Zp_ring);
166 if (QQ!=NULL) id_Delete(&QQ,Zp_ring);
167 rDelete(Zp_ring);
168 // std with hilb
169 intvec *w=NULL;
170 if(TEST_OPT_PROT) PrintS("stdhilb in basering ------------------\n");
171 SI_RESTORE_OPT1(save_opt);
172 ideal result=kStd_internal(F,Q,(tHomog)TRUE,&w,hilb);
173 if (w!=NULL) delete w;
174 delete hilb;
175 return result;
176}
#define BITSET
Definition auxiliary.h:85
CanonicalForm cf
Definition cfModGcd.cc:4091
Matrices of numbers.
Definition bigintmat.h:51
static FORCE_INLINE BOOLEAN nCoeff_is_Zp(const coeffs r)
Definition coeffs.h:794
return result
const CanonicalForm & w
Definition facAbsFact.cc:51
bigintmat * hFirstSeries0b(ideal I, ideal Q, intvec *wdegree, intvec *shifts, const ring src, const coeffs biv_cf)
Definition hilb.cc:2017
ideal kStd_internal(ideal F, ideal Q, tHomog h, intvec **w, bigintmat *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
pure GB/SB computations
Definition kstd1.cc:2434
The main handler for Singular numbers which are suitable for Singular polynomials.
VAR unsigned si_opt_1
Definition options.c:5
#define OPT_REDTAIL
Definition options.h:92
#define SI_SAVE_OPT1(A)
Definition options.h:21
#define SI_RESTORE_OPT1(A)
Definition options.h:24
#define OPT_REDSB
Definition options.h:77
#define Sy_bit(x)
Definition options.h:31
VAR coeffs coeffs_BIGINT
Definition polys.cc:14
ring rDefault(const coeffs cf, int N, char **n, int ord_size, rRingOrder_t *ord, int *block0, int *block1, int **wvhdl, unsigned long bitmask)
Definition ring.cc:103
@ ringorder_dp
Definition ring.h:79
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix

◆ kTryHilbstd_nonhomog()

ideal kTryHilbstd_nonhomog ( ideal F,
ideal Q )
static

Definition at line 178 of file kstdhelper.cc.

179{
180 int prim=kFindLuckyPrime(F,Q);
181 //if(nCoeff_is_transExt(save_ring->cf)
182 //&&(nCoeff_is_Zp(save_ring->cf->extRing->cf)))
183 // prim=save_ring->cf->extRing->cf->ch;
184 if(nCoeff_is_Zp(currRing->cf))
185 prim=currRing->cf->ch;
186 if(TEST_OPT_PROT) Print("std in char. %d, homogenized ------------------\n",prim);
187 // create Zp_ring, need 1 more variable
188 ring save_ring=currRing;
189 BITSET save_opt;SI_SAVE_OPT1(save_opt);
190 coeffs cf=nInitChar(n_Zp, (void*)(long)prim);
191 char **names=(char**)omAlloc0((currRing->N+1) * sizeof(char *));
192 for(int i=0;i<currRing->N;i++)
193 {
194 names[i]=omStrDup(currRing->names[i]);
195 }
196 names[currRing->N]=omStrDup("@");
197 ring Zp_ring=rDefault(cf,save_ring->N+1,names,ringorder_dp);
198 // map data
199 nMapFunc nMap=n_SetMap(save_ring->cf,Zp_ring->cf);
200 if (nMap==NULL) return NULL;
201 rChangeCurrRing(Zp_ring);
202 ideal FF=id_PermIdeal(F,1,IDELEMS(F),NULL,save_ring,Zp_ring,nMap,NULL,0,0);
203 ideal QQ=NULL;
204 if (Q!=NULL) QQ=id_PermIdeal(Q,1,IDELEMS(Q),NULL,save_ring,Zp_ring,nMap,NULL,0,0);
205 // homogenize
206 ideal tmp=id_HomogenDP(FF,Zp_ring->N,Zp_ring);
207 id_Delete(&FF,Zp_ring);
208 FF=tmp;
209 if (QQ!=NULL)
210 {
211 tmp=id_HomogenDP(QQ,Zp_ring->N,Zp_ring);
212 id_Delete(&QQ,Zp_ring);
213 QQ=tmp;
214 }
215 // compute GB in Zp_ring
218 ideal GB=kStd_internal(FF,QQ,(tHomog)TRUE,NULL,NULL,0,0,NULL,NULL);
219 // compute hilb
220 bigintmat* hilb=hFirstSeries0b(GB,QQ,NULL,NULL,Zp_ring,coeffs_BIGINT);
221 // clean up Zp_ring
222 id_Delete(&GB,Zp_ring);
223 id_Delete(&FF,Zp_ring);
224 if (QQ!=NULL) id_Delete(&QQ,Zp_ring);
225 rChangeCurrRing(save_ring);
226 rDelete(Zp_ring);
227 //omFreeBin(Zp_ring,sip_sring_bin);
228 // create Q_ring
229 cf=nCopyCoeff(save_ring->cf);
230 int nblocks=rBlocks(save_ring)+1;
231 names=(char**)omAlloc0((save_ring->N+1) * sizeof(char *));
232 for(int i=0;i<save_ring->N;i++)
233 {
234 names[i]=omStrDup(save_ring->names[i]);
235 }
236 names[save_ring->N]=omStrDup("@");
237 rRingOrder_t *order = (rRingOrder_t *) omAlloc(nblocks* sizeof(rRingOrder_t));
238 int *block0 = (int *)omAlloc0(nblocks * sizeof(int));
239 int *block1 = (int *)omAlloc0(nblocks * sizeof(int));
240 int **wvhdl=(int**)omAlloc0(nblocks * sizeof(int *));
241 for (int j=0; j<nblocks-1; j++)
242 {
243 if (save_ring->wvhdl[j]!=NULL)
244 {
245 #ifdef HAVE_OMALLOC
246 wvhdl[j] = (int*) omMemDup(save_ring->wvhdl[j]);
247 #else
248 {
249 int l=save_ring->block1[j]-save_ring->block0[j]+1;
250 if (save_ring->order[j]==ringorder_a64) l*=2;
251 else if (save_ring->order[j]==ringorder_M) l=l*l;
252 else if (save_ring->order[j]==ringorder_am)
253 {
254 l+=save_ring->wvhdl[j][save_ring->block1[j]-save_ring->block0[j]+1]+1;
255 }
256 wvhdl[j]=(int*)omalloc(l*sizeof(int));
257 memcpy(wvhdl[j],save_ring->wvhdl[j],l*sizeof(int));
258 }
259 #endif
260 }
261 }
262 memcpy(order,save_ring->order,(nblocks-1) * sizeof(rRingOrder_t));
263 memcpy(block0,save_ring->block0,(nblocks-1) * sizeof(int));
264 memcpy(block1,save_ring->block1,(nblocks-1) * sizeof(int));
265 order[nblocks-1]=ringorder_lp;
266 block0[nblocks-1]=save_ring->N+1;
267 block1[nblocks-1]=save_ring->N+1;
268
269 ring Q_ring=rDefault(cf,save_ring->N+1,names,nblocks,order,block0,block1,wvhdl,save_ring->wanted_maxExp);
270 // map data
271 nMap=n_SetMap(save_ring->cf,Q_ring->cf);
272 if (nMap==NULL) return NULL;
273 rChangeCurrRing(Q_ring);
274 FF=id_PermIdeal(F,1,IDELEMS(F),NULL,save_ring,Q_ring,nMap,NULL,0,0);
275 QQ=NULL;
276 if (Q!=NULL) QQ=id_PermIdeal(Q,1,IDELEMS(Q),NULL,save_ring,Q_ring,nMap,NULL,0,0);
277 // homogenize
278 if(TEST_OPT_PROT) PrintS("stdhilb in basering, homogenized ------------------\n");
279 tmp=id_HomogenDP(FF,Q_ring->N,Q_ring);
280 id_Delete(&FF,Q_ring);
281 FF=tmp;
282 if (QQ!=NULL)
283 {
284 tmp=id_HomogenDP(QQ,Q_ring->N,Q_ring);
285 id_Delete(&QQ,Q_ring);
286 QQ=tmp;
287 }
288 // std with hilb
289 intvec *w=NULL;
290 tmp=kStd_internal(FF,QQ,testHomog,&w,hilb);
291 if (w!=NULL) delete w;
292 delete hilb;
293 // dehomogenize
294 if(TEST_OPT_PROT) PrintS("de-homogenize, interred ------------------\n");
295 poly one=pOne();
296 tmp=id_Subst(tmp,Q_ring->N,one,Q_ring);
297 p_Delete(&one,Q_ring);
298 // map back to save_ring
299 rChangeCurrRing(save_ring);
300 nMap=n_SetMap(Q_ring->cf,save_ring->cf);
301 GB=id_PermIdeal(tmp,1,IDELEMS(tmp),NULL,Q_ring,save_ring,nMap,NULL,0,0);
302 // clean up Q_ring
303 id_Delete(&FF,Q_ring);
304 if (QQ!=NULL) id_Delete(&QQ,Q_ring);
305 id_Delete(&tmp,Q_ring);
306 rDelete(Q_ring);
307 //omFreeBin(Q_ring,sip_sring_bin);
308 SI_RESTORE_OPT1(save_opt);
309 int dummy;
310 if (TEST_OPT_REDSB)
311 {
313 idSkipZeroes(GB);
314 ideal GB2=kInterRedBba(GB,currRing->qideal,dummy);
315 idDelete(&GB);
316 return GB2;
317 }
318 else
319 {
321 idSkipZeroes(GB);
322 return GB;
323 }
324}
int l
Definition cfEzgcd.cc:100
static FORCE_INLINE coeffs nCopyCoeff(const coeffs r)
"copy" coeffs, i.e. increment ref
Definition coeffs.h:439
int j
Definition facHensel.cc:110
ideal kInterRedBba(ideal F, ideal Q, int &need_retry)
Definition kstd1.cc:3552
#define omStrDup(s)
#define omAlloc(size)
#define omalloc(size)
#define omAlloc0(size)
#define omMemDup(s)
#define TEST_OPT_REDSB
Definition options.h:106
static void p_Delete(poly *p, const ring r)
Definition p_polys.h:903
#define pOne()
Definition polys.h:316
static int rBlocks(const ring r)
Definition ring.h:579
rRingOrder_t
order stuff
Definition ring.h:69
@ ringorder_lp
Definition ring.h:78
@ ringorder_am
Definition ring.h:90
@ ringorder_a64
for int64 weights
Definition ring.h:72
@ ringorder_M
Definition ring.h:75
void id_DelDiv(ideal id, const ring r)
delete id[j], if LT(j) == coeff*mon*LT(i) and vice versa, i.e., delete id[i], if LT(i) == coeff*mon*L...
ideal id_HomogenDP(ideal h, int varnum, const ring r)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
ideal id_Subst(ideal id, int n, poly e, const ring r)
@ testHomog
Definition structs.h:34

◆ kTryHilbstd_par()

ideal kTryHilbstd_par ( ideal F,
ideal Q,
tHomog h,
intvec ** mw )

Definition at line 341 of file kstdhelper.cc.

342{
343 int cpus = (long) feOptValue(FE_OPT_CPUS);
344 if (cpus<1)
345 {
346 //WerrorS("no sub-processes allowed");
347 return NULL;
348 }
349#if 0
350 if(!TEST_V_PURE_GB)
351 {
352 int cp_std[2];
353 int cp_hstd[2];
354 int err1=pipe(cp_std);// [0] is read , [1] is write
355 int err2=pipe(cp_hstd);
356 if (err1||err2)
357 {
358 Werror("pipe failed with %d\n",errno);
359 si_close(cp_std[0]);
360 si_close(cp_std[1]);
361 si_close(cp_hstd[0]);
362 si_close(cp_hstd[1]);
363 return NULL;
364 }
365 pid_t pid_std=fork();
366 if (pid_std==0) /*child std*/
367 {
369 si_close(cp_std[0]);
370 si_close(cp_hstd[0]);
371 si_close(cp_hstd[1]);
372 ssiInfo d;
373 memset(&d,0,sizeof(d));
374 d.f_write=fdopen(cp_std[1],"w");
375 d.fd_write=cp_std[1];
376 d.r=currRing;
378 ideal res=kStd_internal(F,Q,h,mw);
380 fclose(d.f_write);
381 _exit(0);
382 }
383 pid_t pid_hstd=fork();
384 if (pid_hstd==0) /*child hstd*/
385 {
387 si_close(cp_hstd[0]);
388 si_close(cp_std[0]);
389 si_close(cp_std[1]);
390 ssiInfo d;
391 memset(&d,0,sizeof(d));
392 d.f_write=fdopen(cp_hstd[1],"w");
393 d.fd_write=cp_hstd[1];
394 d.r=currRing;
395
397 ideal res=kTryHilbstd(F,Q);
398 if (res!=NULL)
399 {
401 }
402 fclose(d.f_write);
403 _exit(0);
404 }
405 /*parent*/
406 si_close(cp_std[1]);
407 si_close(cp_hstd[1]);
408 #ifdef HAVE_POLL
409 pollfd pfd[2];
410 pfd[0].fd=cp_std[0];
411 pfd[0].events=POLLIN;
412 pfd[1].fd=cp_hstd[0];
413 pfd[1].events=POLLIN;
414 int s=si_poll(pfd,2,-1); // wait infinite
415 ideal res;
416 ssiInfo d;
417 memset(&d,0,sizeof(d));
418 d.r=currRing;
419 if (s==1) //std
420 {
421 d.f_read=s_open(cp_std[0]);
422 d.fd_read=cp_std[0];
423 res=ssiReadIdeal(&d);
424 si_close(cp_hstd[0]);
425 s_close(d.f_read);
426 si_close(cp_std[0]);
427 kill(pid_hstd,SIGTERM);
428 si_waitpid(pid_std,NULL,0);
429 si_waitpid(pid_hstd,NULL,0);
430 }
431 else if(s==2)
432 {
433 d.f_read=s_open(cp_hstd[0]);
434 d.fd_read=cp_hstd[0];
435 res=ssiReadIdeal(&d);
436 si_close(cp_std[0]);
437 s_close(d.f_read);
438 si_close(cp_hstd[0]);
439 kill(pid_std,SIGTERM);
440 si_waitpid(pid_hstd,NULL,0);
441 si_waitpid(pid_std,NULL,0);
442 }
443 return res;
444 #endif
445 }
446#endif
447 return NULL;
448}
si_hdl_typ si_set_signal(int sig, si_hdl_typ signal_handler)
meta function for binding a signal to an handler
Definition cntrlc.cc:121
void sig_term_hdl_child(int)
Definition cntrlc.cc:86
const CanonicalForm int s
Definition facAbsFact.cc:51
static void * feOptValue(feOptIndex opt)
Definition feOpt.h:40
@ IDEAL_CMD
Definition grammar.cc:285
ideal kTryHilbstd(ideal F, ideal Q)
VAR unsigned si_opt_2
Definition options.c:6
#define V_PURE_GB
Definition options.h:71
void Werror(const char *fmt,...)
Definition reporter.cc:189
s_buff s_open(int fd)
Definition s_buff.cc:32
int s_close(s_buff &F)
Definition s_buff.cc:46
int fd_write
Definition s_buff.h:26
s_buff f_read
Definition s_buff.h:22
FILE * f_write
Definition s_buff.h:23
ring r
Definition s_buff.h:24
int fd_read
Definition s_buff.h:26