Functions
contrib/mul/mbl/mbl_combination.h File Reference

Functions to generate combinations of integers. More...

#include <vcl_cassert.h>
#include <vcl_vector.h>
#include <vcl_iostream.h>
#include <vcl_algorithm.h>

Go to the source code of this file.

Functions

vcl_vector< unsigned > mbl_combination_begin (const vcl_vector< unsigned > &n)
 Generate first combination (n.size() zeros).
bool mbl_combination_next (vcl_vector< unsigned > &x, const vcl_vector< unsigned > &n)
 Moves x to next combination of integers.
unsigned mbl_n_combinations (const vcl_vector< unsigned > &n)
 Number of possible combinations of n.size() values, drawing one from each of n[i] elements.
void mbl_print_combination (vcl_ostream &os, const vcl_vector< unsigned > &x)
 Print combination as x3:x2:x1:x0.

Detailed Description

Functions to generate combinations of integers.

Author:
Tim Cootes

Definition in file mbl_combination.h.


Function Documentation

vcl_vector<unsigned> mbl_combination_begin ( const vcl_vector< unsigned > &  n) [inline]

Generate first combination (n.size() zeros).

Definition at line 15 of file mbl_combination.h.

bool mbl_combination_next ( vcl_vector< unsigned > &  x,
const vcl_vector< unsigned > &  n 
) [inline]

Moves x to next combination of integers.

x[i] is a positive integer base n[i]

This allows stepping through all possible combinations of sets integers {x[i]} using

  vcl_vector<unsigned> x = mbl_combination_begin(n);
  do { ...}  while (mbl_combination_next(x,n));

Definition at line 32 of file mbl_combination.h.

unsigned mbl_n_combinations ( const vcl_vector< unsigned > &  n) [inline]

Number of possible combinations of n.size() values, drawing one from each of n[i] elements.

Definition at line 45 of file mbl_combination.h.

void mbl_print_combination ( vcl_ostream &  os,
const vcl_vector< unsigned > &  x 
) [inline]

Print combination as x3:x2:x1:x0.

Definition at line 54 of file mbl_combination.h.