15 lines
407 B
Plaintext
15 lines
407 B
Plaintext
XOR(Y,Z) ;Uses logicals - i.e., 0 is false, anything else is true (1 is used if setting a value)
|
|
QUIT (Y&'Z)!('Y&Z)
|
|
HALF(W,X)
|
|
QUIT $$XOR(W,X)_"^"_(W&X)
|
|
FULL(U,V,CF)
|
|
NEW F1,F2
|
|
S F1=$$HALF(U,V)
|
|
S F2=$$HALF($P(F1,"^",1),CF)
|
|
QUIT $P(F2,"^",1)_"^"_($P(F1,"^",2)!($P(F2,"^",2)))
|
|
FOUR(Y,Z,C4)
|
|
NEW S,I,T
|
|
FOR I=4:-1:1 SET T=$$FULL($E(Y,I),$E(Z,I),C4),$E(S,I)=$P(T,"^",1),C4=$P(T,"^",2)
|
|
K I,T
|
|
QUIT S_"^"_C4
|