NAME
Math::NumSeq -- number sequences
SYNOPSIS
# only a base class, use one of the actual classes such as
use Math::NumSeq::Squares;
my $seq = Math::NumSeq::Squares->new;
my ($i, $value) = $seq->next;
DESCRIPTION
This is a base class for number sequences. Sequence objects can iterate through the values, and some sequences have random access and predicate. It's a touch rough yet.
The idea is to generate things like squares or primes in a generic way. Some sequences, like squares, are so easy there's no need for this except for the genericness. Other sequences are trickier and an iterator is a good way to go through the values.
FUNCTIONS
In the following "Foo" is one of the actual subclass names.
$seq = Math::NumSeq::Foo->new (key=>value,...)
-
Create and return a new sequence object.
($i, $value) = $seq->next()
-
Return the next index and value in the sequence.
$seq->rewind()
-
Rewind the sequence to its starting point.
$str = $seq->description()
-
A human-readable description of the sequence.
$value = $seq->values_min()
$value = $seq->values_max()
-
Return the minimum or maximum value taken by values in the sequence, or
undef
if unknown or infinity. $ret = $seq->characteristic($key)
-
Return something if the sequence has a
$key
(a string) characteristic, orundef
if not. This is intended as a loose set of expressing features or properties a sequence might have.digits the radix (an integer), if sequence is digits
$str = $seq->oeis_anum()
-
Return the Online Encyclopedia of Integer Sequences A-number (a string) of
$seq
, orundef
if not in the OEIS or not known. For examplemy $seq = Math::NumSeq::Squares->new; my $anum = $seq->oeis_anum; # gives $anum eq "A000290"
The web page for that is then
http://oeis.org/A000290
Sometimes the OEIS has duplicates, ie. two A-numbers which are the same sequence.
$seq->oeis_anum()
generally returns whichever is the primary one, at least for accidental duplication.
Optional Methods
The following methods are only implemented for some sequences, since it's sometimes difficult to generate an arbitrary numbered element etc. Check with $seq->can('ith')
etc before using.
$value = $seq->ith($i)
-
Return the
$i
'th value in the sequence. Only some sequence classes implement this method. $bool = $seq->pred($value)
-
Return true if
$value
occurs in the sequence. For example for the squares this would return true if$value
is a perfect square or false if not.
SEE ALSO
Math::NumSeq::Squares, Math::NumSeq::Cubes, Math::NumSeq::Pronic, Math::NumSeq::Triangular, Math::NumSeq::Polygonal, Math::NumSeq::Tetrahedral, Math::NumSeq::StarNumbers, Math::NumSeq::Even, Math::NumSeq::Odd
Math::NumSeq::Factorials, Math::NumSeq::Primorials, Math::NumSeq::Fibonacci, Math::NumSeq::LucasNumbers
Math::NumSeq::FractionDigits, Math::NumSeq::SqrtDigits
Math::NumSeq::DigitLength, Math::NumSeq::DigitLengthCumulative, Math::NumSeq::RadixWithoutDigit, Math::NumSeq::HarshadNumbers
Math::NumSeq::Beastly, Math::NumSeq::Repdigits, Math::NumSeq::Palindromes
Math::NumSeq::CullenNumbers, Math::NumSeq::ProthNumbers, Math::NumSeq::WoodallNumbers
Math::Sequence and Math::Series, for symbolic recursive sequence definitions
HOME PAGE
http://user42.tuxfamily.org/math-numseq/index.html
LICENSE
Copyright 2010, 2011 Kevin Ryde
Math-NumSeq is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Math-NumSeq is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Math-NumSeq. If not, see <http://www.gnu.org/licenses/>.