Assertions in debug build

32 views
Skip to first unread message

Volker Braun

unread,
Sep 12, 2014, 1:15:08 PM9/12/14
to libsingu...@googlegroups.com
We are trying to build a debug version of Singular (without -DNDEBUG and _DOM_NDEBUG) and get a number of assertions triggered, perhaps incorrectly so. Here is an example (simplified version of one of the Sage doctests):


                     SINGULAR                                 /  Development
 A Computer Algebra System for Polynomial Computations       /   version 3-1-6
                                                           0<
 by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann     \   Dec 2012
FB Mathematik der Universitaet, D-67653 Kaiserslautern        \
> ring R=0,(x,y,z),ds;
// ** Could not open dynamic library: /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldIndep.sog
// ** Error message from system: /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldIndep.sog: cannot open shared object file: No such file or directory
// ** Singular will work properly, but much slower.
// ** See the INSTALL section in the Singular manual for details.
> multBound=100;
> ideal J=ideal(x^7+y^7+z^6, x^6+y^8+z^7, x^7+y^5+z^8);
> groebner(J);

// ***dPolyError: mixed poly/vector 
 occured at
 occured for poly: x7*gen(49)+z8*gen(49)
// ***dPolyError: mixed poly/vector 
 occured at
 occured for poly: z7*gen(49)+y8*gen(49)
// ***dPolyError: mixed poly/vector 
 occured at
 occured for poly: x7*gen(49)+y7*gen(49)_[1]=y5+x7+z8
_[2]=x6+z7+y8
_[3]=z6+x7+y7


The result is correct. Is it feasible to make a debug build that enables assertions in Singular?

Best,
Volker 

Volker Braun

unread,
Sep 13, 2014, 2:53:13 PM9/13/14
to libsingu...@googlegroups.com
As a partial answer to my question, here are the changes that I had to make get through the "make ptest" Sage doctests with singular 3-1-6.
debug_fixes.patch

han...@mathematik.uni-kl.de

unread,
Sep 15, 2014, 8:56:50 AM9/15/14
to libsingu...@googlegroups.com
On Fri, Sep 12, 2014 at 10:15:08AM -0700, Volker Braun wrote:
> > ring R=0,(x,y,z),ds;
> // ** Could not open dynamic library:
> /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldIndep.sog
> // ** Error message from system:
> /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldIndep.sog: cannot
> open shared object file: No such file or directory
> // ** Singular will work properly, but much slower.
> // ** See the INSTALL section in the Singular manual for details.
This is an install problem: the debug version creates p_Procs_*.sog
as modules while the normal version creates p_Procs_*.so.

> > multBound=100;
> > ideal J=ideal(x^7+y^7+z^6, x^6+y^8+z^7, x^7+y^5+z^8);
> > groebner(J);
> // ***dPolyError: mixed poly/vector
> occured at
> occured for poly: x7*gen(49)+z8*gen(49)
> // ***dPolyError: mixed poly/vector
> occured at
> occured for poly: z7*gen(49)+y8*gen(49)
> // ***dPolyError: mixed poly/vector
> occured at
> occured for poly: x7*gen(49)+y7*gen(49)_[1]=y5+x7+z8
This indicates an error: here the test routine refers to
the wrong ring which does not describe the polynomials.
Fortuanltly, the bug is only in the test code, not the actual algorithm.
> _[2]=x6+z7+y8
> _[3]=z6+x7+y7
> The result is correct. Is it feasible to make a debug build that enables
> assertions in Singular?
Singular uses "assume(...)"
which is defined in kernel/mod2.h

#ifndef NDEBUG
....
/* undefine to disable assume -- should normally be defined for NDEBUG */
#define HAVE_ASSUME
....

#ifndef HAVE_ASSUME
#define assume(x) ((void) 0)
#define r_assume(x) ((void) 0)
#else /* ! HAVE_ASSUME */

#define assume_violation(s,f,l) \
dReportError("assume violation at %s:%d condition: %s", f,l,s)

