invocable "+", "-", "*", "/", "%", "iand", "ior", "ixor", "<", "=" , "^" invocable "ishift" procedure main () if not(&features == "large integers") then stop("large integers not supported") big := 111111111111111111111 med1 := "2222222222" med2 := "3333333333" small := 4 every optest ("+" | "-" | "*" | "/" | "%" |"iand"|"ior"|"ixor"|"<"|"=", big | -big | small | -small, big | -big | small | -small) every optest ("+" | "-" | "*" | "/" | "%" |"iand"|"ior"|"ixor"|"<"|"=", big | med1 | -med1, med1 | med2 | -med2) every optest ("^", big | -big | small | -small, 2 | 5) every optest ("^", 2 | 3, 10 | 30 ) every optest ("ishift", big |-big | med1 | -med1 | small, 1 | 8 | -1 | -39) &trace := -1 every i := 10 | 30 | 70 | 100 do { write(2 ^ i) write(2 ^ i || ":" || image(2 ^ i)) foo(2 ^ i) } end procedure optest (op, a, b) write (a, " ", op, " ", b, " = ", op(a,b)|"none") end procedure foo(x) end