#!/bin/lua function note(...) io.stderr:write(string.format(...)) end require 'utils' require 'mathlib' local n = 1024 local w1, w2 = 0, 4 local dw = (w2 - w1) / n local a = tonumber(arg[1]) local b = tonumber(arg[2]) local K = a^2 + b^2 local wmax2 = b^2 - a^2 local wc2x = wmax2 + 2*a*b local wc2y = wmax2 - 2*a*b function ev(w2) return K^2/((K+w2)^2-4*w2*b^2) end for w = w1, w2, dw do local g = ev(w^2) db = 10*log(g)/log(10) print(w, g) end note("wmax^2=%f, G(wmax)^2=%f, real=%f\n", wmax2, (K/(2*a*b))^2, ev(wmax2)) note("wc2x=%f, val=%f, wc2y=%f, val=%f\n", wc2x, ev(wc2x), wc2y, ev(wc2y)) if wc2x > 0 then note("wcx=%f\n", math.sqrt(wc2x)) end if wc2y > 0 then note("wcy=%f\n", math.sqrt(wc2y)) end printf("p\n")