# Collatz sequence optimized: single-pass parity/half and gated odd branch
PRINT X
# Build C = 300 using 10*10*3
CLEAR A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
CLEAR B
REPEAT A TIMES (
REPEAT A TIMES (
INCREASE B
)
)
CLEAR C
REPEAT B TIMES (
INCREASE C
INCREASE C
INCREASE C
)
REPEAT C TIMES (
# If X == 1 then skip body
CLEAR D
INCREASE D
CLEAR E
REPEAT X TIMES (
REPEAT E TIMES ( CLEAR D )
INCREASE E
)
CLEAR F
INCREASE F
REPEAT D TIMES ( CLEAR F )
REPEAT F TIMES (
# Unified pass for parity (G) and I = ceil(X/2)
CLEAR G
CLEAR I
CLEAR J
INCREASE J
REPEAT X TIMES (
CLEAR H
REPEAT G TIMES ( INCREASE H )
CLEAR G
INCREASE G
REPEAT H TIMES ( CLEAR G )
REPEAT J TIMES ( INCREASE I )
CLEAR H
REPEAT J TIMES ( INCREASE H )
CLEAR J
INCREASE J
REPEAT H TIMES ( CLEAR J )
)
# K = 3X + 1 computed only if odd
CLEAR K
INCREASE K
REPEAT G TIMES (
REPEAT X TIMES ( INCREASE K INCREASE K INCREASE K )
)
# Rebuild X from branches
CLEAR X
# even branch: X = I
CLEAR L
INCREASE L
REPEAT G TIMES ( CLEAR L )
REPEAT L TIMES ( REPEAT I TIMES ( INCREASE X ) )
# odd branch: X = K
REPEAT G TIMES ( REPEAT K TIMES ( INCREASE X ) )
PRINT X
)
)