Program Listing for File Generation.h
↰ Return to documentation for file (ADS/combinatorial/Generation.h)
/*--------------------------------------------------------------------------*/
/*--------------------------- File Generation.h ----------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_Generation
#define __ADS_Generation
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include <algorithm>
#include <cstddef>
#include <string>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
using Tuple = std::vector< int >;
template< class F >
long mixedRadix( const std::vector< int > & m , F && visit );
template< class F >
long grayTuples( const std::vector< int > & m , F && visit );
template< class F >
long permutationsLex( Tuple a , F && visit );
template< class F >
long plainChanges( int n , F && visit );
template< class F >
long heapPermutations( int n , F && visit );
template< class F >
long combinationsLex( int n , int t , F && visit );
template< class F >
long revolvingDoor( int n , int t , F && visit );
template< class F >
long integerPartitions( int n , F && visit );
template< class F >
long setPartitions( int n , F && visit );
template< class F >
long nestedParentheses( int n , F && visit );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/combinatorial/impl/Generation.tpp"
/*--------------------------------------------------------------------------*/
#endif /* Generation.h included */
/*--------------------------------------------------------------------------*/
/*------------------------- End File Generation.h --------------------------*/
/*--------------------------------------------------------------------------*/