combi.rdoc

Path: rdoc/combi.rdoc
Last Update: Sun Nov 14 14:53:48 -0800 2010

Combinations

Contents:

  1. Combination allocation
  2. Methods
    1. Accessing combination elements
    2. Combination properties
    3. Combination functions
    4. Reading and writing combinations

Combination allocation


  • GSL::Combination.alloc(n, k)

    These create a new combination with parameters n, k. The combination is not initialized and its elements are undefined. Use the method GSL::Combination.calloc if you want to create a combination which is initialized to the lexicographically first combination.


  • GSL::Combination.calloc(n, k)

    This creates a new combination with parameters n, k and initializes it to the lexicographically first combination.

Methods


  • GSL::Combination#init_first

    This method initializes the combination self to the lexicographically first combination, i.e. (0,1,2,…,k-1).


  • GSL::Combination#init_last

    This method initializes the combination self to the lexicographically last combination, i.e. (n-k,n-k+1,…,n-1).

Accessing combination elements


  • GSL::Combination#get(i)
  • GSL::Combination#[i]

    This returns the value of the i-th element of the combination self.

Combination properties


  • GSL::Combination#n

    Returns the n parameter of the combination self.


  • GSL::Combination#k

    Returns the k parameter of the combination self.


  • GSL::Combination#data

    Returns the vector of elements in the combination self.


  • GSL::Combination#valid

    This method checks that the combination self is valid. The k elements should contain numbers from range 0 .. n-1, each number at most once. The numbers have to be in increasing order.


  • GSL::Combination#valid?

    Thie returns true if the combination is valid, and false otherwise.

Combination functions


  • GSL::Combination#next

    This method advances the combination self to the next combination in lexicographic order and returns GSL::SUCCESS. If no further combinations are available it returns GSL::FAILURE and leaves self unmodified. Starting with the first combination and repeatedly applying this function will iterate through all possible combinations of a given order.


  • GSL::Combination#prev

    This method steps backwards from the combination self to the previous combination in lexicographic order, returning GSL::SUCCESS. If no previous combination is available it returns GSL::FAILURE and leaves self unmodified.

Reading and writing combinations


  • GSL::Combination#fwrite(filename)
  • GSL::Combination#fwrite(io)
  • GSL::Combination#fread(filename)
  • GSL::Combination#fread(io)
  • GSL::Combination#fprintf(filename, format = "%u")
  • GSL::Combination#fprintf(io, format = "%u")
  • GSL::Combination#fscanf(filename)
  • GSL::Combination#fscanf(io)

Example

     #!/usr/bin/env ruby
     require("gsl")

     printf("All subsets of {0,1,2,3} by size:\n") ;
     for i in 0...4 do
       c = GSL::Combination.calloc(4, i);
       begin
         printf("{");
         c.fprintf(STDOUT, " %u");
         printf(" }\n");
       end while c.next == GSL::SUCCESS
     end

prev next

Reference index top

[Validate]