X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=rhawk;h=88112734d6ffbd5d69fa873a6c58766870c68098;hb=cf7a03157ed581ada350fe636c00804c45ef74cc;hp=f1478f67d74f64c6db025f533e25bdff303fdc06;hpb=8bb3be25a504498e533e4da919e1023646ca7828;p=~andy%2Frhawk diff --git a/rhawk b/rhawk index f1478f6..8811273 100755 --- a/rhawk +++ b/rhawk @@ -429,6 +429,24 @@ DST != "#rhnoise" && DST != NICK && say("#rhnoise", "(" DST ") " FROM ": " MSG); } +# Fun operators +function bang(a, b) { + if (a=="nan") return "nan"; + if (b=="nan") return "nan"; + if (a==b) return "nan"; + if (a==0) return "+0"; + if (b==0) return "-0"; + return 1/(1/a - 1/b); +} + +/^ *[+-]?[0-9]*\.?[0-9]+( *\? *[+-]?[0-9]*\.?[0-9]+)+ *$/ { + gsub(/?/, " "); + _num = $1+0; + for (_i=2; _i<=NF; _i++) + _num = bang(_num, $_i+0); + reply(_num); +} + # Misc { fflush("") }