#define assume(x) _assume(x, __FILE__, __LINE__)
...
#define _assume(x, f, l) \
do \
{ \
if (! (x)) \
{ \
assume_violation(#x, f, l); \
} \
} \
while (0)

The patch for fixing the tests follows soon.

Hans

han...@mathematik.uni-kl.de

unread,
Sep 15, 2014, 9:15:11 AM9/15/14
to libsingu...@googlegroups.com
On Sat, Sep 13, 2014 at 11:53:13AM -0700, Volker Braun wrote:
> As a partial answer to my question, here are the changes that I had to
> make get through the "make ptest" Sage doctests with singular 3-1-6.
>
Can you provide the failing tests?
Your fixes are simply disbaling some tests.
While this may be tolarable in some cases
(dReportError("L[%d].p1 not in T",lpos);
or
dReportError("S_2_R[%d]=%d != T[%d].i_r=%d\n"
or
dReportError("L[%d].i_r1 out of sync", i);
or
assume(length <= 0 || length == pLength(p));)
others show real bugs
(pPolyAssumeReturnMsg(ismod == (p_GetComp(p, r) != 0), "mixed
poly/vector",p,r)
and
idTest(res_image_id);)
and should be fixed.

Hans

attached the fix for the first example (grobner in local ring)
diff

Volker Braun

unread,
Sep 15, 2014, 11:02:25 AM9/15/14
to libsingu...@googlegroups.com
Ok, I'll recompile and report back...

Most of the failures were associated to letterplace algebra computations. 

Volker Braun

unread,
Sep 15, 2014, 2:09:05 PM9/15/14
to libsingu...@googlegroups.com
The full log is here:

http://boxen.math.washington.edu/home/vbraun/logs/singular-ptestlong.log

I picked out what I thought are the most fundamental examples of failing tests below; I can rewrite them in Singular if necessary but most of them should be pretty clear:


#############################################################
sage: P.<a,b,c> = PolynomialRing(QQ,3, order='lex')
sage: I = sage.rings.ideal.Katsura(P,3)
sage: I.groebner_basis('libsingular:slimgb')

// ***dError: assume violation at tgb.cc:4521 condition: (!(c->eliminationProblem)) || (los[i].sugar >= c->pTotaldegree (los[i].p)) occured at: 

// ***dError: assume violation at tgb.cc:4521 condition: (!(c->eliminationProblem)) || (los[i].sugar >= c->pTotaldegree (los[i].p)) occured at: 
[a - 60*c^3 + 158/7*c^2 + 8/7*c - 1, b + 30*c^3 - 79/7*c^2 + 3/7*c, c^4 - 10/21*c^3 + 1/84*c^2 + 1/84*c]

#############################################################
sage: F.<x,y,z> = FreeAlgebra(QQ, implementation='letterplace')
sage: I = F*[x*y+y*z,x^2+x*y-y*x-y^2]*F
sage: I.groebner_basis(degbound=3)

// ***dError: S_2_R[0]=1 != T[1].i_r=0
 occured at: 

// ***dError: L[0].p1 not in T occured at: 

// ***dError: L[0].p1 not in T occured at: 

// ***dError: S_2_R[2]=1 != T[1].i_r=0
 occured at: 
Twosided Ideal (y*y*y - y*y*z + y*z*y - y*z*z, y*y*x + y*y*z + y*z*x + y*z*z, x*y + y*z, x*x - y*x - y*y - y*z) of Free Associative Unital Algebra on 3 generators (x, y, z) over Rational Field

#############################################################
sage: F.<x,y,z> = FreeAlgebra(QQ, implementation='letterplace')
sage: I = F*[x*y+y*z,x^2+x*y-y*x-y^2]*F
sage: I.reduce(x^3)

// ***dError: S_2_R[0]=1 != T[1].i_r=0
 occured at: 

// ***dError: L[0].p1 not in T occured at: 

// ***dError: L[0].p1 not in T occured at: 

// ***dError: S_2_R[2]=1 != T[1].i_r=0
 occured at: 
-y*z*x - y*z*y - y*z*z

#############################################################
sage: x, y, z = var("x y z")
sage: solve_mod([2*x^2 + x*y, -x*y+2*y^2+x-2*y, -2*x^2+2*x*y-y^2-x-y], 12)

// ***dError: assume violation at sbuckets.cc:180 condition: length <= 0 || length == pLength(p) occured at: 

// ***dError: assume violation at sbuckets.cc:180 condition: length <= 0 || length == pLength(p) occured at: 
[(0, 0), (4, 4), (0, 3), (4, 7)]

#############################################################
sage: R.<a,b,c> = PowerSeriesRing(ZZ)
sage: (a^2+b^2+c^2).quo_rem(1/(1+a+b+c))

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 
(a^2 + b^2 + c^2 + a^3 + a^2*b + a^2*c + a*b^2 + a*c^2 + b^3 + b^2*c + b*c^2 + c^3 + O(a, b, c)^14,
 0)

#############################################################
sage: U = PolynomialRing(ZZ, 'u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11')
sage: R = PolynomialRing(U, 'x0, x1, x2')
sage: U.inject_variables()
Defining u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11
sage: R.inject_variables()
Defining x0, x1, x2
sage: (u0*x0 + u1*x1 + u2*x2).macaulay_resultant([u3*x0 + u4*x1 + u5*x2, u6*x0^2 + u7*x0*x1 + u9*x1^2 + u8*x0*x2 + u10*x1*x2 + u11*x2^2])

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 
u2^2*u4^2*u6 - 2*u1*u2*u4*u5*u6 + u1^2*u5^2*u6 - u2^2*u3*u4*u7 + u1*u2*u3*u5*u7 + u0*u2*u4*u5*u7 - u0*u1*u5^2*u7 + u1*u2*u3*u4*u8 - u0*u2*u4^2*u8 - u1^2*u3*u5*u8 + u0*u1*u4*u5*u8 + u2^2*u3^2*u9 - 2*u0*u2*u3*u5*u9 + u0^2*u5^2*u9 - u1*u2*u3^2*u10 + u0*u2*u3*u4*u10 + u0*u1*u3*u5*u10 - u0^2*u4*u5*u10 + u1^2*u3^2*u11 - 2*u0*u1*u3*u4*u11 + u0^2*u4^2*u11






Volker Braun

unread,
Sep 15, 2014, 2:23:44 PM9/15/14
to libsingu...@googlegroups.com
I can confirm that the patch fixes the "mixed poly/vector" error.


On Monday, September 15, 2014 2:15:11 PM UTC+1, han...@mathematik.uni-kl.de wrote:

han...@mathematik.uni-kl.de

unread,
Sep 16, 2014, 9:36:04 AM9/16/14
to libsingu...@googlegroups.com
On Mon, Sep 15, 2014 at 11:09:05AM -0700, Volker Braun wrote:
> The full log is here:
> http://boxen.math.washington.edu/home/vbraun/logs/singular-ptestlong.log
> I picked out what I thought are the most fundamental examples of failing
> tests below; I can rewrite them in Singular if necessary but most of them
> should be pretty clear:
Thanks,
I attached the patch which should fix the problems with slimgb and
FreeAlgebra.
Can you please give Singular code for the examples with
quo_rem,macaulay_resultant, solve_mod?

Hannes
diff

Volker Braun

unread,
Sep 16, 2014, 11:29:11 AM9/16/14
to libsingu...@googlegroups.com
The quo_rem error boils down to this in Sage:

sage: R.<x,y,z> = IntegerModRing(4)[]
sage: eq = 2*y^2-2*y
sage: eq(0,2,0)

// ***dError: assume violation at sbuckets.cc:180 condition: length <= 0 || length == pLength(p) occured at: 
0


I can't quite reproduce the same error on the Singular shell. I think "map" will end up punting to fast_map but I get a different error (this also works as intended on the non-debug version of Singular):


                     SINGULAR                                 /  Development
 A Computer Algebra System for Polynomial Computations       /   version 3-1-6
                                                           0<
 by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann     \   Dec 2012
FB Mathematik der Universitaet, D-67653 Kaiserslautern        \
> ring R = (integer, 2, 2),(x,y,z),dp;
// ** Could not open dynamic library: /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldGeneral.sog
// ** Error message from system: /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldGeneral.sog: cannot open shared object file: No such file or directory
// ** Singular will work properly, but much slower.
// ** See the INSTALL section in the Singular manual for details.
> poly p = 2*x**2-2*y;
> map f = R, 0, 2, 0;
> f(p);

// ***dPolyError: Zero coef 
 occured at
 occured for poly: 0
// ***dPolyError: Zero coef 
 occured at
 occured for poly: 0
// ***dPolyError: Zero coef 
 occured at
 occured for poly: 0
// ***dPolyError: Zero coef 
 occured at
 occured for poly: 0
// ***dPolyError: Zero coef 
 occured at
 occured for poly: 00


Is there another way to call fast_map from the command line? I can also try to write a test in libSingular, though that'll take me a bit longer. For the record, this is where the "assume violation at sbuckets.cc:180" comes from:



$ ./sage -gdb
┌────────────────────────────────────────────────────────────────────┐
│ Sage Version 6.4.beta2, Release Date: 2014-08-28                   │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: this is a prerelease version, and it may be unstable.     ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
GNU gdb (GDB) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
Reading symbols from /home/vbraun/Sage/git-develop/local/bin/python...done.
Python was not compiled with debug symbols (or it was stripped). Some functionality may not work (properly).
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffd000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffeb0d6700 (LWP 13872)]
sage: 
Program received signal SIGINT, Interrupt.
0x000000399a8ec513 in select () from /lib64/libc.so.6
(gdb) break dReportError
Breakpoint 1 at 0x7fffccb75245: file dError.c, line 28.
(gdb) cont
Continuing.

sage: sage: R.<x,y,z> = IntegerModRing(4)[]
sage: sage: eq = 2*y^2-2*y
sage: sage: eq(0,2,0)

Breakpoint 1, dReportError (fmt=0x7fffccd93b98 "assume violation at %s:%d condition: %s") at dError.c:28
28  va_start(ap, fmt);
(gdb) up
#1  0x00007fffccb38eb6 in sBucket_Add_p (bucket=0x2c85178, p=0x0, length=1) at sbuckets.cc:180
180  assume(length <= 0 || length == pLength(p));
(gdb) l
175 }
176
177 void sBucket_Add_p(sBucket_pt bucket, poly p, int length)
178 {
179  assume(bucket != NULL);
180  assume(length <= 0 || length == pLength(p));
181
182  if (p == NULL) return;
183  if (length <= 0) length = pLength(p);
184
(gdb) print *bucket
$1 = {
  bucket_ring = 0x19bad58, 
  max_bucket = 0, 
  buckets = {{
      p = 0x0, 
      length = 0
    } <repeats 61 times>}
}
(gdb) print *p
Cannot access memory at address 0x0
(gdb) print length
$2 = 1
(gdb) print pLength(p)
$3 = 0
(gdb) up
#2  0x00007fffccad3761 in maPoly_Substitute (c=0x28148a8, p=0x28148d8, dest_r=0x19bad58)
    at fast_maps.cc:443
443    sBucket_Add_p(c->bucket, t, len);
(gdb) l
438  int done=0;
439  while (c!=NULL)
440  {
441    done++;
442    poly t=pp_Mult_nn(p,c->n,dest_r);
443    sBucket_Add_p(c->bucket, t, len);
444    c=c->next;
445  }
446  return done;
447 }
(gdb) up
#3  0x00007fffccad3b3c in maPoly_Eval (root=0x27f6038, src_r=0x1912778, dest_id=0x2736a58, 
    dest_r=0x19bad58, total_cost=0) at fast_maps.cc:546
