Пример #1
0
GEN
vars_to_RgXV(GEN h)
{
  long i, l = lg(h);
  GEN z = cgetg(l, t_VEC);
  for (i = 1; i < l; i++) gel(z,i) = pol_x(h[i]);
  return z;
}
Пример #2
0
GEN
gpolvar(GEN x)
{
  long v;
  if (!x) {
    GEN h = hash_values(h_polvar);
    return vars_to_RgXV(vars_sort_inplace(h));
  }
  if (typ(x)==t_PADIC) return gcopy( gel(x,2) );
  v = gvar(x);
  if (v==NO_VARIABLE) return gen_0;
  return pol_x(v);
}
Пример #3
0
GEN
varlower(const char *s, long w)
{
  long v;
  if (w >= 0)
  {
    hashentry *e = hash_select(h_polvar, (void*)s, (void*)w, _lower);
    if (e) return pol_x((long)e->val);
  }
  /* no luck: need to create */
  v = fetch_var();
  return var_register(v, s);
}
Пример #4
0
void
init_test(void)	  /* void */
{
  GEN p1;
  GEN p2;	  /* vec */
  p = pol_x(fetch_user_var("p"));
  d = pol_x(fetch_user_var("d"));
  f = pol_x(fetch_user_var("f"));
  /*allocatemem(800000000); */
  p = stoi(65537);
  d = gadd(genrand(powis(gen_2, 7)), powis(gen_2, 7));
  p1 = gaddgs(d, 1);
  {
    long x;
    p2 = cgetg(gtos(p1)+1, t_VEC);
    for (x = 1; gcmpsg(x, p1) <= 0; ++x)
      gel(p2, x) = genrand(p);
  }
  f = p2;
  gel(f, 1) = gen_1;
  f = gtopoly(f, -1);
  return;
}
Пример #5
0
GEN
varhigher(const char *s, long w)
{
  long v;
  if (w >= 0)
  {
    hashentry *e = hash_select(h_polvar, (void*)s, (void*)w, _higher);
    if (e) return pol_x((long)e->val);
  }
  /* no luck: need to create */
  if (nvar == max_avail) pari_err(e_MISC,"no more variables available");
  v = nvar++;
  varpriority[v]= ++max_priority;
  return var_register(v, s);
}
Пример #6
0
static GEN
var_register(long v, const char *s)
{
  varentries_reset(v, initep(s, strlen(s)));
  return pol_x(v);
}