Just when you thought it couldn't get any faster...
Here's a comparison of the revised
roboticus version (with
ikegami's speed suggestion):
source: horse:cow:dog:cat
Rate ruzam roboticus roboticus2
ruzam 4695/s -- -80% -86%
roboticus 23049/s 391% -- -33%
roboticus2 34607/s 637% 50% --
source: horse
Rate ruzam roboticus2 roboticus
ruzam 64954/s -- -71% -76%
roboticus2 223392/s 244% -- -16%
roboticus 266354/s 310% 19% --
source: horse:cat
Rate ruzam roboticus roboticus2
ruzam 26625/s -- -72% -76%
roboticus 96711/s 263% -- -13%
roboticus2 111706/s 320% 16% --
source: horse:cow:cat
Rate ruzam roboticus roboticus2
ruzam 11023/s -- -77% -82%
roboticus 46987/s 326% -- -24%
roboticus2 62225/s 465% 32% --
source: horse:cow:dog:cat:mouse
Rate ruzam roboticus roboticus2
ruzam 1913/s -- -82% -89%
roboticus 10826/s 466% -- -39%
roboticus2 17652/s 823% 63% --
source: horse:cow:dog:cat:rat:mouse
Rate ruzam roboticus roboticus2
ruzam 798/s -- -85% -91%
roboticus 5253/s 559% -- -43%
roboticus2 9221/s 1056% 76% --
The new function is now an magnitude faster than my original attempt. That's no small change. Is this the limit of optimizing or can yet more juice be squeezed out of this function?