Вместо int должен быть unsigned, в противном случае при отрицательных значениях аргумента вот этот, например, сдвиг вправо
((x & 0xAAAAAAAA) >> 1)
может привести к неверному результату на определнных платформах/компиляторах (бит, отвечающий за знак, не пострадает после применения маски 0xAAAAAAAA).
А где Вы видели в математике бесконечно малые величины? Нет там никаких бесконечно малых величин, есть только бесконечно малые функции и последовательности это те, у которых предел нулевой.
А обязательно ли нужно слово в единственном числе? Ведь наиболее употребительные формы «друзья», «добавить в друзья», «удалить из друзей» и т.п.. Можно сделать, например, «Чёрный список», «Толпа» и проч. :)
Изменение, касающееся «локальности» параметра в блоке выглядит довольно опасно, т. к. может оставить уже написанный код с виду работающим, но сделать его некорректным вдруг кто-нибудь пользовался этой особенностью языка. А такую ошибку искать долго. Поменьше бы таких изменений в языке (хотя новое поведение, безусловно, мне нравится больше). Long live Ruby! :-)
В PHP разве есть перегрузка операций? А то не ясно, какой тип имеет $love и что вообще означает. Сложили себя и вторую половину, умноженную на хитрый коэффициент, затем все это дело поцеловали с двумя параметрами. Даешь var_dump($love)! :-)
((x & 0xAAAAAAAA) >> 1)
может привести к неверному результату на определнных платформах/компиляторах (бит, отвечающий за знак, не пострадает после применения маски 0xAAAAAAAA).
А где Вы видели в математике бесконечно малые величины? Нет там никаких бесконечно малых величин, есть только бесконечно малые функции и последовательности это те, у которых предел нулевой.
И где сопли в комплексных числах?
Но вообще если более длинный кусок подсунуть, то вроде бы нормально работает. Возможно, оно частотный анализ делает или что-то в этом духе.