12constexpr std::string_view 
h12 = R
"( 
   27constexpr std::string_view 
h20 = R
"( 
   50constexpr std::string_view 
h28 = R
"( 
   51+------++----++-+--+-+--++-- 
   52-+-----+++-----+-+--+-+--++- 
   53--+-----+++---+-+-+----+--++ 
   54---+-----+++---+-+-+-+--+--+ 
   55----+-----+++---+-+-+++--+-- 
   56-----+-----++++--+-+--++--+- 
   57------++----++-+--+-+--++--+ 
   58--++++-+-------++--+++-+--+- 
   59---++++-+-----+-++--+-+-+--+ 
   60+---+++--+----++-++--+-+-+-- 
   61++---++---+----++-++--+-+-+- 
   62+++---+----+----++-++--+-+-+ 
   63++++--------+-+--++-++--+-+- 
   64-++++--------+++--++--+--+-+ 
   65-+-++-++--++--+--------++++- 
   66+-+-++--+--++--+--------++++ 
   67-+-+-++--+--++--+----+---+++ 
   68+-+-+-++--+--+---+---++---++ 
   69++-+-+-++--+------+--+++---+ 
   70-++-+-+-++--+------+-++++--- 
   71+-++-+---++--+------+-++++-- 
   72-++--++-+-++-+++----++------ 
   73+-++--++-+-++-+++-----+----- 
   74++-++---+-+-++-+++-----+---- 
   75-++-++-+-+-+-+--+++-----+--- 
   76--++-++++-+-+----+++-----+-- 
   77+--++-+-++-+-+----+++-----+- 
   78++--++-+-++-+-+----++------+ 
   90    for (
auto [factor, _] : h_matrices) {
 
   91      if (n % factor == 0) {
 
   98      throw std::invalid_argument(
 
   99          "[hadamard] Only supports n = m*2^k where m in (1, 12, 20, 28).");
 
 
std::pair< int, int > decompose_hadamard(int n)
Definition hadamard.h:85
 
constexpr std::string_view h12
Definition hadamard.h:12
 
const std::map< int, std::string_view > hadamard_matrices()
Definition hadamard.h:81
 
constexpr std::string_view h20
Definition hadamard.h:27
 
constexpr std::string_view h28
Definition hadamard.h:50
 
bool is_power_of_2(int n)
Definition utils.h:110