On Thursday, February 16, 2017 at 5:48:24 AM UTC, William wrote:
>
> Better bug report -- a one-liner breaks in sage-7.5 but worked in
> sage-7.4.
>
I don't know whether proper conversion was done back to RR, was it?
This can only work seamlessly (without throwing errors in case of precision
loss)
if coefficients are allowed to grow precision as needed, but Sage's
floating point numbers don't do this.
(unlike e.g. mpmath floats). If coefficients were in RR(n) the the output
of Groebner basis might potentially be in RR(exp(O(n))),
if not it RR(exp(exp(O(n)))).
It's
> P.<x,y,z> = PolynomialRing(RR, 3, order='lex'); I =
> ideal(x^2+y^2+z^2-1, x^2-y+z^2, x-z); I.groebner_basis()
>
> See
>
> ~$ sage-7.4
> ┌────────────────────────────────────────────────────────────────────┐
> │ SageMath version 7.4, Release Date: 2016-10-18 │
> │ Enhanced for SageMathCloud. │
> └────────────────────────────────────────────────────────────────────┘
> sage: P.<x,y,z> = PolynomialRing(RR, 3, order='lex'); I =
> ideal(x^2+y^2+z^2-1, x^2-y+z^2, x-z); I.groebner_basis()
> [x - z, y - 2.00000000000000*z^2, z^4 + 0.500000000000000*z^2 -
> 0.250000000000000]
> sage:
> Exiting Sage (CPU time 0m0.64s, Wall time 0m29.60s).
> Exiting Singular with PID 21074 running
> /projects/sage/sage-7.4/local/bin/Singular -t --ticks-per-sec 1000
> --cntrlc=a
> ~$ sage-7.5
> ┌────────────────────────────────────────────────────────────────────┐
> │ SageMath version 7.5, Release Date: 2017-01-11 │
> │ Enhanced for SageMathCloud. │
> └────────────────────────────────────────────────────────────────────┘
> sage: P.<x,y,z> = PolynomialRing(RR, 3, order='lex'); I =
> ideal(x^2+y^2+z^2-1, x^2-y+z^2, x-z); I.groebner_basis()
> ---------------------------------------------------------------------------
>
> KeyError Traceback (most recent call
> last)
> <ipython-input-1-67a484fdc04d> in <module>()
> ----> 1 P = PolynomialRing(RR, Integer(3), order='lex', names=('x',
> 'y', 'z',)); (x, y, z,) = P._first_ngens(3); I =
> ideal(x**Integer(2)+y**Integer(2)+z**Integer(2)-Integer(1),
> x**Integer(2)-y+z**Integer(2), x-z); I.groebner_basis()
>
> /projects/sage/sage-7.5/src/sage/misc/cachefunc.pyx in
> sage.misc.cachefunc.CachedMethodCaller.__call__
> (/projects/sage/sage-7.5/src/build/cythonized/sage/misc/cachefunc.c:10792)()
>
> 2036 return cache[k]
> 2037 except KeyError:
> -> 2038 w = self._instance_call(*args, **kwds)
> 2039 cache[k] = w
> 2040 return w
>
> /projects/sage/sage-7.5/src/sage/misc/cachefunc.pyx in
> sage.misc.cachefunc.CachedMethodCaller._instance_call
> (/projects/sage/sage-7.5/src/build/cythonized/sage/misc/cachefunc.c:10238)()
>
> 1912 True
> 1913 """
> -> 1914 return self.f(self._instance, *args, **kwds)
> 1915
> 1916 cdef fix_args_kwds(self, tuple args, dict kwds):
>
> /projects/sage/sage-7.5/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.pyc
>
>
> in groebner_basis(self, algorithm, deg_bound, mult_bound, prot, *args,
> **kwds)
> 3729 except (TypeError, NameError) as msg: # conversion
> to Singular not supported
> 3730 try:
> -> 3731 gb =
> self._groebner_basis_singular("groebner", deg_bound=deg_bound,
> mult_bound=mult_bound, *args, **kwds)
> 3732 except (TypeError, NameError,
> NotImplementedError) as msg: # conversion to Singular not supported
> 3733 if self.ring().term_order().is_global()
> and is_IntegerModRing(self.ring().base_ring()) and not
> self.ring().base_ring().is_field():
>
> /projects/sage/sage-7.5/local/lib/python2.7/site-packages/sage/interfaces/singular.pyc
>
>
> in wrapper(*args, **kwds)
> 2722 def wrapper(*args, **kwds):
> 2723 with SingularGBDefaultContext():
> -> 2724 return func(*args, **kwds)
> 2725 return wrapper
>
> /projects/sage/sage-7.5/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.pyc
>
>
> in _groebner_basis_singular(self, algorithm, *args, **kwds)
> 1364 R = self.ring()
> 1365 S =
> self._groebner_basis_singular_raw(algorithm=algorithm, *args, **kwds)
> -> 1366 S = PolynomialSequence([R(S[i+1]) for i in
> range(len(S))], R, immutable=True)
> 1367 return S
> 1368
>
> /projects/sage/sage-7.5/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ring.pyc
>
>
> in __call__(self, x, check)
> 479 self._singular_().set_ring()
> 480 try:
> --> 481 return x.sage_poly(self)
> 482 except TypeError:
> 483 raise TypeError("unable to coerce singular
> object")
>
> /projects/sage/sage-7.5/local/lib/python2.7/site-packages/sage/interfaces/singular.pyc
>
>
> in sage_poly(self, R, kcache)
> 1774 else:
> 1775 power=1
> -> 1776 exp[var_dict[var]]=power
> 1777
> 1778 if kcache is None:
>
> KeyError: '(1.000e+00)'
> sage:
>
> On Wed, Feb 15, 2017 at 6:22 PM, Matthew Macauley <[email protected]
> <javascript:>> wrote:
> > Typing the following:
> >
> >
> > P.<x,y,z> = PolynomialRing(RR, 3, order='lex'); P
> > I = ideal(x^2+y^2+z^2-1, x^2-y+z^2, x-z); I
> > B = I.groebner_basis(); B
> >
> >
> > gives a brutal error (type it into SageMathCell and you'll see).
> >
> >
> > Seth Sullivant suggested that it's due to a roundoff error, because it
> works
> > with fields such as "QQ" or "GF(3)", etc. That said, I am 99% sure that
> it's
> > a relatively new error, because I have typed in those exact lines in
> > previous semesters (it's from a HW problem that I assigned) and I
> haven't
> > had any prior issues.
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups
> > "sage-devel" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an
> > email to [email protected] <javascript:>.
> > To post to this group, send email to [email protected]
> <javascript:>.
> > Visit this group at https://groups.google.com/group/sage-devel.
> > For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> William (http://wstein.org)
>
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.