New ore_algebra Sage package is available

72 views
Skip to first unread message

Fredrik Johansson

unread,
Jun 18, 2013, 3:06:45 PM6/18/13
to sage-...@googlegroups.com, Manuel Kauers, Maximilian Jaroschek
Hi all,

Version 0.1 of the ore_algebra package for Sage has been released:
http://www.risc.jku.at/research/combinat/software/ore_algebra/

The package is being developed by Manuel Kauers, Maximilian Jaroschek
and myself. A tutorial paper (as well as Sphinx documentation) is
available on the web site.

As the name suggests, the package supports working with Ore algebras,
i.e. algebras of difference and differential operators. It includes
common operations such as arithmetic, gcrd, lclm, and various
transformations of operators, as well D-finite closure properties.

Fun things one can do with it includes:

* Computing polynomial, rational and generalized power series
solutions of difference and differential equations
* Guessing, i.e. finding a recurrence or differential equation that
matches given data
* Proving identities involving holonomic objects (such as
hypergeometric sequences and functions)

The package also includes efficient code for solving linear systems
with (multivariate) polynomial entries.

This is only the first version, and more features are planned in the
future. In particular Ore algebras with more than one generator
currently only support very rudimentary operations. We also plan to
make the package able to interface with symbolic expressions in Sage
in a natural way, to support e.g. generating a differential/difference
equation from a given symbolic expression involving special functions.

Our intention is for ore_algebra to eventually become a standard Sage
package. For now, we hope that Sage developers and users will try it
out and report bugs, etc.

Best,
Fredrik

Simon King

unread,
Jun 18, 2013, 5:08:22 PM6/18/13
to sage-...@googlegroups.com
Hi Fredrik,

On 2013-06-18, Fredrik Johansson <fredrik....@gmail.com> wrote:
> Hi all,
>
> Version 0.1 of the ore_algebra package for Sage has been released:
> http://www.risc.jku.at/research/combinat/software/ore_algebra/
>
> The package is being developed by Manuel Kauers, Maximilian Jaroschek
> and myself. A tutorial paper (as well as Sphinx documentation) is
> available on the web site.

Out of curiosity: Does it use the non-commutative stuff (g-algebras)
that is in Singular and that is also wrapped in Sage?

For the latter, see the documentation of sage.rings.polynomial.plural.g_Algebra
(that's a factory) respectively sage.rings.polynomial.plural.NCPolynomialRing_plural
(that's the wrapper)?

If I'm not mistaken, g-algebras are general enough to implement Ore
algebras. If your code is not based on Singular: How does it compare,
speed-wise?

Best regards,
Simon


leif

unread,
Jun 18, 2013, 6:00:55 PM6/18/13
to sage-...@googlegroups.com
Fredrik Johansson wrote:
> Hi all,
>
> Version 0.1 of the ore_algebra package for Sage has been released:
> http://www.risc.jku.at/research/combinat/software/ore_algebra/

Did you open a ticket to make it an optional package available from the
usual spkg repositories?

[It should perhaps at least be available / listed in the "experimental"
category.]


Or maybe (haven't looked at it yet) it violates the conventions for
spkgs (in that it modifies the Sage library)?


-leif

--
() The ASCII Ribbon Campaign
/\ Help Cure HTML E-Mail

Stefan

unread,
Jun 18, 2013, 6:17:41 PM6/18/13
to sage-...@googlegroups.com

Did you open a ticket to make it an optional package available from the
usual spkg repositories?

[It should perhaps at least be available / listed in the "experimental"
category.]


Or maybe (haven't looked at it yet) it violates the conventions for
spkgs (in that it modifies the Sage library)?

For that matter, why not make it part of the Sage library? Or is the code too "first-generation" for that? 

Fredrik Johansson

unread,
Jun 18, 2013, 6:26:18 PM6/18/13
to sage-...@googlegroups.com, Manuel Kauers, Maximilian Jaroschek
No, we just use commutative Sage polynomials.

Here is a test of arithmetic with ore_algebra in Sage 5.9:

sage: A.<x> = QQ[]
sage: R.<Dx> = OreAlgebra(A, 'Dx')
sage: a = (Dx + x + 1)
sage: %timeit a * a
1000 loops, best of 3: 280 us per loop
sage: a = (Dx + x + 1)^10
sage: %timeit a * a
10 loops, best of 3: 28.9 ms per loop
sage: a = (Dx + x + 1)^100
sage: %timeit a * a
1 loops, best of 3: 11.2 s per loop

With g_algebra:

sage: A.<x,Dx> = FreeAlgebra(QQ,2)
sage: R.<x,Dx> = A.g_algebra(relations={Dx*x:x*Dx+1}, order='lex')
sage: a = (Dx + x + 1)
sage: %timeit a * a
1000000 loops, best of 3: 1.69 us per loop
sage: a = (Dx + x + 1)^10
sage: %timeit a * a
100 loops, best of 3: 7.05 ms per loop
sage: a = (Dx + x + 1)^100
sage: %timeit a * a
1 loops, best of 3: 715 s per loop


So it appears that the Python overhead makes our code quite a bit
slower for small objects, while we scale better for large objects, or
maybe the multiplication in Plural just does something stupid...

Fredrik

Fredrik Johansson

unread,
Jun 18, 2013, 6:28:24 PM6/18/13
to sage-...@googlegroups.com
On Wed, Jun 19, 2013 at 12:00 AM, leif <not.r...@online.de> wrote:
> Fredrik Johansson wrote:
>>
>> Hi all,
>>
>> Version 0.1 of the ore_algebra package for Sage has been released:
>> http://www.risc.jku.at/research/combinat/software/ore_algebra/
>
>
> Did you open a ticket to make it an optional package available from the
> usual spkg repositories?

Not yet.

> [It should perhaps at least be available / listed in the "experimental"
> category.]
>
>
> Or maybe (haven't looked at it yet) it violates the conventions for spkgs
> (in that it modifies the Sage library)?

It doesn't modify the Sage library (as far as I know).

Fredrik

Fredrik Johansson

unread,
Jun 18, 2013, 6:30:29 PM6/18/13
to sage-...@googlegroups.com
That's certainly a possibility in the future. As you say, it's perhaps
not mature enough right now.

Fredrik
Reply all
Reply to author
Forward
0 new messages