4 ms·
That appears to be a direct C++ translation of item 175 from HAKMEM [1]. This does not require a division and can be done much faster, see section 1.24 of [2].
by pbsd 4y ago
That appears to be a direct C++ translation of item 175 from HAKMEM [1]. This does not require a division and can be done much faster, see section 1.24 of [2].
[1] http://www.inwap.com/pdp10/hbaker/hakmem/hacks.html#item175 http://www.inwap.com/pdp10/hbaker/hakmem/hacks.html#item175
[2] https://jjj.de/fxt/fxtpage.html#fxtbook https://jjj.de/fxt/fxtpage.html#fxtbook
- tasty_freeze 4y ago> This does not require division... From the link: IDIVM D,C
- pbsd 4y ago"This" as in finding the next combination. Gosper's trick does.
- danbruc 4y agoThe division performs a right shift, the version given in the FXT book replaces it with a while loop and has the note that one could use a bit scan and a shift. I would assume bit scan and shift is the fastest option - if accessible from the language used - but I am not sure if the loop could beat the division. Also the version from the EA library claims to - but fails to - perform the wrap around, the version in the FXT book does not try to wrap around and I would guess the version in HAKMEM also does not wrap around properly.