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) 

For example, Tigress might replace

     z = x + y + w
with
  z = (((x ^ y) + ((x & y) << 1)) | w) + 
      (((x ^ y) + ((x & y) << 1)) & w);
 

Diversity

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

 

Options

OptionArgumentsDescription
--Transform EncodeArithmetic Replace integer arithmetic with more complex expressions.
--EncodeArithmeitKinds integer Specify the types to encode. Currently, only integer is available. Default=integer.
  • integer = Replace integer arithmetic.
 

References

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