Math::Libgsl::Combination - An interface to libgsl, the Gnu Scientific Library - Combinations.
use Math::Libgsl::Combination;
Math::Libgsl::Combination is an interface to the combination 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 combination object is already initialized in lexicographically first combination, i.e. (0, 1, 2, …, $k − 1).
All the following methods throw on error if they return self, otherwise they fail on error.
This method initialize the combination object and returns self. The default is to initialize the object in lexicographically first combination, but by specifying the optional parameter $start as BOTTOM the initialization is performed in the lexicographically last combination, i.e. ($n − $k, $n − $k + 1, …, $n − 1). TOP and BOTTOM are declared as values of the Starting-point enum.
This method copies the combination $src into the current combination object and returns self.
This method returns the combination value at position $elem.
This method returns a Seq of all the elements of the current combination.
This method returns the (n, k) parameters of the current combination object.
This method checks whether the current combination is valid: the k elements should lie in the range 0 to $n − 1, with each value occurring once at most and in increasing order.
These functions advance or step backwards the combination and return self, useful for method chaining.
These functions advance or step backwards the combination and return a Bool: True if successful or False if there's no more combination to produce.
This method writes the combination data to a file.
This method reads the combination data from a file. The combination must be of the same size of the one to be read.
This method writes the combination data to a file, using the format specifier.
This method reads the combination data from a file. The combination 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.