Example #1
0
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);
	}
}
Example #3
0
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);
}
Example #4
0
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);
}