#15321: Function changes behaviour, related to polynomial rings
---------------------------+-------------------------
Reporter: gagern | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-5.13
Component: algebra | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
---------------------------+-------------------------
Description changed by gagern:
Old description:
> I've just observed the following strange behaviour:
>
> {{{
> sage: PR1 = PolynomialRing(QQ, ["t" + str(i) for i in range(10)])
> sage: t = PR1.gens()
> sage: def L(r, j):
> ... return (t[r] - t[r + j])/t[r + j]
> ...
> sage: PR2 = PolynomialRing(PR1.fraction_field(), ["p" + str(i) for i in
> range(5)])
> sage: p = PR2.gens()
> sage: def D(r):
> ... return sum(L(r, j)*p[r-4+j] for j in range(3))
> ...
> sage: D(4)
> ((t4 - t5)/t5)*p1 + ((t4 - t6)/t6)*p2
> sage: myc = list(D(4)) # here the command works all right
> sage: D(4) # reproducing the call still works fine here
> ((t4 - t5)/t5)*p1 + ((t4 - t6)/t6)*p2
> sage: [c for c, p in myc] # THIS LINE APPEARS TO BREAK THINGS!
> [(t4 - t5)/t5, (t4 - t6)/t6]
> sage: D(4) # now the result is wrong, no error reported
> 0
> sage: myc = list(D(4)) # and this throws, probably due to the zero
> result
> Traceback (most recent call last):
> ...
> TypeError: 'sage.rings.fraction_field_element.FractionFieldElement'
> object is not iterable
> }}}
>
> So it seems that repeated execution of the same function can yield
> different (and sometimes wrong!) results if some result was iterated over
> in a certain way. No clue why.
New description:
I've just observed the following strange behaviour in sage 5.12:
{{{
sage: PR1 = PolynomialRing(QQ, ["t" + str(i) for i in range(10)])
sage: t = PR1.gens()
sage: def L(r, j):
... return (t[r] - t[r + j])/t[r + j]
...
sage: PR2 = PolynomialRing(PR1.fraction_field(), ["p" + str(i) for i in
range(5)])
sage: p = PR2.gens()
sage: def D(r):
... return sum(L(r, j)*p[r-4+j] for j in range(3))
...
sage: D(4)
((t4 - t5)/t5)*p1 + ((t4 - t6)/t6)*p2
sage: myc = list(D(4)) # here the command works all right
sage: D(4) # reproducing the call still works fine here
((t4 - t5)/t5)*p1 + ((t4 - t6)/t6)*p2
sage: [c for c, p in myc] # THIS LINE APPEARS TO BREAK THINGS!
[(t4 - t5)/t5, (t4 - t6)/t6]
sage: D(4) # now the result is wrong, no error reported
0
sage: myc = list(D(4)) # and this throws, probably due to the zero
result
Traceback (most recent call last):
...
TypeError: 'sage.rings.fraction_field_element.FractionFieldElement' object
is not iterable
}}}
So it seems that repeated execution of the same function can yield
different (and sometimes wrong!) results if some result was iterated over
in a certain way. No clue why.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/15321#comment:1>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.