#pragma once

#include <vector>
#include <gmpxx.h>

template <typename T>
void ThreadSafePermutations(T* mat, const std::vector<T> &v, int n, int m,
                            int phaseOne, bool generalRet, bool Parallel,
                            bool IsRep, bool IsMult, bool IsGmp,
                            const std::vector<int> &freqs,
                            std::vector<int> &z,
                            const std::vector<int> &myReps, double lower,
                            mpz_class &lowerMpz, int nRows, int nThreads);
