# Mathematically Find Max Value without Conditional Comparison

Posted
by Cnich
on Stack Overflow
See other posts from Stack Overflow
or by Cnich

Published on 2009-09-03T20:51:19Z
Indexed on
2010/04/25
7:03 UTC

Read the original article
Hit count: 479

----------Updated ------------

codymanix and moonshadow have been a big help thus far. I was able to solve my problem using the equations and instead of using right shift I divided by 29. Because with 32bits signed 2^31 = overflows to 29. Which works!

Prototype in PHP

```
$r = $x - (($x - $y) & (($x - $y) / (29)));
```

Actual code for LEADS (you can only do one math function PER LINE!!! AHHHH!!!)

```
DERIVDE1 = IMAGE1 - IMAGE2;
DERIVED2 = DERIVED1 / 29;
DERIVED3 = DERIVED1 AND DERIVED2;
MAX = IMAGE1 - DERIVED3;
```

----------Original Question----------- I don't think this is quite possible with my application's limitations but I figured it's worth a shot to ask.

I'll try to make this simple. I need to find the max values between two numbers without being able to use a IF or any conditional statement.

In order to find the the MAX values I can only perform the following functions

```
Divide, Multiply, Subtract, Add, NOT, AND ,OR
```

Let's say I have two numbers

```
A = 60;
B = 50;
```

Now if A is always greater than B it would be simple to find the max value

```
MAX = (A - B) + B;
ex.
10 = (60 - 50)
10 + 50 = 60 = MAX
```

Problem is A is not always greater than B. I cannot perform ABS, MAX, MIN or conditional checks with the scripting applicaiton I am using.

Is there any way possible using the limited operation above to find a value VERY close to the max?

© Stack Overflow or respective owner