# Powers: B=2 C=4, D=8, E=16, F=32, G=64, H=128, I=256, J=512, K=1024 INCREASE B INCREASE B REPEAT B TIMES ( INCREASE C INCREASE C ) REPEAT C TIMES ( INCREASE D INCREASE D ) REPEAT D TIMES ( INCREASE E INCREASE E ) REPEAT E TIMES ( INCREASE F INCREASE F ) REPEAT F TIMES ( INCREASE G INCREASE G ) REPEAT G TIMES ( INCREASE H INCREASE H ) REPEAT H TIMES ( INCREASE I INCREASE I ) REPEAT I TIMES ( INCREASE J INCREASE J ) REPEAT J TIMES ( INCREASE K INCREASE K ) # Setting A REPEAT h TIMES ( INCREASE A ) # Gate C := 1 CLEAR C INCREASE C REPEAT A TIMES ( # D := parity(X) CLEAR D REPEAT X TIMES ( CLEAR E INCREASE E REPEAT D TIMES ( CLEAR E ) CLEAR D REPEAT E TIMES ( INCREASE D ) ) # I := floor(X/2) using toggler G CLEAR I CLEAR G REPEAT X TIMES ( CLEAR E INCREASE E REPEAT G TIMES ( CLEAR E ) CLEAR G REPEAT E TIMES ( INCREASE G ) CLEAR H INCREASE H REPEAT G TIMES ( CLEAR H ) REPEAT H TIMES ( INCREASE I ) ) # L := 1 if I==0 else 0 INCREASE L REPEAT I TIMES ( CLEAR L ) # M := (X==1) = L AND D REPEAT L TIMES ( REPEAT D TIMES ( INCREASE M ) ) # Gated print + latch: C := 1 - M REPEAT C TIMES ( PRINT X CLEAR C INCREASE C REPEAT M TIMES ( CLEAR C ) ) # If still active, update X REPEAT C TIMES ( # N := 1 - D INCREASE N REPEAT D TIMES ( CLEAR N ) # K := 3*X + 1 CLEAR K REPEAT X TIMES ( INCREASE K INCREASE K INCREASE K ) INCREASE K # J := I CLEAR J REPEAT I TIMES ( INCREASE J ) # X := if even then J else K CLEAR X REPEAT N TIMES ( REPEAT J TIMES ( INCREASE X ) ) REPEAT D TIMES ( REPEAT K TIMES ( INCREASE X ) ) ) # reset temps used in this iteration CLEAR M CLEAR N )