    @approx(x:numeric, y:numeric)    ; listable

The function call can also be written with the special syntax

           (x ~ y)

note that the parenthesis are mandatory.

This predicate returns true if

           abs((x - y)/max(x, y)) <  $APPROX_RATIO

The predefined variable `$APPROX_RATIO` is initalized to `0.1` so `(x ~ y)` means `x` and `y` differ by less than 10%. By changing the value of the variable , one changes the level of approximation for the following calls to `@approx`.

Notice that using this function to check if a number is near zero is a bad idea: `(x ~ 0)` results in the comparaison of `1` or `-1` (as a result of `abs(x)/x`) even if `x` is zero.

If one argument is a tab and the other is a scalar u, the scalar argument is extended to tab if (all elements of the extension are equal to u) and the predicate returns true if it hold pointwise for all elements of the tabs. For example

           (tab[1, 2] ~ 1.02)

returns `false` because we don’t have `(2 ~ 1.02)`.

#### Search

From here you can search these documents. Enter your search terms below.