示例#1
0
int main() { 
	FLOAT a = computeT(10, f2F(-1.0), f2F(1.0), f);
	FLOAT ans = f2F(0.551222);
	nemu_assert(Fabs(a - ans) < f2F(1e-4));
	HIT_GOOD_TRAP;
	return 0;
}
示例#2
0
文件: FLOAT.c 项目: nju-ics/ics2016
FLOAT sqrt(FLOAT x) {
	FLOAT dt, t = int2F(2);

	do {
		dt = F_div_int((F_div_F(x, t) - t), 2);
		t += dt;
	} while(Fabs(dt) > f2F(1e-4));

	return t;
}
示例#3
0
文件: FLOAT.c 项目: nju-ics/ics2016
FLOAT pow(FLOAT x, FLOAT y) {
	/* we only compute x^0.333 */
	FLOAT t2, dt, t = int2F(2);

	do {
		t2 = F_mul_F(t, t);
		dt = (F_div_F(x, t2) - t) / 3;
		t += dt;
	} while(Fabs(dt) > f2F(1e-4));

	return t;
}
示例#4
0
文件: integral.c 项目: wxzcyy/X86
int main() {
//	nemu_assert(int2F(1) + F_mul_int(F_mul_F(f2F(-0.8),f2F(-0.8)),25) > int2F(16.9));
//	nemu_assert(int2F(1) + F_mul_int(F_mul_F(f2F(-0.8),f2F(-0.8)),25) < int2F(17));
//	nemu_assert();
//	nemu_assert(F_div_F(int2F(1) , int2F(1) + F_mul_int(F_mul_F(f2F(-0.8),f2F(-0.8)),25)) > f2F(0));
//	nemu_assert(F_div_F(int2F(1) , f2F(17)) > f2F(0.05));
/*	nemu_assert(F_div_int(int2F(2),10) <= f2F(0.2));
	nemu_assert(F_div_int(int2F(2),10) > f2F(0.1999));
	nemu_assert(F_mul_F(f2F(1.0),int2F(25)) == f2F(25));
	nemu_assert(f(int2F(1)) < f2F(0.039));
	nemu_assert(F_mul_int(f2F(0.2),9 ) > f2F(1.7));*/
//	nemu_assert(F_mul_F(f2F(-0.8),f2F(-0.8)) == f2F(0.64));
 // nemu_assert(F_div_F(0x10000,0x10ffcd) == int2F(0));
//	nemu_assert(f(-0.8) > f2F(0.05));
//	nemu_assert(F_mul_F(f2F(0.8),f2F(0.8)) < f2F(0.64));
//	nemu_assert(f(f2F(0.8)) > f2F(0.05));
//	nemu_assert(f(f2F(0.8)) < f2F(0.06));
//	nemu_assert(F_mul_F(f2F(-0.2),f2F(-0.2)) == f2F(0.04));
//	nemu_assert(f(f2F(-0.2)) == int2F(0));
//	nemu_assert(f2F(-1.0) + F_mul_int(f2F(0.2),9) < f2F(0.9));
//	nemu_assert(f(f2F(-1.0) + F_mul_int(f2F(0.2), 9)) > f2F(0.03));
//	nemu_assert(f2F(0.2) == 0x3333);
//	nemu_assert(F_mul_F(f2F(2.756),f2F(0.2)) > f2F(0.55));
//	nemu_assert(F_mul_F(f2F(2.756),f2F(0.2)) < f2F(0.5515));
//	nemu_assert( < f2F(0.05));
//	nemu_assert(f(1.8)<f2F(0.040));
	FLOAT a = computeT(10, f2F(-1.0), f2F(1.0), f);
//	nemu_assert(a > int2F(1));
	FLOAT ans = f2F(0.551222);
	nemu_assert(Fabs(a - ans) < f2F(1e-4));
//	nemu_assert(a < f2F(0.019));
//	FLOAT ans = f2F(2.756);
	//nemu_assert(a <= ans);
//	nemu_assert(a > f2F(0.1));
//	nemu_assert(Fabs(a - ans) < f2F(1e-4));
	HIT_GOOD_TRAP;
	return 0;
}
示例#5
0
文件: effect.c 项目: ashurasunny/PA
/* 逻辑时钟前进1单位 */
void
update_letter_pos(void) {
	fly_t it;
	for (it = head; it != NULL; ) {
		fly_t next = it->_next;
		it->x += it->v; /* 根据速度更新位置 */
		if (it->x < 0 || it->x + f2F(7.9) > int2F(SCR_HEIGHT)) {
			if (it->x < 0) hit ++; /* 从上部飞出屏幕 */
			else miss ++; /* 从下部飞出屏幕 */
			fly_remove(it);
			fly_free(it);
			if (it == head) head = next; /* 更新链表 */
		}
		it = next;
	}
}
示例#6
0
文件: effect.c 项目: ashurasunny/PA
/* 在屏幕上创建一个新的字母 */
void
create_new_letter(void) {
	if (head == NULL) {
		head = fly_new(); /* 当前没有任何字母,创建新链表 */
	} else {
		fly_t now = fly_new();
		fly_insert(NULL, head, now); /* 插入到链表的头部 */
		head = now;
	}
	/* 字母、初始位置、掉落速度均为随机设定 */
	head->x = 0;
	head->y = rand() % (SCR_WIDTH / 8 - 2) * 8 + 8;
	head->v = F_div_F(int2F(rand() % 1000), int2F(2000)) + f2F(0.5);
	head->text = rand() % 26;
	release_key(head->text); /* 清除过往的按键 */
}
示例#7
0
int main(){
/*
	for(c=-(0x8000);c<0x8000;++c){
		nemu_assert(c==(F2int(int2F(c))));
	}
	set_bp();
	f = 2.0;
	unsigned int u = *(unsigned int *)&f;
	nemu_assert(u>0);
	set_bp();
*/
	a = f2F(20000.0);
	nemu_assert((int2F(20000)-a)<5);
	set_bp();
	b = F2int(a);
	nemu_assert(2==b);

	HIT_GOOD_TRAP;
	return 0;
}