Bill Allombert on Thu, 3 Apr 2003 13:54:14 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: polredabs(,16) bug


On Thu, Apr 03, 2003 at 12:13:12PM +0200, Karim BELABAS wrote:
> On Thu, 3 Apr 2003, Igor Schein wrote:
> > ? polredabs(x^4+9670527181567158504671*x^2+4840282594390812607599424249,16);
> >   ***   impossible concatenation in concat
> 
> I can't reproduce this [ CHANGES-1.724, ix86 kernel, gcc-2.96 20000731 ].
> 
> Any special setting I should be aware of ?
Strange, it seems easy to reproduce (on a2x1 for example).

Here the debugging info:

659           w1 = concatsp(w1, vecextract_i(u, 2, l-1));
660           N = *dx;
661           w2[i] = lstoi(pvaluation(N, (GEN)w1[i], &N));
662           k  = lw;
663           lw = lg(w1);
(gdb) p output(w1);
Invalid character ';' in expression.
(gdb) p output(w1)
[2, 3, 5, 1288066611066667]~
$1 = void
(gdb) p output(u)
[1288066611066667, 138999997, 500519]
$2 = void
(gdb) p output(vecextract_i(u, 2, l-1))
[138999997, 500519]

No is w is a t_COL and u a t_VEC.

Cheers,
Bill

PS:
/* prototype of positive small ints */
static long pos_s[] = {
  evaltyp(t_INT) | _evallg(3), evalsigne(1) | evallgefint(3), 0 };

/* prototype of negative small ints */
static long neg_s[] = {
  evaltyp(t_INT) | _evallg(3), evalsigne(-1) | evallgefint(3), 0 };

should probably be moved to add.C or mp_indep.c