5

I would like to use a computer algebra system to do some experimental mathematics, particularly Integer Relation problems using the PSLQ algorithm.

I know that Maple has a PSLQ implementation, but I'd rather not pay for the entire Maple suite just to do Integer Relation problems. I've noticed that Sage links to a python library that does PSLQ, but that library is very limited in that it doesn't give the range of arguments for precision and tolerance that I'd like to be able to explore. Bailey has a GNU C++ library that does PSLQ with arbitrary precision, but I'd rather not be forced to use a command-line interface for experimentation. I like the cleaner presentation available in most CAS products.

I'm especially interested in PSLQ and not LLL simply because PSLQ gives you bounds on the norm of any possible integer relation even when it fails to find one, and this is a useful property. I'd like to explore some approximations to $\pi$ as well as play with some other integer relations among other constants that show up a lot in geometry.

Do you know of any CAS products (free or not) that have a good PSLQ implementation I can use, or are there other alternatives I may have overlooked?

hatch22
  • 1,116
  • Mathematica has limited capabilities, I had to write my own.You can use the online Inverse symbolic calculator http://isc.carma.newcastle.edu.au/ – bobbym Jul 01 '14 at 15:23
  • ISC isn't quite what I'm looking for. I'd like more control over precision and tolerance, and I know the constants I want to use to find an integer relation, I don't want ISC to guess them for me from a result. In other words, I don't need inverse symbolic calculation. :-) Very cool web app though. – hatch22 Jul 01 '14 at 15:33
  • Sorry for split comments, the ISC will only provide 16 digits or so. Wolfram Alpha runs an Integer Relation Algorithm but has limitations. I know you do not want it but I do not think you can beat Maple in this case although a friend uses Sage for his Integer Relation problems. – bobbym Jul 01 '14 at 15:35
  • In that case, which versions of Maple have PSLQ (personal, student, academic, professional, etc.)? – hatch22 Jul 01 '14 at 15:42
  • I have the pro but am not an expert on Maple, so I do not know about the other versions. Robert Israel and others use Maple, they might know or else check MaplePrimes. You can find out there. – bobbym Jul 01 '14 at 15:49
  • Thanks for the tip. I've submitted a question to MaplePrimes. – hatch22 Jul 01 '14 at 16:08
  • It seems all Maple versions (with the same version number that is) are identical in features, and the differences are in the terms of the licenses. I'd still prefer an alternative if there is one. – hatch22 Jul 01 '14 at 17:58
  • Just FYI, GAP has LLLReducedBasis, but no PSLQ. – Olexandr Konovalov Jul 02 '14 at 13:55
  • Thanks for the info. The reason I prefer PSLQ is that I'd like to find good approximations to sums I know are linearly independent as well as linear integer relations to sums I suspect might be linearly dependent, and PSLQ seems better suited to this dual use than LLL. If I'm mistaken about that please let me know. – hatch22 Jul 02 '14 at 15:21
  • @hatch22: Thanks for the details. GAP has no PSLQ implementation that I am aware of, but it should be feasible to implement it in GAP, using the Float package – Olexandr Konovalov Aug 27 '14 at 22:07

2 Answers2

4

I have a reasonable implementation in GAP using the Float package that IU wrote a few weeks ago. It's not world-class, but it should be OK for reasonable sized problems. Contact me or reply to this if you'd like to try it.

  • Sounds interesting. Can you give me an estimate on "reasonably sized problems? I'd be happy to try it out and give you some feedback. – hatch22 Aug 29 '14 at 18:48
  • 1
    It computes the minimal polynomial of 3^(1/8) - 2^(1/8) (degree 65) in about 160s using 2700 bit precision on my laptop. It's now included in version 0.6.2 of the float package from Laurent Bartholdi. – Steve Linton Sep 01 '14 at 13:25
1

For simple or rather mechanical tasks i'm always using sympy, PSLQ is included in a package called "mpmath". LLL is available, too, either as a wrapper around FPLLL, or (implemented somewhat awkwardly) as a part of a package called "liblll". In that neighborhood, there's also a cute package "diophantine", which can provide minimal solutions to linear diophantine equations in a way I have never seen before spelled out. In more complex cases, where for example differential calculus is needed, I prefer the (gargantuan, but nearly perfect) axiom.