The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Name

Encode::Positive::Pairs - encode pairs of positive integers as a single integer and vice versa

Synopsis

 use Encode::Positive::Pairs;

 my ($i, $j) = Encode::Positive::Pairs::singleToPair(4);
 ok $i == 1 && $j == 1;

 ok 4 == Encode::Positive::Pairs::pairToSingle(1, 1);

Larger numbers are automatically supported via Math::BigInt:

  my $n = '1'.('0'x121).'1';
  my ($i, $j) = Encode::Positive::Pairs::singleToPair($n);

  ok $i == "1698366900312561357458283662619176178439283700581622961703001";
  ok $j == "12443768723418389130558603579477804607257435053187857770063795";

  ok $n == Encode::Positive::Pairs::pairToSingle($i, $j);

Description

Convert

Encode pairs of positive integers as a single integer and vice-versa

singleToPair($)

Decode a single integer into a pair of integers

  1  $N  Number to decode  

pairToSingle($$)

Return the single integer representing a pair of integers

  1  $I  First number of pair to encode   
  2  $J  Second number of pair to encode  

Private Methods

equation($)

The sum of the numbers from 1 to a specified number

  1  $t  The number of leading integers to sum  

search($$$)

Return the pair that encode to the number specified

  1  $n  Number to decode  
  2  $l  Lower limit       
  3  $u  Upper limit       

Index

equation

pairToSingle

search

singleToPair

Installation

This module is written in 100% Pure Perl and, thus, it is easy to read, use, modify and install.

Standard Module::Build process for building and installing modules:

  perl Build.PL
  ./Build
  ./Build test
  ./Build install

Author

philiprbrenan@gmail.com

http://www.appaapps.com

Copyright

Copyright (c) 2016-2017 Philip R Brenan.

This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.