Opened 6 years ago

Last modified 3 years ago

#14693 needs_info defect

Conversion of power series to symbolic ring

Reported by: eviatarbach Owned by: burcin
Priority: major Milestone: sage-6.4
Component: symbolics Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by nbruin)

Converting a power series to the symbolic ring doesn't work as expected:

sage: R.<t> = PowerSeriesRing(QQ)
sage: p = R([1,2,3])
sage: SR(p).variables()
()
sage: diff(SR(p))
0

Perhaps it could be converted to a polynomial first and then converted to the symbolic ring?

sage: SR(p.polynomial()).variables()
(t,)
sage: diff(SR(p.polynomial()))      
6*t + 2

Or maybe just raise an error (as per #13360)?

Change History (8)

comment:1 Changed 6 years ago by eviatarbach

  • Description modified (diff)

comment:2 Changed 6 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:3 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:4 Changed 5 years ago by eviatarbach

#15707 is related.

comment:5 Changed 5 years ago by nbruin

  • Description modified (diff)
  • Summary changed from Coercion of power series to symbolic ring to Conversion of power series to symbolic ring

The examples here refer to conversion; not coercion. That fact that power series over "basic" ring types such as rationals or integers don't convert into SR is, I think, a shortcoming that can be fixed. The main thing is to find how to represent the relevant "big-Oh" in SR. Maxima does have power series, so there is at least one back-end that provides some support: http://maxima.sourceforge.net/docs/manual/en/maxima_28.html#IDX1221. Linking up maxima's internal format with sage might need some work:

sage: F=maxima_calculus('taylor(sin(x),x,0,3)')
sage: F
x-x^3/6
sage: F.ecl()
<ECL: ((MRAT SIMP (((%SIN SIMP) $X) $X) (#:|sin(x)2136| #:X2137)
  (($X ((3 . 1)) 0 NIL #:X2137 . 2)) TRUNC)
 PS (#:X2137 . 2) ((3 . 1)) ((1 . 1) 1 . 1) ((3 . 1) -1 . 6))>
sage: F-x+x^3/6
+0
sage: (F-x+x^3/6).ecl()
<ECL: ((MRAT SIMP ($X) (#:X2145) (($X ((3 . 1)) 0 NIL #:X2145 . 1)) TRUNC) 0 . 1)>

(in maxima this prints with dots, so it knows it's a power series)

comment:6 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:7 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:8 Changed 3 years ago by jakobkroeker

  • Status changed from new to needs_info

seems fixed?

Note: See TracTickets for help on using tickets.