Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This introduces function to compute multiple zeta values and finding relations between them #18010

Closed
sagetrac-akhi mannequin opened this issue Mar 20, 2015 · 25 comments
Closed

Comments

@sagetrac-akhi
Copy link
Mannequin

sagetrac-akhi mannequin commented Mar 20, 2015

Here it is introducing to three functions that compute multiple zeta values,

The first one multizeta it computing multiple zeta values using Double Tails, this is fastest algorithm to compute one MZV

The second allmultizetaprint is returning the first n multiple zeta values using intial, Middle and final words, this algorith is very efficient to compute a plenty of MZV together

The third one mzeta that compute multiple zeta values using polylogarithm

References: Double tails of multiple zeta values, P. Akhilesh, Journal of Number Theory, Volume 170, January 2017, Pages 228–249

http://www.sciencedirect.com/science/article/pii/S0022314X16301718

Multiple zeta values Computing using Double Tails:
Example::

sage: multizeta([2],170,100)
    1.6449340668482264364724151666460251892189499012067984377355582293700074704032008738336289006197587?
    sage: multizeta([2,3],170,100)
    0.7115661975505724320969738060864026120925612044383392364922224964576860857450582651154252344636008?
    sage: multizeta([2,1],170,100)
    1.2020569031595942853997381615114499907649862923404988817922715553418382057863130901864558736093353?
    sage: 

Computing The first 'n' multiple zeta values using a fast algorithm using Initial, Middle and Final words
Example::

    sage: allmultizetaprint(10,170,100)
    multizeta( [2] )= 1.644934066848226436472415166646025189218949901206798437735558229370007470403200873833628900619758706?
    multizeta( [3] )= 1.202056903159594285399738161511449990764986292340498881792271555341838205786313090186455873609335258?
    multizeta( [2, 1] )= 1.202056903159594285399738161511449990764986292340498881792271555341838205786313090186455873609335258?
    multizeta( [4] )= 1.082323233711138191516003696541167902774750951918726907682976215444120616186968846556909635941699917?
    multizeta( [3, 1] )= 0.270580808427784547879000924135291975693687737979681726920744053861030154046742211639227408985424980?
    multizeta( [2, 2] )= 0.811742425283353643637002772405875927081063213939045180762232161583090462140226634917682226956274938?
    multizeta( [2, 1, 1] )= 1.082323233711138191516003696541167902774750951918726907682976215444120616186968846556909635941699918?
    multizeta( [5] )= 1.036927755143369926331365486457034168057080919501912811974192677903803589786281484560043106557133337?
    multizeta( [4, 1] )= 0.0965511599894437344656455314289427640320103723436914152525630787528921454259587614177018405925170654?

Computing Multiple Zeta values using Polylogarithm algorithm
Example::


    sage: mzeta([2,1])
    1.2020569031595942853997381615114499907649862923404988817922715553418382057863130901864558736093352581461991577952607194184919959986
    732832137763968372079001614539417829493600667191915755222424942439615639096641032911590957809655146512799184051057152559880154371097
    811020398275325667876035223369849416618110570147157786394997375237852779370309560257018531827900030765471075630488433208697115737423
    8079344503160762531771453544441183117818224971852635709182448998796203508335756172022603393785870328131267807990054177348691152537065
    6237057440966221712902627320732361492242913040528555372341033077577798064242024304882815210009146026538220696271552020822743350010152
    9480119869011762595167636699817183557523488070371955574234729408359520886166620257285375581307928258648728217370556619689895266201877
    68106292008177923381358768284264124324314802821736745067206935076268953043459393750329663637757506247332399234828831077339052768020075
    7984356793711505090050273660471140085335034364672248565315181177661811?
    sage: mzeta([2,1],100)
    1.20205690315959428539973816151144999076498629234049888179227155534183820578631309018645587360933526?

This program allows you to find the linear relationship between the multiple zeta values
Example ::

    sage: Rmultizeta([[2,1],[3]])
    [1, -1]
    sage: Rmultizeta([[2,1],[3]],100,100,1000)
    [1, -1]
    sage: 

CC: @williamstein @tscrim @mkoeppe

Component: number theory

Keywords: multiple zeta values, sage days 64, SD75

Branch/Commit: public/ticket-multizeta @ 45f85b3

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/18010

@sagetrac-akhi sagetrac-akhi mannequin added this to the sage-6.6 milestone Mar 20, 2015
@sagetrac-akhi
Copy link
Mannequin Author

sagetrac-akhi mannequin commented Mar 20, 2015

Branch: u/akhi/mzeta

@sagetrac-akhi

This comment has been minimized.

@sagetrac-akhi
Copy link
Mannequin Author

sagetrac-akhi mannequin commented Mar 20, 2015

Commit: c40c4f1

@sagetrac-akhi

This comment has been minimized.

