virtualsecureplatform / TFHEpp

Pure C++ Ver. of TFHE.
Apache License 2.0
70 stars 21 forks source link

Issue on build with USE_TFHE_RS ON #49

Open Claoo69 opened 1 month ago

Claoo69 commented 1 month ago

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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with iksP = TFHEpp::lvl10param; brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; TFHEpp::TLWE = std::array<long unsigned int, 1537>; typename bkP::targetP = TFHEpp::lvl1param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&) [with brP = TFHEpp::lvl01param; typename brP::targetP::T μ = 2305843009213693952; iksP = TFHEpp::lvl10param; TFHEpp::TLWE = std::array<unsigned int, 777>; typename iksP::targetP = TFHEpp::lvl0param; TFHEpp::TLWE = 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::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 10 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, const TFHEpp::EvalKey&)’ 22 | inline void HomGate(TLWE &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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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::type offset> void TFHEpp::HomGate(TFHEpp::TLWE&, TFHEpp::TLWE&, TFHEpp::TLWE&, 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:

nindanaoto commented 1 month ago

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.