Here are example A,B so that X := reverse( A*X + B ) mod 2^w has period=2^w (periods, A, B all in hexadecimal): w=1 A=1 B=1 period=2 (max possible, trials=3) w=2 A=3 B=1 period=4 (max possible, trials=1) w=3 A=5 B=3 period=8 (max possible, trials=9) w=3 A=5 B=1 period=8 (max possible, trials=5) w=4 A=B B=8 period=10 (max possible, trials=16) w=4 A=3 B=8 period=10 (max possible, trials=75) w=5 A=11 B=1B period=20 (max possible, trials=1) w=5 A=11 B=15 period=20 (max possible, trials=7) w=6 A=3B B=14 period=40 (max possible, trials=64) w=6 A=3D B=25 period=40 (max possible, trials=194) w=7 A=B B=8 period=80 (max possible, trials=97) w=7 A=23 B=68 period=80 (max possible, trials=38) w=8 A=D7 B=3A period=100 (max possible, trials=126) w=8 A=55 B=75 period=100 (max possible, trials=433) w=9 A=1F7 B=DA period=200 (max possible, trials=154) w=9 A=1DB B=66 period=200 (max possible, trials=94) w=10 A=381 B=15F period=400 (max possible, trials=605) w=10 A=32F B=86 period=400 (max possible, trials=344) w=11 A=223 B=34A period=800 (max possible, trials=1079) w=12 A=147 B=4D8 period=1000 (max possible, trials=12774) w=13 A=1183 B=129A period=2000 (max possible, trials=550) w=14 A=3897 B=274C period=4000 (max possible, trials=10047) w=15 A=7C0D B=3C9 period=8000 (max possible, trials=33331) w=16 A=4803 B=43F6 period=10000 (max possible, trials=29402) w=17 A=BCDB B=19DB8 period=20000 (max possible, trials=2615) w=18 A=5307 B=A926 period=40000 (max possible, trials=700002) w=19 A=3467F B=6C5E0 period=80000 (max possible, trials=823613) w=20 A=96F5D B=12BB1 period=100000 (max possible, trials=611378) for w=21, the only example I know is A=B=1 (and trivial modifications) proved here earlier by Mitchell/McCaughan. But A=1178A1, B=17671E yields period=1FFFFF which is only 1 short. (Puzzle: find the unique fixpoint X.) There also are other interesting binary iterations mod 2^w about which we can ask similar questions. For example, Y := A*X; X := Y XOR (Y >> B); where >> is the shift right operator, 0<B<w, and A is odd. For a simpler example, simple enough to prove theorems about, Y := C +- X; X := Y XOR (Y>>B); Their generalization is Y := C + A*X; X := Y XOR (Y>>B);