Great!  This has been on my list of things I'd like to have
implemented for a while.

Presumably, much of this code will be incorporated into the Sage
library.  So it's not really a "package" per se.  Instead, you should
make a ticket on trac (http://trac.sagemath.org/sage_trac), for which
you need an account.  Then you should post Mercurial patches there,
that include both the changes to existing files and the new files that
you've created (there's a Mercurial tutorial at
http://sagemath.org/doc/prog/index.html if you need it).  Then you
should have someone review the code, at which point it can be merged
into the current Sage release.
David

On Wed, Oct 29, 2008 at 4:11 PM, Henryk Trappmann
<[EMAIL PROTECTED]> wrote:
>
> Hello,
>
> I developed a package to work with infinite power series.
> You can work with the power series mostly like with functions, the
> actual value of a coefficient is computed when requested.
> For example (the working title is PowerSeriesRingI, "I" like
> infinite):
>
>        sage: PQ = PowerSeriesRingI(QQ)
>        sage: #Predefined
> PowerSeries
>        sage: expps = PQ.exp
>        sage: expps.poly(10,x)
>        1/362880*x^9 + 1/40320*x^8 + 1/5040*x^7 + 1/720*x^6 +
> 1/120*x^5 + 1/24*x^4 + 1/6*x^3 + 1/2*x^2 + x + 1
>        sage: expps
>        [1, 1, 1/2, 1/6, 1/24, 1/120, 1/720, 1/5040, 1/40320,
> 1/362880, 1/3628800, ...]
>        sage: PQ.zero
>        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: PQ.one
>        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: PQ.id
>        [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: #finite
> powerseries
>        sage: p = PQ([1,2,3,4])
>        sage: p.poly(10,x)
>        4*x^3 + 3*x^2 + 2*x + 1
>        sage: p
>        [1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: one = PQ([1])
>        sage: id = PQ([0,1])
>
>        sage: #power series are just functions that map the index to
> the coefficient
>        sage: expps[30]
>        1/265252859812191058636308480000000
>
>        sage: #power series
> operations
>        sage: p+p
>        [2, 4, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: p-p
>        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: p*p
>        [1, 4, 10, 20, 25, 24, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, ...]
>        sage: one/p
>        [1, -2, 1, 0, 5, -14, 13, -4, 25, -90, 121, -72, 141, -550,
> 965, -844, 993, ...]
>        sage: p.rcp()/p*p*p
>        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: p**2
>        [1, 4, 10, 20, 25, 24, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, ...]
>        sage: #composition only works for coefficient 0 being 0 in the
> second operand
>        sage: dexp = expps - one
>        sage: expps.o(dexp)
>        [1, 1, 1, 5/6, 5/8, 13/30, 203/720, 877/5040, 23/224,
> 1007/17280, ...]
>
> Beneath composition it can also perform (fractional) iteration
>        sage: #we come into interesting
> regions ...
>        sage: dexp.o(dexp)
>        [0, 1, 1, 5/6, 5/8, 13/30, 203/720, 877/5040, 23/224,
> 1007/17280, ...]
>        sage: dexp.nit(2)
>        [0, 1, 1, 5/6, 5/8, 13/30, 203/720, 877/5040, 23/224,
> 1007/17280, ...]
>        sage: dexp.it(-1)
>        [0, 1, -1/2, 1/3, -1/4, 1/5, -1/6, 1/7, -1/8, 1/9, -1/10,
> 1/11, -1/12, ...]
>        sage: dexp.it(-1).o(dexp)
>        [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>        sage: hdexp = dexp.it(1/2)
>        sage: hdexp
>        [0, 1, 1/4, 1/48, 0, 1/3840, -7/92160, 1/645120, 53/3440640,
> -281/30965760, ...]
>        sage: #verifying that shoudl be
> Zero
>        sage: hdexp.it(2) - dexp
>        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, ...]
>
> My question is about making this a standard SAGE package.
> Is there any guideline how to do so and what are the criteria and
> requirements?
> >
>

--~--~---------~--~----~------------~-------~--~----~
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/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to