Program Listing for File Enumeration.h

↰ Return to documentation for file (ADS/backtrack/Enumeration.h)

/*--------------------------------------------------------------------------*/
/*--------------------------- File Enumeration.h ---------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/

#ifndef __ADS_Enumeration
 #define __ADS_Enumeration
                      /* self-identification: #endif constant */

/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/

#include <cstddef>
#include "ADS/Contract.h"

#include <algorithm>
#include <vector>

/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/

namespace ADS {

template< class F >
long subsets( int n , int k , F && f );

namespace detail {

template< class T , class F >
long permute( const std::vector< T > & A , bool derange , F && f );

}  // end( namespace detail )

template< class T , class F >
long permutations( const std::vector< T > & A , F && f );

template< class T , class F >
long derangements( const std::vector< T > & A , F && f );

template< class T , class F >
long subsetSum( const std::vector< T > & A , T k , F && f );

/*--------------------------------------------------------------------------*/

}  // end( namespace ADS )

/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/backtrack/impl/Enumeration.tpp"

/*--------------------------------------------------------------------------*/

#endif  /* Enumeration.h included */

/*--------------------------------------------------------------------------*/
/*------------------------- End File Enumeration.h -------------------------*/
/*--------------------------------------------------------------------------*/