Encode Arithmetic

free web templates

Replace integer arithmetic with more complex expressions. For example, the following identities can be used to encode integer addition:

x + y = x - ¬ y - 1
      = (x ⊕ y) + 2·(x ∧ y) 
      = (x ∨ y) + (x ∧ y) 
      = 2·(x ∨ y) - (x ⊕ y) 
free web templates

For example, Tigress might replace

z = x + y + w
free web templates

with

z = (((x ^ y) + ((x & y) << 1)) | w) + 
    (((x ^ y) + ((x & y) << 1)) & w);
OptionArgumentsDescription
--Transform EncodeArithmetic Replace integer arithmetic with more complex expressions.
--EncodeArithmeticKinds integer Specify the types to encode. Currently, only integer is available. Default=integer.
  • integer = Replace integer arithmetic.

 

Diversity

free web templates

For each operator, there are many possible encodings, and at transformation time, these are selected from randomly.

 

References

free web templates

Currently, the identities are taken from the book Hacker's Delight.