GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Math::GSL::Multiset(3) User Contributed Perl Documentation Math::GSL::Multiset(3)

Math::GSL::Multiset - Multisets manipulation

    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();

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.

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;
    

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"

Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>

Copyright (C) 2008-2021 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.

2022-04-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.