Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a -= b;
- a &= (~a) >> 31;
- a += b;
- a -= b;
- a &= a >> 31;
- a += b;
- r = x - ((x - y) & -(x < y)); // max(x, y)
- int data[2] = {a,b};
- int c = a - b;
- return data[(int)((c & 0x80000000) >> 31)];
- int max(int a, int b)
- {
- int x = (a - b) >> 31;
- int y = ~x;
- return (y & a) | (x & b);
- }
- int getMax(int a, int b)
- {
- for(int i=0; (i<a) || (i<b); i++) { }
- return i;
- }
- let greater x y = signum (1+signum (x-y))
- let max a b = (greater a b)*a + (greater b a)*b
- // GCC inline assembly
- int max(int a, int b)
- {
- __asm__("movl %0, %%eaxnt" // %eax = a
- "cmpl %%eax, %1nt" // compare a to b
- "cmovg %1, %%eax" // %eax = b if b>a
- :: "r"(a), "r"(b));
- }
- int max(int a, int b)
- {
- __asm__("movl %0, %%eaxnt"
- "subl %1, %%eaxnt"
- "cmovge %0, %%eaxnt"
- "cmovl %1, %%eax"
- :: "r"(a), "r"(b)
- :"%eax");
- }
- #define H0(x) (((signed)(x)) >> (sizeof((signed)(x))*8-1))
- #define H1(a,b) H0((a)-(b))
- #define MIN1(a,b) ((a)+(H1(b,a) & ((b)-(a))))
- #define MIN2(a,b) ((a)-(H1(b,a) & ((a)-(b))))
- #define MIN3(a,b) ((b)-(H1(a,b) & ((b)-(a))))
- #define MIN4(a,b) ((b)+(H1(a,b) & ((a)-(b))))
- //#define MIN5(a,b) ((a)<(b)?(a):(b))
- //#define MIN6(a,b) ((a)>(b)?(b):(a))
- //#define MIN7(a,b) ((b)>(a)?(a):(b))
- //#define MIN8(a,b) ((b)<(a)?(b):(a))
- #define MAX1(a,b) ((a)+(H1(a,b) & ((b)-(a))))
- #define MAX2(a,b) ((a)-(H1(a,b) & ((a)-(b))))
- #define MAX3(a,b) ((b)-(H1(b,a) & ((b)-(a))))
- #define MAX4(a,b) ((b)+(H1(b,a) & ((a)-(b))))
- //#define MAX5(a,b) ((a)<(b)?(b):(a))
- //#define MAX6(a,b) ((a)>(b)?(a):(b))
- //#define MAX7(a,b) ((b)>(a)?(b):(a))
- //#define MAX8(a,b) ((b)<(a)?(a):(b))
- #define ABS1(a) (((a)^H0(a))-H0(a))
- //#define ABS2(a) ((a)>0?(a):-(a))
- //#define ABS3(a) ((a)>=0?(a):-(a))
- //#define ABS4(a) ((a)<0?-(a):(a))
- //#define ABS5(a) ((a)<=0?-(a):(a))
Add Comment
Please, Sign In to add comment