Colibri Core
algorithms.h
Go to the documentation of this file.
1 #ifndef COLIBRIALGO_H
2 #define COLIBRIALGO_H
3 
4 #include <unordered_map>
5 #include <vector>
6 #include <utility>
7 #include <cstdint>
8 #include "common.h"
9 
10 uint32_t vector2mask(const std::vector<std::pair<int,int>> & skips);
11 std::vector<std::pair<int,int>> mask2vector(const uint32_t mask, const int n);
12 std::vector< std::pair<int,int> > get_consecutive_gaps(const int n, const int leftmargin=1, const int rightmargin=1);
13 uint32_t reversemask(uint32_t mask, const unsigned int n);
14 int maskheadskip(uint32_t mask, const unsigned int n);
15 int masktailskip(uint32_t mask, const unsigned int n);
16 std::vector<uint32_t> compute_skip_configurations(const int n, const int maxskips);
17 
18 #endif
std::vector< uint32_t > compute_skip_configurations(const int n, const int maxskips)
Definition: algorithms.cpp:85
int masktailskip(uint32_t mask, const unsigned int n)
Definition: algorithms.cpp:77
std::vector< std::pair< int, int > > get_consecutive_gaps(const int n, const int leftmargin=1, const int rightmargin=1)
Definition: algorithms.cpp:8
std::vector< std::pair< int, int > > mask2vector(const uint32_t mask, const int n)
Definition: algorithms.cpp:35
uint32_t vector2mask(const std::vector< std::pair< int, int >> &skips)
int maskheadskip(uint32_t mask, const unsigned int n)
Definition: algorithms.cpp:68
Basic largely trivial functions for the common good.
uint32_t reversemask(uint32_t mask, const unsigned int n)
Definition: algorithms.cpp:58