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.

Reply via email to