++ed by:
Kevin Ryde
and 1 contributors

# NAME

Math::NumSeq::Runs -- runs of consecutive integers

# SYNOPSIS

`````` use Math::NumSeq::Runs;
my \$seq = Math::NumSeq::Runs->new;
my (\$i, \$value) = \$seq->next;``````

# DESCRIPTION

This is various kinds of runs of integers. The `runs_type` parameter (a string) can be

``````    "0toN"      0, 0,1, 0,1,2, 0,1,2,3, etc runs 0..N
"1toN"      1, 1,2, 1,2,3, 1,2,3,4, etc runs 1..N
"1to2N"     1,2, 1,2,3,4, 1,2,3,4,5,6 etc runs 1..2N
"1to2N+1"   1, 1,2,3, 1,2,3,4,5, etc runs 1..2N+1
"1toFib"    1, 1, 1,2, 1,2,3,  1,2,3,4,5 etc runs 1..Fibonacci
"Nto0"      0, 1,0, 2,1,0, 3,2,1,0, etc runs N..0
"Nto1"      1, 2,1, 3,2,1, 4,3,2,1, etc runs N..1
"0toNinc"   0, 1,2, 2,3,4, 3,4,5,6, etc runs 0..N increasing
"Nrep"      1, 2,2, 3,3,3, 4,4,4,4, etc N repetitions of N
"N+1rep"    0, 1,1, 2,2,2, 3,3,3,3, etc N+1 repetitions of N
"2rep"      0,0, 1,1, 2,2, etc two repetitions of each N
"3rep"      0,0,0, 1,1,1, 2,2,2, etc three repetitions of N``````

"0toN" and "1toN" differ only the latter being +1. They're related to the triangular numbers (Math::NumSeq::Triangular) in that each run starts at index i=Triangular+1, ie. i=1,2,4,7,11,etc.

"1to2N" is related to the pronic numbers (Math::NumSeq::Pronic) in that each run starts at index i=Pronic+1, ie. i=1,3,7,13,etc.

"1toFib" not only runs up to each Fibonacci number (Math::NumSeq::Fibonacci), but the runs start at i=Fibonacci too, ie. i=1,2,3,5,8,13,etc. This arises because the cumulative total of Fibonacci numbers has F[1]+F[2]+...+F[k]+1 = F[k+2].

# FUNCTIONS

See "FUNCTIONS" in Math::NumSeq for behaviour common to all sequence classes.

`\$seq = Math::NumSeq::Runs->new (runs_type => \$str)`

Create and return a new sequence object.

## Random Access

`\$value = \$seq->ith(\$i)`

Return the `\$i`'th value from the sequence.

`\$bool = \$seq->pred(\$value)`

Return true if `\$value` occurs in the sequence. This is merely all integer `\$value >= 0` or `>= 1` according to the start of the `runs_type`.

# HOME PAGE

http://user42.tuxfamily.org/math-numseq/index.html

# LICENSE

Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2019 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/>.