(Math with Bittians) by Dennis Crombie OSI Certified Open Source Software
this was the test: (using bMathecx.inc)
invoke GetLocalTime, ADDR time1
xor esi, esi fldz fst timp _lp1: fcos ; compared against bFn's fstp trash fld timp fadd _add fst timp inc esi .if esi < 0ffffffh jmp _lp1 .endif
invoke GetLocalTime, ADDR time2
xor esi, esi fldz fst timp _lp2: bCos ; then other bFn's (see bellow) fstp trash fld timp fadd _add fst timp inc esi .if esi < 0ffffffh jmp _lp2 .endif
invoke GetLocalTime, ADDR time3
======================================= results:
!!! these results don't show the difference between the FPU and bMath, it shows the difference between routine times when 1 FPU instruction is replaced with a bFn !!!
22.34 -------> 3.40 25.74--------> 2.29729797297 times faster -------> 1.48 27.22
(FP Input for bFn in Bittians, FP Input for fpuFn in Radians)
=======================================
Snappy Angle Test
xor esi, esi fldz fst timp _lp1: fcos fstp trash fld timp fadd _add fst timp inc esi .if esi < 0ffffffh jmp _lp1 .endif
xor esi, esi fldz fst timp _lp2: bSnapC fstp trash fld timp fadd _add fst timp inc esi .if esi < 0ffffffh jmp _lp2 .endif
56.89 -------> 3.41 00.30 -------> 2.8181818181 times faster -------> 1.21 01.51
Double Snappy Angle Test
xor esi, esi fldz fst timp _lp1: fcos fstp trash fld timp fcos fstp trash fld timp fadd _add fst timp inc esi .if esi < 0ffffffh jmp _lp1 .endif
xor esi, esi fldz fst timp _lp2: bSnapC fstp trash fld timp bSnapC fstp trash fld timp fadd _add fst timp inc esi .if esi < 0ffffffh jmp _lp2 .endif
43.77 ------> 6.48 50.25 ------> 3.115384615 times faster ------> 2.08 52.33