table of contents
Math::GSL::Multiset(3pm) | User Contributed Perl Documentation | Math::GSL::Multiset(3pm) |
NAME¶
Math::GSL::Multiset - Multisets manipulation
SYNOPSIS¶
use Math::GSL::Multiset qw/:all/; my $ms = Math::GSL::Multiset->($n, $k); my $value = $ms->get(2); # compute next multiset $ms->next; # compute the previous multiset # clone a multiset my $other = $ms->clone();
DESCRIPTION¶
A multiset c is represented by an array of k integers in the range 0 to n-1, where each value c_i may occur more than once. The multiset c corresponds to indices of k elements chosen from an n element vector with replacement. In mathematical terms, n is the cardinality of the multiset while k is the maximum multiplicity of any value.
Object Oriented API¶
Handy Perl-style OO API for Multisets.
- "new"
- Creates a new multiset with parameters n, k and initializes it to the
lexicographically first multiset element, i.e., 0 repeated k times.
my $ms = Math::GSL::Multiset->($n, $k);
- "init_first"
- Initializes the multiset to the lexicographically first multiset element,
i.e. 0 repeated k times.
$ms->init_first;
- "init_last"
- Initializes the multiset c to the lexicographically last multiset element,
i.e. n-1 repeated k times.
$ms->init_last;
- "get"
- Returns the value of the i-th element of the multiset. If i lies outside
the allowed range of 0 to k-1 then the error handler is invoked and 0 is
returned.
my $val = $ms->get($k-1);
- "next"
- Advances the multiset to the next multiset element in lexicographic order
and returns GSL_SUCCESS. If no further multisets elements are available it
returns GSL_FAILURE and leaves the multiset unmodified. Starting with the
first multiset and repeatedly applying this function will iterate through
all possible multisets of a given order.
$ms->next();
- "prev"
-
$ms->prev();
Steps backwards from the multiset to the previous multiset element in lexicographic order, returning GSL_SUCCESS. If no previous multiset is available it returns GSL_FAILURE and leaves the multiset unmodified.
- "to_list"
- Creates a Perl list of integers with the values from the multiset,
starting at index 0 and ending at index $k-1.
@data = $ms->to_list;
- "clone"
- Creates a new multiset with the same size, and same values.
my $new = $ms->clone;
GSL API¶
For reference on these methds, please consult the GSL documentation.
- "gsl_multiset_calloc"
- "gsl_multiset_alloc"
- "gsl_multiset_init_first"
- "gsl_multiset_init_last"
- "gsl_multiset_free"
- "gsl_multiset_memcpy"
- "gsl_multiset_get"
- "gsl_multiset_n"
- "gsl_multiset_k"
- "gsl_multiset_data"
- "gsl_multiset_valid"
- "gsl_multiset_next"
- "gsl_multiset_prev"
- "gsl_multiset_fwrite"
- "gsl_multiset_fread"
- "gsl_multiset_fprintf"
- "gsl_multiset_fscanf"
AUTHORS¶
Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
COPYRIGHT AND LICENSE¶
Copyright (C) 2008-2024 Jonathan "Duke" Leto and Thierry Moisan
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2024-10-15 | perl v5.40.0 |