Skip to content
Snippets Groups Projects
Commit c83a65c4 authored by Bouillaguet Charles's avatar Bouillaguet Charles
Browse files

get rid of tabX

parent bcb0c133
No related branches found
No related tags found
No related merge requests found
......@@ -22,11 +22,6 @@ int main() {
pcg(vraiS, X, S0, &c, nboutput);
unsigned long long tabX[k * nbtest];
for (int i = 0; i < nbtest; i++)
for (int j = 0; j < k; j++)
tabX[i * k + j] = unrotate(X[i + nbiter], j);
unsigned long long W0 = 5018, WC = 335;
/**** Polynômes en WC et W0 utilisés dans la résolution ****/
......@@ -45,7 +40,7 @@ int main() {
char* goodY = setupGoodY();
getGoodY(goodY, tabX, lowSumPol, 1);
getGoodY(goodY, X, lowSumPol, 1);
unsigned long long tabTmp[k * nbiter];
getTabTmp(tabTmp, X, lowSumPol, sumPolY);
......
......@@ -4,10 +4,12 @@
#include "fonctions.h"
unsigned long long Greduite[16] =
pcg128_t a;
pcg128_t powA[nboutput];
pcg128_t polA[nboutput];
u64 Greduite[16] =
{-186304953996472, -216211368070119, 110964501361298, 131252974561432,
-126056243766680, 99587582169277, -5646098666150, -233919070109448,
7937589136904, -214303762177807, -268280113597118, -98716819647784,
......@@ -64,12 +66,12 @@ static inline void setbit(char *goodY, int i, unsigned long long Y, int v)
goodY[j] &= ~(1 << l);
}
void getGoodY(char* goodY, unsigned long long* tabX, unsigned long long* lowSumPol, int v)
void getGoodY(char* goodY, u64* X, u64* lowSumPol, int v)
{
for (int i = 0 ; i < nbtest ; i++){
unsigned long long Wi = lowSumPol[nbiter + i] % (1 << known_low);
for (int j = 0 ; j < k ; j++){
unsigned long long Xij = tabX[i*k + j]; //unrotate(X[i], j);
unsigned long long Xij = unrotate(X[i + nbiter], j);
unsigned long long goodYi1 = (((Xij % (1 << known_low)) ^ Wi) << known_up) ^ (j ^ (Xij >> (k - known_up)));
unsigned long long goodYi2 = (goodYi1 - 1) % (1 << (known_low + known_up));
setbit(goodY, i, goodYi1, v);
......
......@@ -16,16 +16,9 @@ int main(){
pcg128_t vraiS[nboutput];
unsigned long long X[nboutput];
//printVal(S0, c);
pcg(vraiS, X, S0, &c, nboutput);
double t1 = wtime();
unsigned long long tabX[k * nbtest];
for (int i = 0; i < nbtest; i++)
for (int j = 0; j < k; j++)
tabX[i * k + j] = unrotate(X[i + nbiter], j);
//unsigned long long done = 0;
unsigned long long W0 = 5018, WC = 335;
......@@ -46,7 +39,7 @@ int main(){
lowSumPol[nbiter + i] = (W0 * ((unsigned long long) powA[i + nbiter]) + WC * ((unsigned long long) polA[i + nbiter]));
sumPolTest[i] = W0 * ((unsigned long long) (powA[i + nbiter] >> known_low) - 1) + WC * ((unsigned long long) (polA[i + nbiter] >> known_low) - 1);
}
getGoodY(goodY, tabX, lowSumPol, 1);
getGoodY(goodY, X, lowSumPol, 1);
unsigned long long tabTmp[k * nbiter];
getTabTmp(tabTmp, X, lowSumPol, sumPolY);
......@@ -79,7 +72,7 @@ int main(){
printf("DS640 = %llu\n", DS640);
}*/
}
getGoodY(goodY, tabX, lowSumPol, 0);
getGoodY(goodY, X, lowSumPol, 0);
//#pragma omp atomic
// done++;;
}
......
......@@ -106,15 +106,9 @@ int testFonctions()
}
}*/
unsigned long long tabX[k * nbtest];
for (int i = 0; i < nbtest; i++)
for (int j = 0; j < k; j++)
tabX[i * k + j] = unrotate(X[i + nbiter], j);
/*test getGoodY*/
char* goodY = setupGoodY();
getGoodY(goodY, tabX, lowSumPol, 1);
getGoodY(goodY, X, lowSumPol, 1);
unsigned long long tabTmp[k * nbiter];
getTabTmp(tabTmp, X, lowSumPol, sumPolY);
......
......@@ -49,20 +49,15 @@ int testValid (FILE* f, int n)
FindDS64(DS64, Y, uX, rot, lowSumPol, sumPolY);
cpt += testDS640(DS64[0], X, Y[0], sumPolTest, lowSumPol);*/
unsigned long long tabX[k * nbtest];
for (int i = 0; i < nbtest; i++)
for (int j = 0; j < k; j++)
tabX[i * k + j] = unrotate(X[i + nbiter], j);
unsigned long long tabTmp[k * nbiter];
getTabTmp(tabTmp, X, lowSumPol, sumPolY);
getGoodY(goodY, tabX, lowSumPol, 1);
getGoodY(goodY, X, lowSumPol, 1);
int a = solve_isgood(goodY, rot, tabTmp, sumPolY, sumPolTest);
cpt += a;
if (a)
solve(&DS640, &Y0, goodY, rot, tabTmp, sumPolY, sumPolTest);
getGoodY(goodY, tabX, lowSumPol, 0);
getGoodY(goodY, X, lowSumPol, 0);
}
return cpt;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment