Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
16203: conversion from SR.series to PowerSeries
Browse files Browse the repository at this point in the history
  • Loading branch information
rwst committed Mar 21, 2016
1 parent 7f50c6b commit ec8c797
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/sage/rings/power_series_ring.py
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,19 @@ def _element_constructor_(self, f, prec=infinity, check=True):
sage: PowerSeriesRing(PowerSeriesRing(QQ,'x'),'x')(x).coefficients()
[x]
Conversion from symbolic series::
sage: x,y = var('x,y')
sage: s=(1/(1-x)).series(x,3); s
1 + 1*x + 1*x^2 + Order(x^3)
sage: R.<x> = PowerSeriesRing(QQ)
sage: R(s)
1 + x + x^2 + O(x^3)
sage: ex=(gamma(1-y)).series(y,3)
sage: R.<y> = PowerSeriesRing(SR)
sage: R(ex)
1 + euler_gamma*y + (1/2*euler_gamma^2 + 1/12*pi^2)*y^2 + O(y^3)
Laurent series with non-negative valuation are accepted (see
:trac:`6431`)::
Expand All @@ -728,6 +741,7 @@ def _element_constructor_(self, f, prec=infinity, check=True):
prec = integer.Integer(prec)
if prec < 0:
raise ValueError("prec (= %s) must be non-negative" % prec)
from sage.symbolic.series import SymbolicSeries
if isinstance(f, power_series_ring_element.PowerSeries) and f.parent() is self:
if prec >= f.prec():
return f
Expand All @@ -744,6 +758,12 @@ def _element_constructor_(self, f, prec=infinity, check=True):
num = self.element_class(self, f.numerator(), prec, check=check)
den = self.element_class(self, f.denominator(), prec, check=check)
return self.coerce(num/den)
elif isinstance(f, SymbolicSeries):
if str(f.default_variable()) is self.variable_name():
return self.element_class(self, f.list(),
f.degree(f.default_variable()), check=check)
else:
raise TypeError("Can only convert series into ring with same variable name.")
return self.element_class(self, f, prec, check=check)

def construction(self):
Expand Down

0 comments on commit ec8c797

Please sign in to comment.