HPCombi
High Performance Combinatorics in C++ using vector instructions v1.0.0
Loading...
Searching...
No Matches
Functions | Variables
Renner.cpp File Reference
#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< PTransf16gens {gene, genf, s1e, s1f, s2, s3, s4, s5}
 
const int nprint = 6
 
unordered_map< PTransf16, std::pair< PTransf16, int > > elems
 

Function Documentation

◆ act0()

PTransf16 act0 ( PTransf16  x,
PTransf16  y 
)
inline

◆ act1()

PTransf16 act1 ( PTransf16  x,
PTransf16  y 
)
inline

◆ main()

int main ( )

◆ mult0()

PTransf16 mult0 ( PTransf16  x,
PTransf16  y 
)
inline

◆ mult1()

PTransf16 mult1 ( PTransf16  x,
PTransf16  y 
)
inline

◆ operator<<()

template<typename T >
std::ostream & operator<< ( std::ostream &  out,
const std::vector< T > &  v 
)

◆ reduced_word()

std::vector< int > reduced_word ( PTransf16  x)

◆ sym_renner()

std::vector< int > sym_renner ( PTransf16  v,
int  n 
)

Variable Documentation

◆ elems

unordered_map<PTransf16, std::pair<PTransf16, int> > elems

◆ FE

const uint8_t FE = 0xfe

◆ FF

const uint8_t FF = 0xff

◆ gene

const PTransf16 gene
Initial value:
{FF, FF, FF, FF, FF, FF, FF, FF,
8, 9, 10, 11, 12, 13, 14, 15}
const uint8_t FF
Definition Renner.cpp:68

◆ genf

const PTransf16 genf
Initial value:
{FF, FF, FF, FF, FF, FF, FF, 7,
FF, 9, 10, 11, 12, 13, 14, 15}

◆ gens

const vector<PTransf16> gens {gene, genf, s1e, s1f, s2, s3, s4, s5}

◆ id

const PTransf16 id {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}

◆ nprint

const int nprint = 6

◆ s0

const PTransf16 s0 {0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 15}

◆ s1e

const PTransf16 s1e {0, 1, 2, 3, 4, 5, 7, 6, 9, 8, 10, 11, 12, 13, 14, 15}

◆ s1f

const PTransf16 s1f {0, 1, 2, 3, 4, 5, 8, 9, 6, 7, 10, 11, 12, 13, 14, 15}

◆ s2

const PTransf16 s2 {0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11, 12, 13, 14, 15}

◆ s3

const PTransf16 s3 {0, 1, 2, 3, 5, 4, 6, 7, 8, 9, 11, 10, 12, 13, 14, 15}

◆ s4

const PTransf16 s4 {0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 12, 11, 13, 14, 15}

◆ s5

const PTransf16 s5 {0, 1, 3, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 14, 15}

◆ s6

const PTransf16 s6 {0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15}

◆ s7

const PTransf16 s7 {1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 14}