I lean towards setting it to -∞.
While we are at this, how should `R.random_element` be called? The
method currently takes a `degree` argument, which is a tuple of lower
and upper bound, and if the user sets the lower bound to -1, then `0` is
a possible outcome. Would the user call it with `degree=(-oo,
upper_bound)` instead in the future?
Best regards,
Gareth
On 01/03/2024 09:07, 'Martin R' via sage-devel wrote:
I'd be OK with raising an exception or with -oo, but it should be
uniform, and I think it should be the same for polynomials, Laurent
polynomials and in the same spirit for degree and valuation.
It might be best to raise an exception, because this ensures that the
zero polynomial gets special treatment.
Martin
On Thursday 29 February 2024 at 22:54:20 UTC+1 Nils Bruin wrote:
On Thursday 29 February 2024 at 11:15:21 UTC-8 Dima Pasechnik wrote:
How about using something like
https://github.com/NeilGirdhar/extended_int ?
(Even better, do a PEP to have such a thing in Python proper...)
In old, totally duck-typed, Python this didn't really matter,
but nowadays it does make
a perfect sense.
At the moment, I think most degree functions do their best to
return sage Integer objects; mainly so that coercion works well
with them. So whatever solution we use should probably be based on
objects that naturally live in the sage hierarchy. We do have an
infinity object in sage and it already gets used for valuations.
Incidentally:
sage: R.<x>=LaurentSeriesRing(QQ)
sage: z=R(0)
sage: z.valuation()
+Infinity
sage: z.degree()
-1
I don't quite know why laurent series have a degree defined at
all, but they're keeping to the deg(0)=-1 convention.
Incidentally:
sage: A.<x>=QQ[]
sage: B.<y>=LaurentPolynomialRing(QQ)
sage: x.valuation(oo)
-1
sage: y.valuation(oo)
1
so polynomial rings have a valuation (that will return +oo when
appropriate), but on LaurentPolynomialRing this gets silently
broken: the argument simply gets ignored and the valuation at 0 is
returned. So I guess you can get a well-behaving degree with
f=0*y
-f(1/y).valuation()
--
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 sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/ec50bffa-37ef-4bee-9095-09e738be1842n%40googlegroups.com
<https://groups.google.com/d/msgid/sage-devel/ec50bffa-37ef-4bee-9095-09e738be1842n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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 sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/6e66f617-3cc4-4657-a880-c3494a28decb%40gmail.com.