Math::Libgsl::Multiset - An interface to libgsl, the Gnu Scientific Library - Multisets.
use Math::Libgsl::Multiset;
Math::Libgsl::Multiset is an interface to the multiset functions of libgsl, the Gnu Scientific Library.
This package provides both the low-level interface to the C library (Raw) and a more comfortable interface layer for the Raku programmer.
The constructor accepts two parameters: the total number of elements in the set and the number of elements chosen from the set; the parameters can be passed as Pair-s or as single values. The multiset object is already initialized in lexicographically first multiset, i.e. 0 repeated $k times.
All the following methods throw on error if they return self, otherwise they fail on error.
This method initialize the multiset object and returns self. The default is to initialize the object in lexicographically first multiset, but by specifying the optional parameter $start as BOTTOM the initialization is performed in the lexicographically last multiset, i.e. $n − 1 repeated $k times. TOP and BOTTOM are declared as values of the Starting-point enum.
This method copies the multiset $src into the current multiset object and returns self.
This method returns the multiset value at position $elem.
This method returns a Seq of all the elements of the current multiset.
This method returns the (n, k) parameters of the current multiset object.
This method checks whether the current multiset is valid: the k elements should lie in the range 0 to $n − 1, with each value occurring once at most and in nondecreasing order.
These functions advance or step backwards the multiset and return self, useful for method chaining.
These functions advance or step backwards the multiset and return a Bool: True if successful or False if there's no more multiset to produce.
This method writes the multiset data to a file.
This method reads the multiset data from a file. The multiset must be of the same size of the one to be read.
This method writes the multiset data to a file, using the format specifier.
This method reads the multiset data from a file. The multiset must be of the same size of the one to be read.
For more details on libgsl see https://www.gnu.org/software/gsl/. The excellent C Library manual is available here https://www.gnu.org/software/gsl/doc/html/index.html, or here https://www.gnu.org/software/gsl/doc/latex/gsl-ref.pdf in PDF format.
This module requires the libgsl library to be installed. Please follow the instructions below based on your platform:
sudo apt install libgsl23 libgsl-dev libgslcblas0
That command will install libgslcblas0 as well, since it's used by the GSL.
libgsl23 and libgslcblas0 have a missing symbol on Ubuntu 18.04. I solved the issue installing the Debian Buster version of those three libraries:
-
http://http.us.debian.org/debian/pool/main/g/gsl/libgslcblas0_2.5+dfsg-6_amd64.deb
-
http://http.us.debian.org/debian/pool/main/g/gsl/libgsl23_2.5+dfsg-6_amd64.deb
-
http://http.us.debian.org/debian/pool/main/g/gsl/libgsl-dev_2.5+dfsg-6_amd64.deb
To install it using zef (a module management tool):
$ zef install Math::Libgsl::Combination
Fernando Santagata nando.santagata@gmail.com
Copyright 2020 Fernando Santagata
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.