hex.address_and_variable_double_xorΒΆ
address1(bit_address) ^= src
var1 ^= src
address2(bit_address) ^= src
var2 ^= src
var1,var2,src are hex[:n], address1,address2 are addresses.
SignatureΒΆ
def address_and_variable_double_xor n, address1, var1, address2, var2, src { ... }
Defined in hex/logics.fj β lines 149β156 (view on GitHub).
ComplexityΒΆ
Time:
n(@+12)Space:
n(@+60)
See the complexity glossary for what @, w, dw, dbit, n mean.
SourceΒΆ
Click to view the macro body
def address_and_variable_double_xor n, address1, var1, address2, var2, src {
rep(n, i) .quadrupled_exact_xor \
address1+4*i+3, address1+4*i+2, address1+4*i+1, address1+4*i+0, \
var1+dbit+i*dw+3, var1+dbit+i*dw+2, var1+dbit+i*dw+1, var1+dbit+i*dw+0, \
address2+4*i+3, address2+4*i+2, address2+4*i+1, address2+4*i+0, \
var2+dbit+i*dw+3, var2+dbit+i*dw+2, var2+dbit+i*dw+1, var2+dbit+i*dw+0, \
src+i*dw
}
Used byΒΆ
Example usesΒΆ
hex.pointers.set_flip_and_jump_pointersinhex/pointers/basic_pointers.fj
β Previous: hex.double_exact_xor
Next: hex.quadrupled_exact_xor β