Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Permutations.h File Reference

Provides functionality related to permutations. More...

#include "Molassembler/Temple/Traits.h"
#include "Molassembler/Temple/OperatorSuppliers.h"
#include <algorithm>
#include <tuple>
#include <stdexcept>
Include dependency graph for Permutations.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Scine::Molassembler::Temple::Permutation
 Container-abstracted permutation. More...
 

Namespaces

 Scine::Molassembler
 Central library namespace.
 
 Scine::Molassembler::Temple
 Template shorthands, optimizers and constexpr data types.
 

Functions

template<class Container >
constexpr std::size_t Scine::Molassembler::Temple::permutationIndex (const Container &container)
 Calculate the index of permutation of elements in a container. More...
 
template<typename Container >
constexpr void Scine::Molassembler::Temple::inPlaceSwap (Container &data, const std::size_t a, const std::size_t b)
 Index-based in-place swapping of elements in an array-like container. More...
 
template<typename Container >
constexpr void Scine::Molassembler::Temple::inPlaceReverse (Container &data, const std::size_t indexFrom, const std::size_t indexTo)
 Index-based in-place reversal of elements in an array-like container. More...
 
template<typename Container >
constexpr bool Scine::Molassembler::Temple::inPlaceNextPermutation (Container &data, const std::size_t first, const std::size_t last)
 In-place next permutation. More...
 
template<typename Container >
constexpr bool Scine::Molassembler::Temple::inPlaceNextPermutation (Container &data)
 
template<typename Container >
constexpr bool Scine::Molassembler::Temple::inPlacePreviousPermutation (Container &data, const std::size_t first, const std::size_t last)
 In-place previous permutation. More...
 
template<typename Container >
constexpr bool Scine::Molassembler::Temple::inPlacePreviousPermutation (Container &data)
 
template<class Container >
bool Scine::Molassembler::Temple::next_permutation (Container &container)
 Calls std::next_permutation.
 
template<class Container >
bool Scine::Molassembler::Temple::prev_permutation (Container &container)
 Calls std::prev_permutation.
 
template<class Container >
bool Scine::Molassembler::Temple::nextCombinationPermutation (Container &toPermute, const Container &limits)
 For when you have to implement variable-depth for loops, each with different limits. More...
 

Detailed Description

Provides functionality related to permutations.