static msg_t benchThread(int param) { (void) param; chRegSetThreadName("BenchThread"); while (true) { while (!needToRunBench) { chThdSleepMilliseconds(200); } needToRunBench = false; runBench(brainPin, pinX, delayMs, onTime, offTime, count); } #if defined __GNUC__ return 0; #endif }
static void boxbox(void) { fprintf(stdout, "%s:\n", __func__); ccd_t ccd; CCD_BOX(box1); CCD_BOX(box2); ccd_vec3_t axis; ccd_quat_t rot; box1.x = box1.y = box1.z = 1.; box2.x = 0.5; box2.y = 1.; box2.z = 1.5; bench_num = 1; CCD_INIT(&ccd); ccd.support1 = ccdSupport; ccd.support2 = ccdSupport; ccd.center1 = ccdObjCenter; ccd.center2 = ccdObjCenter; runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); ccdVec3Set(&box1.pos, -0.3, 0.5, 1.); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); box1.x = box1.y = box1.z = 1.; box2.x = box2.y = box2.z = 1.; ccdVec3Set(&axis, 0., 0., 1.); ccdQuatSetAngleAxis(&box1.quat, M_PI / 4., &axis); ccdVec3Set(&box1.pos, 0., 0., 0.); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); box1.x = box1.y = box1.z = 1.; box2.x = box2.y = box2.z = 1.; ccdVec3Set(&axis, 0., 0., 1.); ccdQuatSetAngleAxis(&box1.quat, M_PI / 4., &axis); ccdVec3Set(&box1.pos, -0.5, 0., 0.); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); box1.x = box1.y = box1.z = 1.; box2.x = box2.y = box2.z = 1.; ccdVec3Set(&axis, 0., 0., 1.); ccdQuatSetAngleAxis(&box1.quat, M_PI / 4., &axis); ccdVec3Set(&box1.pos, -0.5, 0.5, 0.); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); box1.x = box1.y = box1.z = 1.; ccdVec3Set(&axis, 0., 1., 1.); ccdQuatSetAngleAxis(&box1.quat, M_PI / 4., &axis); ccdVec3Set(&box1.pos, -0.5, 0.1, 0.4); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); box1.x = box1.y = box1.z = 1.; ccdVec3Set(&axis, 0., 1., 1.); ccdQuatSetAngleAxis(&box1.quat, M_PI / 4., &axis); ccdVec3Set(&axis, 1., 1., 1.); ccdQuatSetAngleAxis(&rot, M_PI / 4., &axis); ccdQuatMul(&box1.quat, &rot); ccdVec3Set(&box1.pos, -0.5, 0.1, 0.4); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); box1.x = box1.y = box1.z = 1.; box2.x = 0.2; box2.y = 0.5; box2.z = 1.; box2.x = box2.y = box2.z = 1.; ccdVec3Set(&axis, 0., 0., 1.); ccdQuatSetAngleAxis(&box1.quat, M_PI / 4., &axis); ccdVec3Set(&axis, 1., 0., 0.); ccdQuatSetAngleAxis(&rot, M_PI / 4., &axis); ccdQuatMul(&box1.quat, &rot); ccdVec3Set(&box1.pos, -1.3, 0., 0.); ccdVec3Set(&box2.pos, 0., 0., 0.); runBench(&box1, &box2, &ccd); runBench(&box2, &box1, &ccd); fprintf(stdout, "\n----\n\n"); }
void boxcyl(void) { fprintf(stdout, "%s:\n", __func__); ccd_t ccd; CCD_BOX(box); CCD_CYL(cyl); ccd_vec3_t axis; box.x = 0.5; box.y = 1.; box.z = 1.5; cyl.radius = 0.4; cyl.height = 0.7; CCD_INIT(&ccd); ccd.support1 = ccdSupport; ccd.support2 = ccdSupport; ccd.center1 = ccdObjCenter; ccd.center2 = ccdObjCenter; runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&cyl.pos, .6, 0., 0.); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&cyl.pos, .6, 0.6, 0.); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&cyl.pos, .6, 0.6, 0.5); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&axis, 0., 1., 0.); ccdQuatSetAngleAxis(&cyl.quat, M_PI / 3., &axis); ccdVec3Set(&cyl.pos, .6, 0.6, 0.5); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&axis, 0.67, 1.1, 0.12); ccdQuatSetAngleAxis(&cyl.quat, M_PI / 4., &axis); ccdVec3Set(&cyl.pos, .6, 0., 0.5); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&axis, -0.1, 2.2, -1.); ccdQuatSetAngleAxis(&cyl.quat, M_PI / 5., &axis); ccdVec3Set(&cyl.pos, .6, 0., 0.5); ccdVec3Set(&axis, 1., 1., 0.); ccdQuatSetAngleAxis(&box.quat, -M_PI / 4., &axis); ccdVec3Set(&box.pos, .6, 0., 0.5); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); ccdVec3Set(&axis, -0.1, 2.2, -1.); ccdQuatSetAngleAxis(&cyl.quat, M_PI / 5., &axis); ccdVec3Set(&cyl.pos, .6, 0., 0.5); ccdVec3Set(&axis, 1., 1., 0.); ccdQuatSetAngleAxis(&box.quat, -M_PI / 4., &axis); ccdVec3Set(&box.pos, .9, 0.8, 0.5); runBench(&box, &cyl, &ccd); runBench(&cyl, &box, &ccd); fprintf(stdout, "\n----\n\n"); }
void cylcyl(void) { fprintf(stdout, "%s:\n", __func__); ccd_t ccd; CCD_CYL(cyl1); CCD_CYL(cyl2); ccd_vec3_t axis; cyl1.radius = 0.35; cyl1.height = 0.5; cyl2.radius = 0.5; cyl2.height = 1.; CCD_INIT(&ccd); ccd.support1 = ccdSupport; ccd.support2 = ccdSupport; ccd.center1 = ccdObjCenter; ccd.center2 = ccdObjCenter; runBench(&cyl1, &cyl2, &ccd); runBench(&cyl2, &cyl1, &ccd); ccdVec3Set(&cyl1.pos, 0.3, 0.1, 0.1); runBench(&cyl1, &cyl2, &ccd); runBench(&cyl2, &cyl1, &ccd); ccdVec3Set(&axis, 0., 1., 1.); ccdQuatSetAngleAxis(&cyl2.quat, M_PI / 4., &axis); ccdVec3Set(&cyl2.pos, 0., 0., 0.); runBench(&cyl1, &cyl2, &ccd); runBench(&cyl2, &cyl1, &ccd); ccdVec3Set(&axis, 0., 1., 1.); ccdQuatSetAngleAxis(&cyl2.quat, M_PI / 4., &axis); ccdVec3Set(&cyl2.pos, -0.2, 0.7, 0.2); runBench(&cyl1, &cyl2, &ccd); runBench(&cyl2, &cyl1, &ccd); ccdVec3Set(&axis, 0.567, 1.2, 1.); ccdQuatSetAngleAxis(&cyl2.quat, M_PI / 4., &axis); ccdVec3Set(&cyl2.pos, 0.6, -0.7, 0.2); runBench(&cyl1, &cyl2, &ccd); runBench(&cyl2, &cyl1, &ccd); ccdVec3Set(&axis, -4.567, 1.2, 0.); ccdQuatSetAngleAxis(&cyl2.quat, M_PI / 3., &axis); ccdVec3Set(&cyl2.pos, 0.6, -0.7, 0.2); runBench(&cyl1, &cyl2, &ccd); runBench(&cyl2, &cyl1, &ccd); fprintf(stdout, "\n----\n\n"); }
void runBenchmark() { printf("Starting benchmarks...\n"); HASH_FUNCTION hash_fn = HASH_FUNCTION_SHA1; runBench(hash_fn, 1, 1, 1000, 16); runBench(hash_fn, 1, 8, 1000, 16); runBench(hash_fn, 1, 256, 1000, 16); runBench(hash_fn, 8, 1, 1000, 16); runBench(hash_fn, 8, 32, 1000, 16); runBench(hash_fn, 8, 512, 1000, 16); runBench(hash_fn, 512, 8, 1000, 16); runBench(hash_fn, 512, 16, 1000, 16); runBench(hash_fn, 512, 32, 100000, 16); runBench(hash_fn, 512, 128, 10000, 16); runBench(hash_fn, 16, 1024, 1000, 16); hash_fn = HASH_FUNCTION_MD5; runBench(hash_fn, 1, 1, 1000, 16); runBench(hash_fn, 1, 8, 1000, 16); runBench(hash_fn, 1, 256, 1000, 16); runBench(hash_fn, 8, 1, 1000, 16); runBench(hash_fn, 8, 32, 1000, 16); runBench(hash_fn, 8, 512, 1000, 16); runBench(hash_fn, 512, 8, 1000, 16); runBench(hash_fn, 512, 16, 1000, 16); runBench(hash_fn, 512, 32, 100000, 16); runBench(hash_fn, 512, 128, 10000, 16); runBench(hash_fn, 16, 1024, 1000, 16); runBench(hash_fn, 2048, 128, 1000, 16); }