546    p->ref -= maPoly_Substitute(p->coeff, p->dest, dest_r);
(gdb) l
541        // no factorization provided, use the classical method:
542        p->dest=maPoly_EvalMon(p->src,src_r,dest_id->m,dest_r);
543      }
544    } /* p->dest==NULL */
545    // substitute the monomial: go through macoeff
546    p->ref -= maPoly_Substitute(p->coeff, p->dest, dest_r);
547    //printf("subst done\n");
548    if (total_cost)
549    {
550      assume(TEST_OPT_PROT);
(gdb) up
#4  0x00007fffccad35cd in fast_map (map_id=0x2aa2078, map_r=0x184f1d8, image_id=0x28acc68, 
    image_r=0x184f1d8) at fast_maps.cc:394
394  maPoly_Eval(mp, src_r, dest_id, dest_r, length);
(gdb) l
389    maPoly_GetLength(mp, length);
390    Print("%d}", length);
391  }
392
393  // do the actual evaluation
394  maPoly_Eval(mp, src_r, dest_id, dest_r, length);
395  if (TEST_OPT_PROT) Print(".");
396
397  // collect the results back into an ideal
398  ideal res_dest_id = maIdeal_2_Ideal(mideal, dest_r);
(gdb) up
#5  0x00007fffcb9f788b in __pyx_f_4sage_4libs_8singular_10polynomial_singular_polynomial_call (
    __pyx_v_ret=0x7fffffffa858, __pyx_v_p=0x269ae98, __pyx_v_r=0x184f1d8, __pyx_v_args=
    [<sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular at remote 0x7fffb6a6b1e0>, <sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular at remote 0x7fffb6a6b260>, <sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular at remote 0x7fffb6a6b3e0>], 
    __pyx_v_get_element=
    0x7fffcc3a1280 <__pyx_f_4sage_5rings_10polynomial_28multi_polynomial_libsingular_MPolynomial_libsingular_get_element(PyObject*)>) at build/cythonized/sage/libs/singular/polynomial.cpp:3725
