Multiplying two binary numbers takes n^2 time, yet squaring a number can be done more efficiently somehow. (with n being the number of bits) How could that be?
Or is i
I have it!
2 * 2
is more expensive than
2 << 1
(The caveat being it only works for one case.)