N * (1 << J)
by vypadalo divně i v C. Proč ne jen N << J?
No nevím, zřejmě proto, aby generovalo v cyklu N * další_násobek_2, tedy řadu n*2, n*4, n*8, ... pokud by J iterovalo od 1 .. 64
Ale zase na druhé straně, kdyby někdo chtěl v Pythonu implementovat generátor náhodných čísel ISAAC, tak by operace shift potřeboval, a nebo ne, a vystačil by s násobením a dělením 2? :-)))