#1956: implement multivariate truncated power series arithmetic
-------------------------------------------+--------------------------------
Reporter: was | Owner: pernici
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.7
Component: commutative algebra | Keywords: multivariate power
series
Author: Niles Johnson | Upstream: N/A
Reviewer: Martin Albrecht, Simon King | Merged:
Work_issues: |
-------------------------------------------+--------------------------------
Changes (by niles):
* status: needs_review => needs_work
Comment:
Replying to [comment:96 hlaw]:
> First, thanks for all your work Niles, what you've done has already
saved me hours of pain!
>
Thanks -- glad to hear it! It has cost me many hours, so I hope the
review will be finished soon (after I fix this problem :)
> There seems to be a problem with how coercion/evaluation works between
two multivariate power series rings when the number of variables in each
differs.
Actually it never occurred to me that people would want to substitute into
a power series from one ring elements from a different ring, or that such
behavior should be supported, but I can see now why it might be useful.
The problem is occurring in the `__call__` method of `MPowerSeries`, which
assumes that the inputs should coerce to the parent of the power series
they're being substituted into. A separate part of the problem is that
elements from one power series ring are incorrectly coercing to 1 in the
other power series ring:
{{{
sage: B.<s, t> = PowerSeriesRing(QQ)
sage: C.<z> = PowerSeriesRing(QQ)
sage: B(z)
1
sage: C(s)
---------------------------------------------------------------------------
...
TypeError: Unable to coerce s (<class
'sage.rings.multi_power_series_ring_element.MPowerSeries'>) to Rational
}}}
So I will have to figure out what is going wrong here. In the meantime,
if you need to actually use this, you can use `._value()` to recover the
underlying multivariate polynomial, do the substitution there, and then
`.add_bigoh()` to get a power series again. The important idea is that
the precision of the power series after substitution should be `n*v`,
where `n` is the precision of the original power series, and `v` is the
minimum of the valuations of the input power series.
Something smarter might be done by mimicking the `__call__` method of
`MPolynomial_element`, but I haven't thought through that yet -- let me
know if you do :)
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/1956#comment:97>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.