As I wrote in another mail we now have several new special
functions and it is time to add series expansions for them.
This uncovered some undesirable aspects of our current power
series domains. Namely, expansion of a function 'phi' in power
series is done by having appropriate 'phi' function in power
seres domains and applying it to expansions of arguments.
Currently each power series domain has its own implementation
of functions like 'exp', 'sin', etc. Most of those implementations
are trival: they retact arguments into Taylor series domain
(if possible) and applay apriopriate version for Taylor series
(which in turn uses functions on streams). This leads to
significant amount of boilerplate code.
I am thinking about alternative way: having a 'compose'
function in each domain which applies Taylor series to
arguments from the domain and gives back result in the
domain. And then for each function expander giving
series Taylor series in regular points (or error).
That way we need single expander for regular point and
possibly a few overrides to get Laurent/Puiseux (or
maybe also multiseries) in singularities.
Another thing that currently we have no support for multivariate
expansions. And we have way to do naive expansion (by computing
successive derivatives). I think we need a way to compute
infinite sums of power series. Probably something like
'addiag' in 'StreamTaylorSeriesOperations' but which takes
stream of pairs (order_bound, series) where order_bound is
lower bound on order of the series. To make sum computable
we need to assume that order_bound is non-decreasing, but
this should hold in practical cases. Such infinite sum
is enough to define composition. It is also enough to
do naive expander (in multivariate case making sure that
orderes are non-decreasing requires some effort, but should
be doable).
ATM I do not know how to make sure that in multivariate case
our series are as lazy as possible. Current TaylorSeries
domain effectively assigns to each variable the same weight,
which is suboptimal when computing something like f(x, x^2).
One possibility is to generate exponents like for TaylorSeries,
but then sort then with respect to order (which means that
other computations will be ommited when consumer get terms
of desired order).
--
Waldek Hebisch
[email protected]
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" 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/fricas-devel?hl=en.