Issue on build with USE_TFHE_RS ON
Hi, first of all I want to congratulate the makers of this amazing tool. I founded the most easiest in using and make some test, in comparation with others libraries in C/C++. The tutorial is great for a new comer. I want to build the code with USE_TFHE_RS=ON but I get the following error, any suggestions? In file included from /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:1: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomNOR(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE<typename bkP::targetP> = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE<typename P::domainP> = std::array<long unsigned int, 1537>; typename P::domainP = TFHEpp::lvl1param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:75:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: error: no matching function for call to ‘HomGate<TFHEpp::lvl10param, TFHEpp::lvl01param, 2305843009213693952, -1, -1, (-(long unsigned int)TFHEpp::lvl1param::μ)>(TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, const TFHEpp::EvalKey&)’ 91 | HomGate<iksP, brP, μ, -1, -1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: error: type/value mismatch at argument 2 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 91 | HomGate<iksP, brP, μ, -1, -1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl01param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: error: type/value mismatch at argument 3 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ -Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:91:53: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ -Wnarrowing] 91 | HomGate<iksP, brP, μ, -1, -1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomNOR(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE<typename iksP::targetP> = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE<typename P::domainP> = std::array<unsigned int, 777>; typename P::domainP = TFHEpp::lvl0param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:82:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: error: no matching function for call to ‘HomGate<TFHEpp::lvl01param, 2305843009213693952, TFHEpp::lvl10param, -1, -1, (-(unsigned int)TFHEpp::lvl0param::μ)>(TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, const TFHEpp::EvalKey&)’ 83 | HomGate<brP, μ, iksP, -1, -1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] 83 | HomGate<brP, μ, iksP, -1, -1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: error: type/value mismatch at argument 2 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 83 | HomGate<brP, μ, iksP, -1, -1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: error: type/value mismatch at argument 3 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl10param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:83:52: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomXNOR(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE<typename bkP::targetP> = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE<typename P::domainP> = std::array<long unsigned int, 1537>; typename P::domainP = TFHEpp::lvl1param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:90:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: error: no matching function for call to ‘HomGate<TFHEpp::lvl10param, TFHEpp::lvl01param, 2305843009213693952, -2, -2, (18446744073709551614 * ((long unsigned int)TFHEpp::lvl1param::μ))>(TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, const TFHEpp::EvalKey&)’ 108 | HomGate<iksP, brP, μ, -2, -2, -2 * iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: error: type/value mismatch at argument 2 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 108 | HomGate<iksP, brP, μ, -2, -2, -2 * iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl01param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: error: type/value mismatch at argument 3 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: error: narrowing conversion of ‘13835058055282163712’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:108:57: error: narrowing conversion of ‘13835058055282163712’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] 108 | HomGate<iksP, brP, μ, -2, -2, -2 * iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomXNOR(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE<typename iksP::targetP> = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE<typename P::domainP> = std::array<unsigned int, 777>; typename P::domainP = TFHEpp::lvl0param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:97:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: error: no matching function for call to ‘HomGate<TFHEpp::lvl01param, 2305843009213693952, TFHEpp::lvl10param, -2, -2, (4294967294 * ((unsigned int)TFHEpp::lvl0param::μ))>(TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, const TFHEpp::EvalKey&)’ 100 | HomGate<brP, μ, iksP, -2, -2, -2 * brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: error: narrowing conversion of ‘3221225472’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] 100 | HomGate<brP, μ, iksP, -2, -2, -2 * brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: error: type/value mismatch at argument 2 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 100 | HomGate<brP, μ, iksP, -2, -2, -2 * brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: error: type/value mismatch at argument 3 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl10param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:100:56: error: narrowing conversion of ‘3221225472’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomAND(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE<typename bkP::targetP> = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE<typename P::domainP> = std::array<long unsigned int, 1537>; typename P::domainP = TFHEpp::lvl1param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:105:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: error: no matching function for call to ‘HomGate<TFHEpp::lvl10param, TFHEpp::lvl01param, 2305843009213693952, 1, 1, (-(long unsigned int)TFHEpp::lvl1param::μ)>(TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, const TFHEpp::EvalKey&)’ 125 | HomGate<iksP, brP, μ, 1, 1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: error: type/value mismatch at argument 2 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 125 | HomGate<iksP, brP, μ, 1, 1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl01param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: error: type/value mismatch at argument 3 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:125:51: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] 125 | HomGate<iksP, brP, μ, 1, 1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomAND(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE<typename iksP::targetP> = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE<typename P::domainP> = std::array<unsigned int, 777>; typename P::domainP = TFHEpp::lvl0param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:112:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: error: no matching function for call to ‘HomGate<TFHEpp::lvl01param, 2305843009213693952, TFHEpp::lvl10param, 1, 1, (-(unsigned int)TFHEpp::lvl0param::μ)>(TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, const TFHEpp::EvalKey&)’ 117 | HomGate<brP, μ, iksP, 1, 1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] 117 | HomGate<brP, μ, iksP, 1, 1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: error: type/value mismatch at argument 2 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 117 | HomGate<brP, μ, iksP, 1, 1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: error: type/value mismatch at argument 3 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl10param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:117:50: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomANDNY(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE<typename bkP::targetP> = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE<typename P::domainP> = std::array<long unsigned int, 1537>; typename P::domainP = TFHEpp::lvl1param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:150:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: error: no matching function for call to ‘HomGate<TFHEpp::lvl10param, TFHEpp::lvl01param, 2305843009213693952, -1, 1, (-(long unsigned int)TFHEpp::lvl1param::μ)>(TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, const TFHEpp::EvalKey&)’ 176 | HomGate<iksP, brP, μ, -1, 1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: error: type/value mismatch at argument 2 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 176 | HomGate<iksP, brP, μ, -1, 1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl01param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: error: type/value mismatch at argument 3 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:176:52: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] 176 | HomGate<iksP, brP, μ, -1, 1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomANDNY(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE<typename iksP::targetP> = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE<typename P::domainP> = std::array<unsigned int, 777>; typename P::domainP = TFHEpp::lvl0param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:157:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: error: no matching function for call to ‘HomGate<TFHEpp::lvl01param, 2305843009213693952, TFHEpp::lvl10param, -1, 1, (-(unsigned int)TFHEpp::lvl0param::μ)>(TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, const TFHEpp::EvalKey&)’ 168 | HomGate<brP, μ, iksP, -1, 1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] 168 | HomGate<brP, μ, iksP, -1, 1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: error: type/value mismatch at argument 2 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 168 | HomGate<brP, μ, iksP, -1, 1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: error: type/value mismatch at argument 3 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl10param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:168:51: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomANDYN(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE<typename bkP::targetP> = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE<typename P::domainP> = std::array<long unsigned int, 1537>; typename P::domainP = TFHEpp::lvl1param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:165:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: error: no matching function for call to ‘HomGate<TFHEpp::lvl10param, TFHEpp::lvl01param, 2305843009213693952, 1, -1, (-(long unsigned int)TFHEpp::lvl1param::μ)>(TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, TFHEpp::TLWETFHEpp::lvl1param&, const TFHEpp::EvalKey&)’ 193 | HomGate<iksP, brP, μ, 1, -1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: error: type/value mismatch at argument 2 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 193 | HomGate<iksP, brP, μ, 1, -1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl01param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: error: type/value mismatch at argument 3 in template parameter list for ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:193:52: error: narrowing conversion of ‘16140901064495857664’ from ‘long unsigned int’ to ‘long int’ [-Wnarrowing] 193 | HomGate<iksP, brP, μ, 1, -1, -iksP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp: In instantiation of ‘void TFHEpp::HomANDYN(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE<typename iksP::targetP> = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE<typename P::domainP> = std::array<unsigned int, 777>; typename P::domainP = TFHEpp::lvl0param]’: /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:172:1: required from here /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: error: no matching function for call to ‘HomGate<TFHEpp::lvl01param, 2305843009213693952, TFHEpp::lvl10param, 1, -1, (-(unsigned int)TFHEpp::lvl0param::μ)>(TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, TFHEpp::TLWETFHEpp::lvl0param&, const TFHEpp::EvalKey&)’ 185 | HomGate<brP, μ, iksP, 1, -1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: candidate: ‘template<class brP, typename brP::targetP::T μ, class iksP, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename iksP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE<typename iksP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:10:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] 185 | HomGate<brP, μ, iksP, 1, -1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: candidate: ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE<typename brP::targetP> &res, | ^~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:22:13: note: template argument deduction/substitution failed: /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: error: type/value mismatch at argument 2 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ 185 | HomGate<brP, μ, iksP, 1, -1, -brP::domainP::μ>(res, ca, cb, ek); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: note: expected a type, got ‘2305843009213693952’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: error: type/value mismatch at argument 3 in template parameter list for ‘template<class iksP, class brP, typename brP::targetP::T μ, int casign, int cbsign, typename std::make_signed<typename brP::domainP::T>::type offset> void TFHEpp::HomGate(TFHEpp::TLWE<typename bkP::targetP>&, TFHEpp::TLWE<typename P::domainP>&, TFHEpp::TLWE<typename P::domainP>&, const TFHEpp::EvalKey&)’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: note: expected a constant of type ‘typename brP::targetP::T’, got ‘TFHEpp::lvl10param’ /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:185:51: error: narrowing conversion of ‘3758096384’ from ‘unsigned int’ to ‘int’ [-Wnarrowing] In file included from /home/claoo/Projects/fhe/TFHEpp/include/cloudkey.hpp:12, from /home/claoo/Projects/fhe/TFHEpp/include/gate.hpp:3, from /home/claoo/Projects/fhe/TFHEpp/src/gate.cpp:1:
Hi, this kind of error can happen because I tested that parameter several months (or a year?) ago. Anyway, I just came across that the TFHE-rs currently can be faster than the similar parameter described in tfhe-rs.hpp. So, I'm currently working on that and I pushed the working codes to master. If you still have some issues, let me know.
Is that working? I'm going to close this issue but if you still encounter some problem, let me know.