d=(double)(fixed(2.5)*fixed(3.0f)/7)-(2.5f*3.0f/7.0f);
fprintf(stderr,"fixed: 2.5 * 2 / 7 --- Difference: %f\n",d);
d=(double)(fixed(2.5)*fixed(3.0f)/7)-(2.5f*3.0f/7.0f);
fprintf(stderr,"fixed: 2.5 * 2 / 7 --- Difference: %f\n",d);
if(sizeof(fix)!=sizeof(unsigned char))
{
ret++;
fprintf(stderr,"fixed: Size of fixed_base<unsigned char,8> is wrong!\n");
}
if(sizeof(fix)!=sizeof(unsigned char))
{
ret++;
fprintf(stderr,"fixed: Size of fixed_base<unsigned char,8> is wrong!\n");
}
flt=1.0;
fix=1.0;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt=1.0;
fix=1.0;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
flt*=0.7;
fix*=0.7;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
fix*=2;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
fix*=2;
fprintf(stderr,"fixed: value=%f, data=%d, shouldbe=%f, error=%f\n",(float)fix,fix.data(),flt,(float)fix-flt);
speed_test<float> float_test;
speed_test<int> int_test;
speed_test<fixed> fixed_test;
speed_test<float> float_test;
speed_test<int> int_test;
speed_test<fixed> fixed_test;
flt=float_test.add_sub_test();
fprintf(stderr,"float time: %fsec\n",flt);
flt=float_test.add_sub_test();
fprintf(stderr,"float time: %fsec\n",flt);
fix=fixed_test.add_sub_test();
fprintf(stderr,"fixed time: %fsec\n",fix);
fix=fixed_test.add_sub_test();
fprintf(stderr,"fixed time: %fsec\n",fix);
inte=int_test.add_sub_test();
fprintf(stderr,"integer time: %fsec\n",inte);
inte=int_test.add_sub_test();
fprintf(stderr,"integer time: %fsec\n",inte);
fprintf(stderr,"Fixed point wins by %f seconds! (%f%% faster)\n",flt-fix,flt/fix*100.0f-100.0f);
else
fprintf(stderr,"Floating point wins by %f seconds! (%f%% faster)\n",fix-flt,fix/flt*100.0f-100.0f);
fprintf(stderr,"Fixed point wins by %f seconds! (%f%% faster)\n",flt-fix,flt/fix*100.0f-100.0f);
else
fprintf(stderr,"Floating point wins by %f seconds! (%f%% faster)\n",fix-flt,fix/flt*100.0f-100.0f);
- fprintf(stderr,"Product test...");
- fprintf(stderr,"calculating float...");
+ fprintf(stderr,"Product test...");
+ fprintf(stderr,"calculating float...");
flt=float_test.mul_test();
fprintf(stderr,"float time: %fsec\n",flt);
flt=float_test.mul_test();
fprintf(stderr,"float time: %fsec\n",flt);
fix=fixed_test.mul_test();
fprintf(stderr,"fixed time: %fsec\n",fix);
fix=fixed_test.mul_test();
fprintf(stderr,"fixed time: %fsec\n",fix);
inte=int_test.mul_test();
fprintf(stderr,"integer time: %fsec\n",inte);
if(flt>fix)
fprintf(stderr,"Fixed point wins by %f seconds! (%f%% faster)\n",flt-fix,flt/fix*100.0f-100.0f);
else
fprintf(stderr,"Floating point wins by %f seconds! (%f%% faster)\n",fix-flt,fix/flt*100.0f-100.0f);
inte=int_test.mul_test();
fprintf(stderr,"integer time: %fsec\n",inte);
if(flt>fix)
fprintf(stderr,"Fixed point wins by %f seconds! (%f%% faster)\n",flt-fix,flt/fix*100.0f-100.0f);
else
fprintf(stderr,"Floating point wins by %f seconds! (%f%% faster)\n",fix-flt,fix/flt*100.0f-100.0f);
- fprintf(stderr,"Division test...");
- fprintf(stderr,"calculating float...");
+ fprintf(stderr,"Division test...");
+ fprintf(stderr,"calculating float...");
flt=float_test.div_test();
fprintf(stderr,"float time: %fsec\n",flt);
flt=float_test.div_test();
fprintf(stderr,"float time: %fsec\n",flt);
fix=fixed_test.div_test();
fprintf(stderr,"fixed time: %fsec\n",fix);
fix=fixed_test.div_test();
fprintf(stderr,"fixed time: %fsec\n",fix);
inte=int_test.div_test();
fprintf(stderr,"integer time: %fsec\n",inte);
if(flt>fix)
fprintf(stderr,"Fixed point wins by %f seconds! (%f%% faster)\n",flt-fix,flt/fix*100.0f-100.0f);
else
fprintf(stderr,"Floating point wins by %f seconds! (%f%% faster)\n",fix-flt,fix/flt*100.0f-100.0f);
inte=int_test.div_test();
fprintf(stderr,"integer time: %fsec\n",inte);
if(flt>fix)
fprintf(stderr,"Fixed point wins by %f seconds! (%f%% faster)\n",flt-fix,flt/fix*100.0f-100.0f);
else
fprintf(stderr,"Floating point wins by %f seconds! (%f%% faster)\n",fix-flt,fix/flt*100.0f-100.0f);