#18102: Arithmetic functions
-------------------------------------+-------------------------------------
Reporter: jj | Owner:
Type: task | Status: new
Priority: major | Milestone: sage-wishlist
Component: number theory | Keywords: arithmetic
Merged in: | functions
Reviewers: | Authors: Jonas Jermann
Work issues: | Report Upstream: N/A
Commit: | Branch:
526e1ae40f94cff95e5dc6926208b831643edfb4| u/jj/arith_functions
Stopgaps: | Dependencies:
-------------------------------------+-------------------------------------
This ticket is mainly a playground for ideas (for now). Anyone: Feel free
to take over... :)
I would like to see some way to work with exact arithmetic functions.
In particular when dealing with series (e.g. Dirichlet series but also
other series):
If a good implementation of function spaces is around then a series could
be stored (in an exact way) by specifying it's coefficient function. I.e.
allowing/using arithmetic functions as element constructor arguments for
(Dirichlet) series. Also see http://trac.sagemath.org/ticket/16477 for the
Dirichlet series ticket.
Nice subspaces are given by the ring of arithmetic functions with
multiplication by convolution.
This corresponds to the usual product of the associated Dirichlet series
(which acts like a Fourier transform of the arithmetic function).
Other (smaller) subspaces are given by multiplicative or completely
multiplicative functions.
One idea might be to use the symbolic ring. But it has trouble with "sums"
which are absolutely crucial for most operations with arithmetic
functions.
I tried to start with one possible (quick) POC implementation.
Here is a simple example:
{{{
sigma3 = ArithmeticFunction(lambda n: sigma(n,3), lambda n,_:
"sigma({},3)".format(n), lambda n,_:
"\\sigma_{{3}}\\left({}\\right)".format(n))
sigma3^2
show(sigma3^2)
(sigma3^2)(5)
}}}
Main issues I see are:
- representations of coefficients / functions
- simplifications of functions/representations:
For instance we could group sums into one big sum with many conditions
over many summation variables.
If summation conditions are handled carefully/abstractly this could
allow some powerful simplifications.
- comparisons of functions (very hard!)
- finding the right way to go about it (categories/etc)
- trivial scalar multiplication: How to make/represent it as simple as
possible?
Clearly a lot of the structure comes from the codomain. If it has a ring
structure it carries over to the function space and with natural numbers
as domain we can define a convolution product. An algebra would also carry
over nicely. What's the right general setup for this?
I'm all ears for suggestions / better alternatives.
--
Ticket URL: <http://trac.sagemath.org/ticket/18102>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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/sage-trac.
For more options, visit https://groups.google.com/d/optout.