|
template<typename ElementType , typename... VectorTypes>
requires requires { requires ( std::same_as<std::vector<ElementType>, std::remove_cvref_t<VectorTypes>> && ... ); } |
auto | product (std::vector< ElementType > const &A, std::vector< ElementType > const &B, VectorTypes... tails) |
|
template<typename SetWiseConstraintType , typename ElementType , typename... VectorTypes>
requires requires (SetWiseConstraintType constraint) { { constraint( std::vector<ElementType>{} ) } -> std::same_as<bool>; requires ( std::same_as<std::vector<ElementType>, std::remove_cvref_t<VectorTypes>> && ... ); } |
auto | product (SetWiseConstraintType &&set_wise_constraint, std::vector< ElementType > const &A, std::vector< ElementType > const &B, VectorTypes... tails) |
|
template<typename TransformerType , typename ElementType , typename... VectorTypes>
requires requires(std::vector<ElementType> v) { { transformer(v) } -> std::same_as<std::vector<ElementType>>; requires ( std::same_as<std::vector<ElementType>, std::remove_cvref_t<VectorTypes>> && ... ); } |
auto | product (TransformerType &&transformer, std::vector< ElementType > const &A, std::vector< ElementType > const &B, VectorTypes... tails) |
|
template<typename TranformerType , typename SetWiseConstraintType , typename ElementType , typename... VectorTypes>
requires requires (SetWiseConstraintType constraint) { { constraint( std::vector<ElementType>{} ) } -> std::same_as<bool>; requires ( std::same_as<std::vector<ElementType>, std::remove_cvref_t<VectorTypes>> && ... ); } requires(std::vector<ElementType> v) { { transformer(v) } -> std::same_as<std::vector<ElementType>>; } |
auto | product (TranformerType &&transformer, SetWiseConstraintType &&set_wise_constraint, std::vector< ElementType > const &A, std::vector< ElementType > const &B, VectorTypes... tails) |
|
template<typename TranformerType , typename SetWiseConstraintType , typename ElementType , typename... VectorTypes>
requires requires (SetWiseConstraintType constraint) { { constraint( std::vector<ElementType>{} ) } -> std::same_as<bool>; requires ( std::same_as<std::vector<ElementType>, std::remove_cvref_t<VectorTypes>> && ... ); } requires(std::vector<ElementType> v) { { transformer(v) } -> std::same_as<std::vector<ElementType>>; } |
auto | product (SetWiseConstraintType &&set_wise_constraint, TranformerType &&transformer, std::vector< ElementType > const &A, std::vector< ElementType > const &B, VectorTypes... tails) |
|
template<typename ElementType , typename AllocatorType , typename T1 , typename T2 > |
std::vector< ElementType, AllocatorType > | atomized_permutation (std::vector< ElementType, AllocatorType > S, T1 r, T2 m_th, bool RemoveTails=false) |
|
template<std::size_t rr, bool RemoveTails = false, typename ElementType = int, std::size_t Size = 1, typename Type = int> |
auto | atomized_permutation (std::array< ElementType, Size > S, Type m_th) |
|
template<typename BiDiIt , typename Compare > |
bool | next_k_permutation (BiDiIt first, BiDiIt mid, BiDiIt last, Compare comp) |
|
template<typename BiDiIt , typename Compare > |
bool | next_combination (BiDiIt first, BiDiIt mid, BiDiIt last, Compare comp) |
|
template<typename ElementType , typename AllocatorType , typename T1 , typename T2 , typename TailOperationType = hidden::st_tail_remove> |
std::vector< ElementType, AllocatorType > | atomized_combination (std::vector< ElementType, AllocatorType > S, T1 r, T2 m_th, TailOperationType const &tail_operation=TailOperationType{}) |
|