@sagetrac-akhi sagetrac-akhi mannequin changed the title This introducing function compute multiple zeta values and finding relations between them This introduces function to compute multiple zeta values and finding relations between them Mar 20, 2015
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 25, 2016

Changed commit from c40c4f1 to 43f19c7

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 25, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

f6c5c2aMerge branch 'master' into mzeta
43f19c7included more functions in multiple zeta values and implimented in interval arithmetic

@sagetrac-akhi

This comment has been minimized.

@sagetrac-akhi sagetrac-akhi mannequin modified the milestones: sage-6.6, sage-7.4 Aug 25, 2016
@sagetrac-akhi sagetrac-akhi mannequin added the s: needs review label Aug 25, 2016
@sagetrac-akhi
Copy link
Mannequin Author

sagetrac-akhi mannequin commented Aug 25, 2016

Changed keywords from multiple zeta values, sage days 64 to multiple zeta values, sage days 64, SD75

@videlec
Copy link
Contributor

videlec commented Aug 25, 2016

comment:8

Please fix the syntax to fit with Sage standards:

  1. You should have a look at the developer manual for documentation strings

    http://doc.sagemath.org/html/en/developer/coding_basics.html#documentation-strings

    For example you need to write EXAMPLES instead of Examples.
    There should be line breaks before and after EXAMPLES, etc.

  2. For Python syntax, have a look at

    https://www.python.org/dev/peps/pep-0008/

    For example there should be spaces before and after each assignment.

  3. Revise the description of the function. You can have a look at the developer manual again and look at other files in the Sage sources.

As an example

def allmultizeta(N,n,D):
	r''' the program computing first N-1 multiple zeta values:
    Example::
    sage: allmultizeta(10,170,100)

Should be changed to

def allmultizeta(N, n, D):
    r"""
    Return the first N-1 multiple zeta values.

    EXAMPLES::

        sage: allmultizeta(10, 170, 100)

Minor detail: in the "Authors" field of the ticket you need to put your full name.

@videlec
Copy link
Contributor

videlec commented Aug 25, 2016

comment:9

BTW, how does your code compares with the zetamult function available in PARI/GP

? zetamult([2, 1])
%1 = 1.2020569031595942853997381615114499908

@videlec
Copy link
Contributor

videlec commented Aug 25, 2016

comment:10

Indeed, in the source code of PARI/GP (file basemath/zetamult.c) one can read

ALGORITHM DUE TO P. AKHILESH. DO NOT REPRODUCE UNTIL PUBLISHED

You might want to coordinate with K. Belabas and/or B. Allombert on the PARI/GP mailing lists: http://pari.math.u-bordeaux.fr/lists-index.html

@fchapoton
Copy link
Contributor

Changed branch from u/akhi/mzeta to public/ticket-multizeta

@fchapoton
Copy link
Contributor

Changed commit from 43f19c7 to 958a570

@fchapoton
Copy link
Contributor

New commits:

331d975Merge branch 'u/akhi/mzeta' in 8.8.b3
958a570cleanup, all tests pass

@videlec
Copy link
Contributor

videlec commented Apr 30, 2019

comment:12

How does it compare to the implementation in PARI/GP available through cypari2 (see [comment:9], [comment:10])?

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 6, 2019

Changed commit from 958a570 to 45f85b3

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 6, 2019

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

f0500ee18010: This introduces function compute multiple zeta values and to find relations between them
45f85b3some details

@fchapoton
Copy link
Contributor

comment:14

Given that pari has multizetas, and that we have an interface to them, this ticket may be closed as invalid.

Vincent, do you agree ?

@fchapoton fchapoton removed this from the sage-7.4 milestone Jul 4, 2020
@fchapoton
Copy link
Contributor

comment:15

shall we close as duplicate ?

@tscrim
Copy link
Collaborator

tscrim commented Aug 28, 2020

comment:16

Before we close it as a duplicate, it would be good to do some comparison timings IMO as Vincent suggested in comment:12. Or does the PARI version use the same algorithm?

@videlec
Copy link
Contributor

videlec commented Aug 28, 2020

comment:17

Replying to @tscrim:

Before we close it as a duplicate, it would be good to do some comparison timings IMO as Vincent suggested in comment:12. Or does the PARI version use the same algorithm?

PARI indeed implements Akilesh algorithms. In the last master branch there is also some alternatives that are faster for some specific signatures. The only disadvantage I see with PARI is that the result is a floating point number and not a ball/interval with guarantees on the result. However, the implementation is very careful to provide an accurate floating point number.

@tscrim
Copy link
Collaborator

tscrim commented Aug 28, 2020

Changed author from Akhilesh P. to none

@tscrim
Copy link
Collaborator

tscrim commented Aug 28, 2020

Reviewer: Travis Scrimshaw

@tscrim
Copy link
Collaborator

tscrim commented Aug 28, 2020

comment:18

Then I would say we should close this as a duplicate.

@fchapoton
Copy link
Contributor

comment:19

thanx, closing now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants