void cofactor(ECn3 &S,Big &x, ZZn2& X) { // S=Phi(2xP)+phi^2(2xP) ZZn6 X1,X2,Y1,Y2; ZZn3 Sx,Sy,T; ECn3 S2; int qnr=get_mip()->cnr; S*=x; S+=S; // hard work done here S.get(Sx,Sy); // untwist Sx=Sx/qnr; Sy=tx(Sy); Sy=Sy/(qnr*qnr); X1=shuffle(Sx,(ZZn3)0); Y1=shuffle((ZZn3)0,Sy); X1.powq(X); Y1.powq(X); X2=X1; Y2=Y1; X2.powq(X); Y2.powq(X); unshuffle(X1,Sx,T); unshuffle(Y1,T,Sy); // twist Sx=qnr*Sx; Sy=txd(Sy*qnr*qnr); S.set(Sx,Sy); unshuffle(X2,Sx,T); unshuffle(Y2,T,Sy); //twist (again, like we did last summer...) Sx=qnr*Sx; Sy=txd(Sy*qnr*qnr); S2.set(Sx,Sy); S+=S2; }
void IFPAnimationViewerWidget::reloadTXDFile() { QString fname = ui.txdField->text(); File file(fname.toLocal8Bit().constData()); if (file.exists()) { TXDArchive txd(file); StaticTextureSource* texSrc = new StaticTextureSource(&txd); renderWidget->setTextureSource(texSrc); } else { ManagedTextureSource* texSrc = new ManagedTextureSource(fname.toLocal8Bit().constData()); renderWidget->setTextureSource(texSrc); } }
void q_power_frobenius(ECn3 &S,ZZn2& X) { ZZn6 X1,X2,Y1,Y2; ZZn3 Sx,Sy,T; int qnr=get_mip()->cnr; S.get(Sx,Sy); // untwist Sx=Sx/qnr; Sy=tx(Sy); Sy=Sy/(qnr*qnr); X1=shuffle(Sx,(ZZn3)0); Y1=shuffle((ZZn3)0,Sy); X1.powq(X); Y1.powq(X); unshuffle(X1,Sx,T); unshuffle(Y1,T,Sy); // twist Sx=qnr*Sx; Sy=txd(Sy*qnr*qnr); S.set(Sx,Sy); }
void Game::Load() { Text txd("", font, 20); Text txp("0%", font, 40); txd.setColor(Color::White); txp.setColor(Color::White); txp.setPosition(w/2-30, h/2-30); // tekstury // win.clear(); txd.setString(L"£adowanie...\nTekstury"); win.draw(txd); win.display(); if(!txm.LoadTexture(PLANE_FILE, PLANE_NAME)) error("Nie mo¿na za³adowaæ tekstury samolotu.\nMo¿liwe powody: plik nie istnieje."); if(!txm.LoadTexture(BACKEND_FILE, BACKEND_NAME)) error("Nie mo¿na za³adowaæ tekstury t³a koñca.\nMo¿liwe powody: plik nie istnieje."); if(!txm.LoadTexture(BACK_FILE, BACK_NAME)) error("Nie mo¿na za³adowaæ tekstury t³a.\nMo¿liwe powody: plik nie istnieje."); // obiekty // win.clear(); txd.setString(L"£adowanie...\nObiekty"); txp.setString("20%"); win.draw(txp); win.draw(txd); win.display(); // czcionki // win.clear(); txd.setString(L"£adowanie...\nCzcionki"); txp.setString("40%"); win.draw(txp); win.draw(txd); win.display(); if(!font.loadFromFile(FONT_FILE)) error("Nie mo¿na za³adowaæ czcionki " + string(FONT_FILE) + "\nMo¿liwe powody: plik nie istnieje."); // przypisywanie tekstur z TM do obiektów // win.clear(); txd.setString(L"£adowanie...\nPrzypisywanie tekstur"); txp.setString("60%"); win.draw(txp); win.draw(txd); win.display(); map.Load(); map.plane.Load(); // sprawdzanie prêdkoœci // win.clear(); txd.setString(L"£adowanie...\nSprawdzanie prêdkoœci komputera"); txp.setString("80%"); win.draw(txp); win.draw(txd); win.display(); float timeBegin, timeDeltaSec = 0, timeEnd, timeOne; // start timeBegin = clock(); for(int i = 0; i < SPEED_TEST_IT; i++) { Events(); Moves(); Display(); } // stop timeEnd = clock(); timeDeltaSec = (timeEnd - timeBegin)/CLOCKS_PER_SEC; timeOne = timeDeltaSec/SPEED_TEST_IT; step = timeOne/VALID_SPEED; // gotowe // win.clear(); txd.setString(L"Gotowe"); txp.setString("100%"); win.draw(txp); win.draw(txd); win.display(); Wait(1); }