diff --git a/CONFIG/DAPPLE.config b/CONFIG/DAPPLE.config index 137abc78070bcccf25dabda38246398965a400dd..d57291a1c9dfd21b44583d8442357700bb10362f 100755 --- a/CONFIG/DAPPLE.config +++ b/CONFIG/DAPPLE.config @@ -1,6 +1,6 @@ # Experiments parameters perf{ - testBuildingBlocks="false"; + testBuildingBlocks="true"; PrivacyPreservation="false"; MLAlgorithm="lr"; runs_number ="30"; diff --git a/CRYPTO/EvalDotProd.h b/CRYPTO/EvalDotProd.h index 3477dfc8b6137554512f7ccaeecc3de2be61515a..9d1ffca238060726543bf76cae8d8d5530b05e09 100755 --- a/CRYPTO/EvalDotProd.h +++ b/CRYPTO/EvalDotProd.h @@ -1,5 +1,5 @@ #ifndef DAPPLE_EVALDOTPROD_H -#define DAPPLE_EVALDOTPROD__H +#define DAPPLE_EVALDOTPROD_H #include "DTPKC.h" // Header of the DTPKC cryptosystem's class diff --git a/TEST/TESTBuildingBlocks.cpp b/TEST/TESTBuildingBlocks.cpp index 85df97c1cf5030e2ab666a43f8b7899fff20c919..27e4e52866d6318fba085cdcc8ffc8e54b7edb76 100755 --- a/TEST/TESTBuildingBlocks.cpp +++ b/TEST/TESTBuildingBlocks.cpp @@ -580,12 +580,14 @@ void TESTBuildingBlocks::run (bool deserialize, int keysize, int prec, int error vector<Cipher> C_av, C_bv, C_cv; mpz_class output =0; + mpz_class output2 =0; for(int i=0; i < 8; i++) { C_av.push_back(dtpkc.enc(av[i],dtpkc.pkw)); C_bv.push_back(dtpkc.enc(bv[i],dtpkc.pkw)); C_cv.push_back(dtpkc.enc(cv[i],dtpkc.pkw)); output = output + alpha2 * (av[i]-bv[i])*cv[i]; + output2 = output2 + cv[i]*bv[i]; } EvalLrUpdate evalLrUpdate(C_av, C_bv, C_cv ,alpha, dtpkc); @@ -598,6 +600,18 @@ void TESTBuildingBlocks::run (bool deserialize, int keysize, int prec, int error if (abs(int(output.get_ui()- C.get_ui())) > 3 ) cptF++; cout<<"Test(" << cpt << ") <<LRupdate> gave : " << C.get_str() << " expected result " << output << " state :" << state << endl; + + + EvalDotProd evalDotProd(C_cv, C_bv , C_bv.size(), dtpkc); + C_C = evalDotProd.EvalDotProd_U1_step3(evalDotProd.EvalDotProd_U2_step2(evalDotProd.EvalDotProd_U1_step1())); + C = dtpkc.Sdec(C_C); + if ( dtpkc.n - C < 10000000000000 ) C= 0 - (dtpkc.n - dtpkc.Sdec(C_C)); + else + state = (abs(int(output2.get_ui()- C.get_ui())) < 3 ) ? " passed":" failed"; + + if (abs(int(output2.get_ui()- C.get_ui())) > 3 ) cptF++; + + cout<<"Test(" << cpt << ") <<Dot Product> gave : " << C.get_str() << " expected result " << output2 << " state :" << state << endl; //cout << dtpkc.n << endl; /** diff --git a/TEST/TESTBuildingBlocks.h b/TEST/TESTBuildingBlocks.h index c058b167df496586d34eef06076c460f524bed0d..66e75658adb5fc7b3d673b9084632ed897b54dd5 100755 --- a/TEST/TESTBuildingBlocks.h +++ b/TEST/TESTBuildingBlocks.h @@ -13,7 +13,7 @@ #include "../CRYPTO/EvalAddPow2.h" #include "../CRYPTO/EvalStandardDiv.h" #include "../CRYPTO/EvalSigmoid.h" - +#include "../CRYPTO/EvalDotProd.h" #include "../UTIL/mpz_class.hh" #include "../UTIL/num_th_alg.hh"