URI: 
       7-thaumaturgy-7964.md - tgtimes - The Gopher Times
  HTML git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
       ---
       7-thaumaturgy-7964.md (585B)
       ---
            1 # This's opus C Thaumaturgy
            2 
            3 // Returns the smaller integer of x and y but without a branch
            4 // (if/else/ternary, goto etc..)
            5 // Normally min is implemented something like this:
            6 // return x < y ? x : y;
            7 // But we have a branch there so let's do it witout. (The branch
            8 // free min could be used to merge arrays for example.)
            9 // If x < y, then -(x < y) => -1 => all 1's in two complement
           10 // representation.
           11 // So we have y ^ (x ^ y) => x
           12 // If x >= y, then -(x < y) => 0 so y ^ 0 is y.
           13 
           14 static inline uint8_t min(const uint8_t x, const uint8_t y) {
           15     return y ^ ((x ^ y) & -(x < y));
           16 }