Kevin Ryde > Math-NumSeq > Math::NumSeq::Triangular

Download:
Math-NumSeq-72.tar.gz

Dependencies

Annotate this POD

Website

# CPAN RT

 Open 0
View/Report Bugs
Module Version: 72

# NAME

Math::NumSeq::Triangular -- triangular numbers

# SYNOPSIS

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

# DESCRIPTION

The triangular numbers i*(i+1)/2,

```    0, 1, 3, 6, 10, 15, 21, 28, ...
starting i=0```

The numbers are how many points are in an equilateral triangle of side i,

```       *      i=1  1

*      i=2  3
* *

*
* *     i=3  6
* * *

*
* *     i=4  10
* * *
* * * *```

From a given i, the next value is formed by adding i+1, being a new row of that length on the bottom of the triangle.

# FUNCTIONS

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

`\$seq = Math::NumSeq::Triangular->new ()`

Create and return a new sequence object.

## Random Access

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

Return `\$i*(\$i+1)/2`.

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

Return true if `\$value` is a triangular number, ie. i*(i+1)/2 for some integer i.

`\$i = \$seq->value_to_i_ceil(\$value)`
`\$i = \$seq->value_to_i_floor(\$value)`

Return the index i of `\$value`, or if `\$value` is not a triangular number then the next higher for `ceil` or lower for `floor`.

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

Return an estimate of the i corresponding to `\$value`. This is value=i*(i+1)/2 is inverted to

`    \$i = int ((sqrt(8*\$value + 1) - 1)/2)`

# HOME PAGE

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

# LICENSE

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

syntax highlighting: