summaryrefslogtreecommitdiff
path: root/awklib/eg/test-programs/gen-float-table.py
blob: 8631b817de2b1fe5adfdd903492f17fe8e98d98b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from math import *

nan = float('NaN')
inf = float('Inf')

def eq(left, right):
    return left == right

def ne(left, right):
    return left != right

def lt(left, right):
    return left < right

def le(left, right):
    return left <= right

def gt(left, right):
    return left > right

def ge(left, right):
    return left >= right

func_map = {
    "==": eq,
    "!=": ne,
    "< ": lt,
    "<=": le,
    "> ": gt,
    ">=": ge,
}

compare = [2.0, nan, -nan, inf, -inf]
values = [nan, -nan, inf, -inf]

for i in range(len(values)):
    for j in range(len(compare)):
        for op in func_map:
            print("%g %s %g -> %s" %
                    (values[i], op, compare[j], func_map[op](values[i], compare[j])))

        print("")