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

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)`

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