bridge/class-master/depend/pari/src/language/intnum.c
/* compute the necessary tabs, weights multiplied by f(t) */
compute the necessary tabs, weights multiplied by f(t)
compute the necessary tabs weights multiplied by f ( t )
static GEN
intfuncinit_i(void *E, GEN (*eval)(void*, GEN), GEN tab)
{
  GEN tabxp = TABxp(tab), tabwp = TABwp(tab);
  GEN tabxm = TABxm(tab), tabwm = TABwm(tab);
  long L, L0 = lg(tabxp);
  TABw0(tab) = gmul(TABw0(tab), eval(E, TABx0(tab)));
  if (lg(tabxm) == 1)
  {
    TABxm(tab) = tabxm = gneg(tabxp);
    TABwm(tab) = tabwm = leafcopy(tabwp);
  }
  L = minss(weight(E, eval, tabxp, tabwp), weight(E, eval, tabxm, tabwm));
  if (L < L0)
  { 
    setlg(tabxp, L+1);
    setlg(tabwp, L+1);
    if (lg(tabxm) > 1) { setlg(tabxm, L+1); setlg(tabwm, L+1); }
  }
  return tab;
}
static GEN intfuncinit_i ( void * E , GEN ( * eval ) ( void * , GEN ) , GEN tab ) { GEN tabxp = TABxp ( tab ) , tabwp = TABwp ( tab ) ; GEN tabxm = TABxm ( tab ) , tabwm = TABwm ( tab ) ; long L , L0 = lg ( tabxp ) ; TABw0 ( tab ) = gmul ( TABw0 ( tab ) , eval ( E , TABx0 ( tab ) ) ) ; if ( lg ( tabxm ) == 1 ) { TABxm ( tab ) = tabxm = gneg ( tabxp ) ; TABwm ( tab ) = tabwm = leafcopy ( tabwp ) ; } L = minss ( weight ( E , eval , tabxp , tabwp ) , weight ( E , eval , tabxm , tabwm ) ) ; if ( L < L0 ) { setlg ( tabxp , L + 1 ) ; setlg ( tabwp , L + 1 ) ; if ( lg ( tabxm ) > 1 ) { setlg ( tabxm , L + 1 ) ; setlg ( tabwm , L + 1 ) ; } } return tab ; }
compute the necessary tabs, weights multiplied by f(t)
compute the necessary tabs weights multiplied by f ( t )
/* update wp and wm in place */ /* catch up functions whose growth at oo was not adequately described */