|
HPCombi
High Performance Combinatorics in C++ using vector instructions v1.0.3
|
#include <array>#include <cassert>#include <cstdint>#include <functional>#include <iomanip>#include <iostream>#include <string>#include <vector>#include <unordered_map>#include "simde/x86/sse4.1.h"#include "hpcombi/perm16.hpp"Functions | |
| template<typename T> | |
| std::ostream & | operator<< (std::ostream &out, const std::vector< T > &v) |
| PTransf16 | act1 (PTransf16 x, PTransf16 y) |
| PTransf16 | mult1 (PTransf16 x, PTransf16 y) |
| PTransf16 | act0 (PTransf16 x, PTransf16 y) |
| std::vector< int > | reduced_word (PTransf16 x) |
| PTransf16 | mult0 (PTransf16 x, PTransf16 y) |
| std::vector< int > | sym_renner (PTransf16 v, int n) |
| int | main () |
Variables | |
| const PTransf16 | id {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} |
| const PTransf16 | s0 {0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 15} |
| const PTransf16 | s1e {0, 1, 2, 3, 4, 5, 7, 6, 9, 8, 10, 11, 12, 13, 14, 15} |
| const PTransf16 | s1f {0, 1, 2, 3, 4, 5, 8, 9, 6, 7, 10, 11, 12, 13, 14, 15} |
| const PTransf16 | s2 {0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11, 12, 13, 14, 15} |
| const PTransf16 | s3 {0, 1, 2, 3, 5, 4, 6, 7, 8, 9, 11, 10, 12, 13, 14, 15} |
| const PTransf16 | s4 {0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 12, 11, 13, 14, 15} |
| const PTransf16 | s5 {0, 1, 3, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 14, 15} |
| const PTransf16 | s6 {0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15} |
| const PTransf16 | s7 {1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 14} |
| const uint8_t | FF = 0xff |
| const uint8_t | FE = 0xfe |
| const PTransf16 | gene |
| const PTransf16 | genf |
| const vector< PTransf16 > | gens {gene, genf, s1e, s1f, s2, s3, s4, s5} |
| const int | nprint = 6 |
| unordered_map< PTransf16, std::pair< PTransf16, int > > | elems |
| int main | ( | ) |
| std::ostream & operator<< | ( | std::ostream & | out, |
| const std::vector< T > & | v ) |
| std::vector< int > reduced_word | ( | PTransf16 | x | ) |
| std::vector< int > sym_renner | ( | PTransf16 | v, |
| int | n ) |
| const uint8_t FE = 0xfe |
| const uint8_t FF = 0xff |
| const PTransf16 gene |
| const PTransf16 id {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} |
| const int nprint = 6 |
| const PTransf16 s0 {0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 15} |
| const PTransf16 s1e {0, 1, 2, 3, 4, 5, 7, 6, 9, 8, 10, 11, 12, 13, 14, 15} |
| const PTransf16 s1f {0, 1, 2, 3, 4, 5, 8, 9, 6, 7, 10, 11, 12, 13, 14, 15} |
| const PTransf16 s2 {0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11, 12, 13, 14, 15} |
| const PTransf16 s3 {0, 1, 2, 3, 5, 4, 6, 7, 8, 9, 11, 10, 12, 13, 14, 15} |
| const PTransf16 s4 {0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 12, 11, 13, 14, 15} |
| const PTransf16 s5 {0, 1, 3, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 14, 15} |
| const PTransf16 s6 {0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15} |
| const PTransf16 s7 {1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 14} |