I think the ring series can only be used for n terms, i.e. if you have
some expression, like sin(x)*cos(x), then you first expand sin(x) and
cos(x) into n-terms, and then you multiply them out, and cut the
result appropriately (at n-terms in this case).
But you can use any "n". How do you store infinite number of terms in
your approach?
I think you guys are perhaps talking past each other. To Ondrej,
"series" means "series approximation", whereas to "Sartaj" it menas
"formal power series". Both are mathematically related, but from a CAS
point of view they are quite different.
Formal power series is something that would be nice for SymPy to have,
but my understanding is that the summation algorithms will need to
improve a lot for you to be able to compute anything nontrivial (like
Cauchy products).
But it will be nice to use ring_series for various operations for truncated series.
In [18]: %timeit s = exp(x).series(x, 0, 100)
1 loops, best of 3: 7.01 s per loop
In [20]: %timeit t = rs_exp(y, y, 100)
100 loops, best of 3: 4.29 ms per loop