In PR 609 and PR 2630 power series are implemented with dictionaries, that 
is in a sparse representation.
The sparse representation is efficient when there are many variables. PR 
2630 uses ``ring()``.

For power series in one variable the dense representation is usually faster.
In `compose_add` in PR 2630 series in one variable are used, so using the 
dense representation
would be faster, but in a negligible way, since `compose_add` takes roughly 
5% of the time in `minpoly`.

In PR 609 there is lpoly.py, which deals with power series, and ltaylor.py. 
lpoly.py can now be implemented using ``ring()``; this is partially done in 
ring_series.py in PR 2630,
where there are only the functions used in the computed sum. It seems to me 
that ring_series.py fits
well in SymPy; if one wants to compute efficiently power series,
one can use ``ring`` with ring_series.py functions (once all the series 
functions in lpoly.py are ported).

To do a thorough treatment of power series, one should also implement
the dense representation; consider the case of Laurent series;
add functions to manipulate series at a higher level, possibly using a 
Series class with an Order function.

Mateusz Paprocki might want to comment on this.

PowerSeriesRing in Sage could be an example of higher level representation.

ltaylor.py uses lpoly.py to compute the taylor series of SymPy functions;
if the function is not smooth enough, the computation is passed to 
series.series.
So if the function is smooth enough, the taylor series is computed fast
(more or less the speed of `taylor` in Sage); otherwise it can be
slightly slower than series.series.
I do not know if it is a good approach; anyway, since it uses power series,
for the moment I will leave it aside.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" 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/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to