I'd like to announce the first public release of PowerSeries.jl [1], a 
package for computing with truncated power series. In PowerSeries, Series 
behave just like numbers, and you can do arithmetic on them and compute 
functions of them just as you would a Real or Complex number. Integration 
and differentiation are also supported.

[1] https://github.com/jwmerrill/PowerSeries.jl

Truncated power series over floating point numbers have the nice property 
that the result of a long series of computations can be stored in the same 
amount of space as the input to the computation. This is in contrast with, 
e.g., Rational numbers, where the numerator and denominator typically grow 
exponentially as you compute with them, or non-truncated power series, 
where the number of terms grows linearly under multiplication, and 
(typically) infinitely under division.

I intend for PowerSeries series to be a practical computation tool with 
very little overhead compared to code you might hand-write for a specific 
problem. This goal may not be completely realized yet--issues and pull 
requests welcome!

One of my motivations for creating PowerSeries.jl was to extend automatic 
differentiation to higher order derivatives. You can implement forward-mode 
AD by overloading functions to operate on dual numbers [2], which are 
numbers of the form

  a + b*eps | eps^2 = 0

Truncated power series can be viewed as a natural extension of Dual numbers 
to numbers the form

  a + b*eps + c*eps^2 + d*eps^3 + ... | eps^n = 0 for some n

that allow computing higher order derivatives. See the README for details.

[2] see DualNumbers.jl, https://github.com/scidom/DualNumbers.jl

Reply via email to