251{
  254  int flag, flagcnt=0, syzcnt=0;
  255  int syzcomp = 0;
  258  ideal s_I;
  260  ideal trickyQuotient;
  262  {
  264  }
  265  else
  266    trickyQuotient = I;
  268  poly *var = (poly *)
omAlloc0((
N+1)*
sizeof(poly));
 
  269  
  275  ideal   h2, s_h2, s_h3;
  277  
  278  for (
i=1; 
i<=
N; 
i++ )
 
  279  {
  284  }
  285  
  286  for (
i=1; 
i<=
N; 
i++ )
 
  287  {
  289    flag = 0;
  290    for (
j=0; 
j< idI; 
j++ )
 
  291    {
  294      if (q!=0)
  295      {
  297    
  298    flag++;
  300      }
  301      else
  303    }
  304    
  305    if (flag >0)
  306    {
  307      
  308      
  309      
  310      
  312      
  315      syzcomp = 1;
  317      if (orig_ring != syz_ring)
  318      {
  321        
  322        
  324      }
  325      else
  326      {
  327        s_h2 = h2;
  328        s_I  = I;
  329        
  330      }
  332      
  333      Print(
".proceeding with the variable %d\n",
i);
 
  342      PrintS(
"...computing Syz");
 
  345      
  346      if (orig_ring != syz_ring)
  347      {
  350        {
  351          if (s_h3->m[
j] != 
NULL)
 
  352          {
  355            else
  357          }
  358        }
  360        s_h3->rank -= syzcomp;
  362        
  365      }
  368      syzcnt++;
  370    } 
  371    else
  372    {
  373      flagcnt++;
  374    }
  375  }
  377  {
  378    PrintS(
"the input is a two--sided ideal");
 
  379    return(I);
  380  }
  381  if (syzcnt >0)
  382  {
  383    Print(
"..computing Intersect of %d modules\n",syzcnt);
 
  384    if (syzcnt == 1)
  385      SI = S[0];
  386    else
  388    
  392    {
  395      {
  398        {
  401        }
  402      }
  404    }
  409  }
  410  else
  411  {
  413    return(I);
  414  }
  415}
const CanonicalForm CFMap CFMap & N
 
ideal idMultSect(resolvente arg, int length, GbVariant alg)
 
#define idDelete(H)
delete an ideal
 
#define idSimpleAdd(A, B)
 
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
 
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
 
#define MATELEM(mat, i, j)
1-based access to matrix
 
static ideal idPrepareStd(ideal T, ideal s, int k)
 
#define SI_RESTORE_OPT1(A)
 
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
 
static poly pp_Mult_mm(poly p, poly m, const ring r)
 
static long p_MinComp(poly p, ring lmRing, ring tailRing)
 
void rChangeCurrRing(ring r)
 
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
 
#define pCopy(p)
return a copy of the poly
 
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
 
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
 
void PrintS(const char *s)
 
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
 
void rDelete(ring r)
unconditionally deletes fields in r
 
void rSetSyzComp(int k, const ring r)
 
ideal idInit(int idsize, int rank)
initialise an ideal / module
 
matrix id_Module2Matrix(ideal mod, const ring R)
 
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
 
static int idElem(const ideal F)
number of non-zero polys in F