Local copy of Sloane On-Line Encyclopedia of Integer Sequences

The SloaneEncyclopedia object provides access to a local copy of the database containing only the sequences and their names. To use this you must download and install the database using SloaneEncyclopedia.install(), or SloaneEncyclopedia.install_from_gz() if you have already downloaded the database manually.

To look up a sequence, type

sage: SloaneEncyclopedia[60843]               # optional - sloane_database
[1, 6, 21, 107]

To get the name of a sequence, type

sage: SloaneEncyclopedia.sequence_name(1)     # optional - sloane_database
'Number of groups of order n.'

To search locally for a particular subsequence, type

sage: SloaneEncyclopedia.find([1,2,3,4,5], 1)    # optional - sloane_database
[(15, [1, 2, 3, 4, 5, 7, 7, 8, 9, 11, 11, 13, 13, 16, 16, 16, 17, 19, 19, 23, 23, 23, 23, 25, 25, 27, 27, 29, 29, 31, 31, 32, 37, 37, 37, 37, 37, 41, 41, 41, 41, 43, 43, 47, 47, 47, 47, 49, 49, 53, 53, 53, 53, 59, 59, 59, 59, 59, 59, 61, 61, 64, 64, 64, 67, 67, 67, 71, 71, 71, 71, 73])]

The default maximum number of results is 30, but to return up to 100, type

sage: SloaneEncyclopedia.find([1,2,3,4,5], 100)    # optional - sloane_database
[(15, [1, 2, 3, 4, 5, 7, 7, 8, 9, 11, 11, ...

Results in either case are of the form [ (number, list) ].

See also

  • If you want to get more informations relative to a sequence (references, links, examples, programs, ...), you can use the On-Line Encyclopedia of Integer Sequences provided by the OEIS module.
  • Some infinite OEIS sequences are implemented in Sage, via the sloane_functions module.

AUTHORS:

  • Steven Sivek (2005-12-22): first version
  • Steven Sivek (2006-02-07): updated to correctly handle the new search form on the Sloane website, and it’s now also smarter about loading the local database in that it doesn’t convert a sequence from string form to a list of integers until absolutely necessary. This seems to cut the loading time roughly in half.
  • Steven Sivek (2009-12-22): added the SloaneEncyclopedia functions install() and install_from_gz() so users can get the latest versions of the OEIS without having to get an updated spkg; added sequence_name() to return the description of a sequence; and changed the data type for elements of each sequence from int to Integer.
  • Thierry Monteil (2012-02-10): deprecate dead code and update related doc and tests.

Classes and methods

class sage.databases.sloane.SloaneEncyclopediaClass

A local copy of the Sloane Online Encyclopedia of Integer Sequences that contains only the sequence numbers and the sequences themselves.

find(seq, maxresults=30)

Return a list of all sequences which have seq as a subsequence, up to maxresults results. Sequences are returned in the form (number, list).

INPUT:

  • seq - list
  • maxresults - int

OUTPUT: list of 2-tuples (i, v), where v is a sequence with seq as a subsequence.

install(oeis_url='http://oeis.org/stripped.gz', names_url='http://oeis.org/names.gz', overwrite=False)

Download and install the online encyclopedia, raising an IOError if either step fails.

INPUT:

  • oeis_url - string (default: “http://www.research.att.com...”) The URL of the stripped.gz encyclopedia file.
  • names_url - string (default: “http://www.research.att.com...”) The URL of the names.gz encyclopedia file. If you do not want to download this file, set names_url=None.
  • overwrite - boolean (default: False) If the encyclopedia is already installed and overwrite=True, download and install the latest version over the installed one.
install_from_gz(stripped_file, names_file, overwrite=False)

Install the online encyclopedia from a local stripped.gz file.

INPUT:

  • stripped_file - string. The name of the stripped.gz OEIS file.
  • names_file - string. The name of the names.gz OEIS file, or None if the user does not want it installed.
  • overwrite - boolean (default: False) If the encyclopedia is already installed and overwrite=True, install ‘filename’ over the old encyclopedia.
load()

Load the entire encyclopedia into memory from a file. This is done automatically if the user tries to perform a lookup or a search.

sequence_name(N)

Return the name of sequence N in the encyclopedia. If sequence N does not exist, return ‘’. If the names database is not installed, raise an IOError.

INPUT:

  • N - int

OUTPUT: string

EXAMPLES:

sage: SloaneEncyclopedia.sequence_name(1) # optional - sloane_database ‘Number of groups of order n.’

unload()

Remove the database from memory.

sage.databases.sloane.copy_gz_file(gz_source, bz_destination)

Decompress a gzipped file and install the bzipped verson. This is used by SloaneEncyclopedia.install_from_gz to install several gzipped OEIS database files.

INPUT:

  • gz_source - string. The name of the gzipped file.
  • bz_destination - string. The name of the newly compressed file.
sage.databases.sloane.parse_sequence(text='')

This internal function was only used by the sloane_find function, which is now deprecated.

TESTS::
sage: from sage.databases.sloane import parse_sequence sage: parse_sequence() doctest:1: DeprecationWarning: The function parse_sequence is not used anymore (2012-01-01). See http://trac.sagemath.org/10358 for details.
sage.databases.sloane.sloane_find(list=[], nresults=30, verbose=True)

This function is broken. It is replaced by the OEIS module.

Type oeis? for more information.

TESTS:

sage: sloane_find([1,2,3])
doctest:1: DeprecationWarning: The function sloane_find is deprecated. Use oeis() instead (2012-01-01).
See http://trac.sagemath.org/10358 for details.
sage.databases.sloane.sloane_sequence(number=1, verbose=True)

This function is broken. It is replaced by the OEIS module.

Type oeis? for more information.

TESTS:

sage: sloane_sequence(123)
doctest:1: DeprecationWarning: The function sloane_sequence is deprecated. Use oeis() instead (2012-01-01).
See http://trac.sagemath.org/10358 for details.