3725  __pyx_v_res_id = fast_map(__pyx_v_from_id, __pyx_v_r, __pyx_v_to_id, __pyx_v_r);
(gdb) l
3720 *     rChangeCurrRing(r)
3721 *     cdef ideal *res_id = fast_map(from_id, r, to_id, r)             # <<<<<<<<<<<<<<
3722 *     ret[0] = res_id.m[0]
3723
3724 */
3725  __pyx_v_res_id = fast_map(__pyx_v_from_id, __pyx_v_r, __pyx_v_to_id, __pyx_v_r);
3726
3727  /* "sage/libs/singular/polynomial.pyx":158
3728 *     rChangeCurrRing(r)
3729 *     cdef ideal *res_id = fast_map(from_id, r, to_id, r)






Volker Braun

unread,
Sep 16, 2014, 11:33:16 AM9/16/14
to libsingu...@googlegroups.com
Correction: That was about the solve_mod error, not quo_rem. 

Volker Braun

unread,
Sep 16, 2014, 12:15:06 PM9/16/14
to libsingu...@googlegroups.com
The error in the macaulay_resultant comes from computing the characteristic polynomial of a matrix, which ends up doing the following multiplication:



                     SINGULAR                                 /  Development
 A Computer Algebra System for Polynomial Computations       /   version 3-1-6
                                                           0<
 by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann     \   Dec 2012
FB Mathematik der Universitaet, D-67653 Kaiserslautern        \
> ring R = integer,(u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11),dp;
// ** Could not open dynamic library: /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldGeneral.sog
// ** Error message from system: /home/vbraun/Sage/git-develop/local/bin/p_Procs_FieldGeneral.sog: cannot open shared object file: No such file or directory
// ** Singular will work properly, but much slower.
// ** See the INSTALL section in the Singular manual for details.
> poly p = u2**2*u6 + u2*u5*u7 + u0*u2*u8 + u1*u5*u8 + u5**2*u9 + u2*u3*u10 + u4*u5*u10 + 2*u2*u8*u11 + 2*u5*u10*u11 + u11**3;
> poly q = -u0**3 + 4*u0*u1*u3 - 6*u0**2*u4 + 2*u1*u3*u4 - 3*u0*u4**2 - u2**2*u6 - u2*u5*u7 + 2*u0*u2*u8 + 2*u2*u4*u8 - u1*u5*u8 - u5**2*u9 - u2*u3*u10 + 3*u0*u5*u10 + u4*u5*u10 - 3*u0**2*u11 + 2*u1*u3*u11 - 6*u0*u4*u11 - u4**2*u11;
> p * q;

// ***dError: assume violation at p_Mult_q.cc:72 condition: !rField_is_Ring(currRing) occured at: 
-u0^3*u2^2*u6+4*u0*u1*u2^2*u3*u6-6*u0^2*u2^2*u4*u6+2*u1*u2^2*u3*u4*u6-3*u0*u2^2*u4^2*u6-u2^4*u6^2-u0^3*u2*u5*u7+4*u0*u1*u2*u3*u5*u7-6*u0^2*u2*u4*u5*u7+2*u1*u2*u3*u4*u5*u7-3*u0*u2*u4^2*u5*u7-2*u2^3*u5*u6*u7-u2^2*u5^2*u7^2-u0^4*u2*u8+4*u0^2*u1*u2*u3*u8-6*u0^3*u2*u4*u8+2*u0*u1*u2*u3*u4*u8-3*u0^2*u2*u4^2*u8-u0^3*u1*u5*u8+4*u0*u1^2*u3*u5*u8-6*u0^2*u1*u4*u5*u8+2*u1^2*u3*u4*u5*u8-3*u0*u1*u4^2*u5*u8+u0*u2^3*u6*u8+2*u2^3*u4*u6*u8-2*u1*u2^2*u5*u6*u8+u0*u2^2*u5*u7*u8+2*u2^2*u4*u5*u7*u8-2*u1*u2*u5^2*u7*u8+2*u0^2*u2^2*u8^2+2*u0*u2^2*u4*u8^2+u0*u1*u2*u5*u8^2+2*u1*u2*u4*u5*u8^2-u1^2*u5^2*u8^2-u0^3*u5^2*u9+4*u0*u1*u3*u5^2*u9-6*u0^2*u4*u5^2*u9+2*u1*u3*u4*u5^2*u9-3*u0*u4^2*u5^2*u9-2*u2^2*u5^2*u6*u9-2*u2*u5^3*u7*u9+u0*u2*u5^2*u8*u9+2*u2*u4*u5^2*u8*u9-2*u1*u5^3*u8*u9-u5^4*u9^2-u0^3*u2*u3*u10+4*u0*u1*u2*u3^2*u10-6*u0^2*u2*u3*u4*u10+2*u1*u2*u3^2*u4*u10-3*u0*u2*u3*u4^2*u10-u0^3*u4*u5*u10+4*u0*u1*u3*u4*u5*u10-6*u0^2*u4^2*u5*u10+2*u1*u3*u4^2*u5*u10-3*u0*u4^3*u5*u10-2*u2^3*u3*u6*u10+3*u0*u2^2*u5*u6*u10-2*u2^2*u3*u5*u7*u10+3*u0*u2*u5^2*u7*u10+u0*u2^2*u3*u8*u10+2*u2^2*u3*u4*u8*u10+3*u0^2*u2*u5*u8*u10-2*u1*u2*u3*u5*u8*u10+3*u0*u2*u4*u5*u8*u10+2*u2*u4^2*u5*u8*u10+3*u0*u1*u5^2*u8*u10-2*u2*u3*u5^2*u9*u10+3*u0*u5^3*u9*u10-u2^2*u3^2*u10^2+3*u0*u2*u3*u5*u10^2+3*u0*u4*u5^2*u10^2+u4^2*u5^2*u10^2-3*u0^2*u2^2*u6*u11+2*u1*u2^2*u3*u6*u11-6*u0*u2^2*u4*u6*u11-u2^2*u4^2*u6*u11-3*u0^2*u2*u5*u7*u11+2*u1*u2*u3*u5*u7*u11-6*u0*u2*u4*u5*u7*u11-u2*u4^2*u5*u7*u11-5*u0^3*u2*u8*u11+10*u0*u1*u2*u3*u8*u11-18*u0^2*u2*u4*u8*u11+4*u1*u2*u3*u4*u8*u11-7*u0*u2*u4^2*u8*u11-3*u0^2*u1*u5*u8*u11+2*u1^2*u3*u5*u8*u11-6*u0*u1*u4*u5*u8*u11-u1*u4^2*u5*u8*u11-2*u2^3*u6*u8*u11-2*u2^2*u5*u7*u8*u11+4*u0*u2^2*u8^2*u11+4*u2^2*u4*u8^2*u11-2*u1*u2*u5*u8^2*u11-3*u0^2*u5^2*u9*u11+2*u1*u3*u5^2*u9*u11-6*u0*u4*u5^2*u9*u11-u4^2*u5^2*u9*u11-2*u2*u5^2*u8*u9*u11-3*u0^2*u2*u3*u10*u11+2*u1*u2*u3^2*u10*u11-6*u0*u2*u3*u4*u10*u11-u2*u3*u4^2*u10*u11-2*u0^3*u5*u10*u11+8*u0*u1*u3*u5*u10*u11-15*u0^2*u4*u5*u10*u11+6*u1*u3*u4*u5*u10*u11-12*u0*u4^2*u5*u10*u11-u4^3*u5*u10*u11-2*u2^2*u5*u6*u10*u11-2*u2*u5^2*u7*u10*u11-2*u2^2*u3*u8*u10*u11+10*u0*u2*u5*u8*u10*u11+6*u2*u4*u5*u8*u10*u11-2*u1*u5^2*u8*u10*u11-2*u5^3*u9*u10*u11-2*u2*u3*u5*u10^2*u11+6*u0*u5^2*u10^2*u11+2*u4*u5^2*u10^2*u11-6*u0^2*u2*u8*u11^2+4*u1*u2*u3*u8*u11^2-12*u0*u2*u4*u8*u11^2-2*u2*u4^2*u8*u11^2-6*u0^2*u5*u10*u11^2+4*u1*u3*u5*u10*u11^2-12*u0*u4*u5*u10*u11^2-2*u4^2*u5*u10*u11^2-u0^3*u11^3+4*u0*u1*u3*u11^3-6*u0^2*u4*u11^3+2*u1*u3*u4*u11^3-3*u0*u4^2*u11^3-u2^2*u6*u11^3-u2*u5*u7*u11^3+2*u0*u2*u8*u11^3+2*u2*u4*u8*u11^3-u1*u5*u8*u11^3-u5^2*u9*u11^3-u2*u3*u10*u11^3+3*u0*u5*u10*u11^3+u4*u5*u10*u11^3-3*u0^2*u11^4+2*u1*u3*u11^4-6*u0*u4*u11^4-u4^2*u11^4

Volker Braun

unread,
Sep 16, 2014, 12:33:11 PM9/16/14
to libsingu...@googlegroups.com
The quo_rem also boils down to the multiplication of two integer polynomials, so its probably the same issue as the macaulay_resultant one.

han...@mathematik.uni-kl.de

unread,
Sep 17, 2014, 5:26:44 AM9/17/14
to libsingu...@googlegroups.com
I cannot reproduce this.
> >
> >
> > Is there another way to call fast_map from the command line? I can also
> > try to write a test in libSingular, though that'll take me a bit longer.
> > For the record, this is where the "assume violation at sbuckets.cc:180"
> > comes from:
fast_map ist used for mapping ideals between rings (but not polynomials) if the
coefficient ring is the same:
ring R = (integer, 2, 2),(x,y,z),dp;
ideal p = 2*x**2-2*y;
map f = R, 0, 2, 0;
f(p);
and also by pSubst/subst.

Attached is the patch for fast_map example above and the
"!rField_is_Ring(currRing)" in the multiplication of integer
polynomials.

Hannes
diff

Volker Braun

unread,
Sep 23, 2014, 10:11:19 AM9/23/14
to libsingu...@googlegroups.com
With the three patches in this thread the whole Sage testsuite passes without problems in a debug build. Thanks for the quick fixes!
Reply all
Reply to author
Forward
0 new messages