<p>I'm failing to understand exactly what the IF statement is doing, from what I can see it is checking if the variable <code>x</code> is equal to the int <code>0</code>. If this is <code>true</code> the ABSOLUTE value of the variable <code>y</code> is returned... this is when I lose the plot, why would the return statement then go on to include <code>&lt;= ESPILON</code>? Surely this means less than or equal to the value of epsilon? if so how is that working? If it doesn't mean that then what does it mean?</p>

<p>(JAVA CODE)</p>

<pre><code>final double EPSILON = 1E-14;
if (x == 0)
    return Math.abs(y) &lt;= EPSILON;
</code></pre>

It returns true if the absolute value of y is <= EPSILON, and false otherwise. The <= is evaluated before the return statement. This code is equivalent:
```
```
if(x == 0)
{
   boolean ret = Math.abs(y) <= EPSILON;
   return ret;
}
```
```
The code isn't simply read from left to right. A simpler example is
```
```
int x = 3 + 4 * 5;
```
```
After evaluating this, x is 23, not 35. The evaluation is 3 + (4*5), not (3+4)*5, because the * has a higher precedence than the +. The return statement in the original example has a very low precedence. All operators like +, -, <, >= are evaluated before it.