345{
  346#if OUTPUT
  347  Print(
"ncSA_1xy0x0yG(var(%d)^{%d}, var(%d)^{%d}, G, r)!\n", 
j, 
m, 
i, n);
 
  348  number t = 
n_Copy(m_g, r->cf);
 
  351#endif
  352 
  353  int kn = n;
  355 
  356  number c = 
n_Init(1, r->cf);
 
  357 
  359 
  362 
  364 
  365 
  368 
  370 
  372 
  374  {
  375    number t = 
n_Init(km + 1, r->cf);
 
  379 
  380    t = 
n_Init(kn + 1, r->cf);
 
  383 
  385    c = 
n_Div(c, t, r->cf);
 
  387 
  388
  389 
  391 
  393 
  396 
  398 
  401  }
  402 
  404  assume((km == 0) || (kn == 0) );
 
  405 
  406  {
  408 
  409    if( km > 0 )
  410    {
  411      number t = 
n_Init(km + 1, r->cf);
 
  414    }
  415 
  416    if( kn > 0 )
  417    {
  418      number t = 
n_Init(kn + 1, r->cf);
 
  421    }
  422 
  424    c = 
n_Div(c, t, r->cf);
 
  426  }
  427 
  429 
  432 
  434 
  436 
  438 
  439  return pResult;
  440}
static int si_min(const int a, const int b)
 
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
 
static FORCE_INLINE number n_Div(number a, number b, const coeffs r)
return the quotient of 'a' and 'b', i.e., a/b; raises an error if 'b' is not invertible in r exceptio...
 
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
 
static FORCE_INLINE void n_Write(number n, const coeffs r, const BOOLEAN bShortOut=TRUE)
 
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
 
static FORCE_INLINE void n_InpMult(number &a, number b, const coeffs r)
multiplication of 'a' and 'b'; replacement of 'a' by the product a*b
 
static int min(int a, int b)
 
poly p_NSet(number n, const ring r)
returns the poly representing the number n, destroys n
 
static poly pLast(poly a, int &length)
returns the length of a polynomial (numbers of monomials) respect syzComp