Scroll to navigation

Math::Random::Free(3pm) User Contributed Perl Documentation Math::Random::Free(3pm)

NAME

Math::Random::Free - free drop-in replacement for Math::Random

DESCRIPTION

This is free (see below) implementation of Math::Random 0.72, serving as drop-in replacement for this module.

MOTIVATION

Math::Random is a great and widely-used module for the generation of random numbers and permutations. Despite being open-source, Math::Random does not fulfill free open-source software definitions as established by the Open Source Initiative (<https://opensource.org/osd>) and the Debian Project (<https://www.debian.org/social_contract#guidelines>, a.k.a. DFSG). This is mostly because "randlib" code cannot be copied nor distributed for direct commercial advantage. Math::Random::Free is created to free the code depending on Math::Random from these limitations.

SUPPORT

    our @EXPORT = qw(
        random_normal
        random_permutation
        random_permuted_index
        random_set_seed_from_phrase
    );
    our @EXPORT_OK = qw(
        random_exponential
        random_normal
        random_permutation
        random_permuted_index
        random_set_seed_from_phrase
        random_uniform
        random_uniform_integer
    );

CAVEATS

This module has only a subset of Math::Random subroutines (contributions welcome), implemented using either Perl core subroutines or other well-known modules. Thus Math::Random::Free is neither as complete, nor as fast, nor as random as Math::Random. Also Math::Random::Free does not aim for cryptographic security.

While Math::Random::Free supports seed setting, it does that differently from Math::Random. It means that one should not expect the same seed producing identical random sequences in both modules.

As Math::Random::Free employs List::Util for producing random permutations, these are influenced by $List::Util::RAND variable.

TESTED WITH

Graph::Maker 0.02

AUTHOR

Andrius Merkys, <mailto:merkys@cpan.org>

2022-10-15 perl v5.34.0