diff --git a/pub/lib/fbase.cpp b/pub/lib/fbase.cpp index 042e4d1ed5a6493246d304a7085eca30f609940f..054964a7fe7b5ef1f17c80fc21ba3937b91fe170 100644 --- a/pub/lib/fbase.cpp +++ b/pub/lib/fbase.cpp @@ -507,6 +507,11 @@ void func_pow(double& r, double& dr, double a, double da, double b, double db) } } +double func_hypot(double a, double b) +{ + return hypot(a, b); +} + template <class A> int func_eq(A v, A a) { return v == a; @@ -621,6 +626,20 @@ double func_im_havneg(double v, double a, double g) * sin(g * aux_phi_havneg(v, a)); } +double func_voigt_hwhm(double s, double g) +{ + return voigt_hwhm(s, g); +} + +double func_re_wofz(double x, double y) +{ + return creal(w_of_z({x, y})); +} + +double func_im_wofz(double x, double y) +{ + return cimag(w_of_z({x, y})); +} //************************************************************************************************** //* Functions of three arguments @@ -706,21 +725,6 @@ double func_voigt(double v, double s, double g) return (s || g) ? voigt(v, s, g) : 0; } -double func_voigt_hwhm(double s, double g) -{ - return voigt_hwhm(s, g); -} - -double func_re_wofz(double x, double y) -{ - return creal(w_of_z({x, y})); -} - -double func_im_wofz(double x, double y) -{ - return cimag(w_of_z({x, y})); -} - double func_zorn(double v, double vavg, double s) { if (s <= 0 || s >= 1) @@ -1062,6 +1066,8 @@ void fbase_initialize() G->register_fct_d_dd(m, func_atan2); m = {"atan2d", 2, "(x,y): the polar angle of point x,y, in degrees"}; G->register_fct_d_dd(m, func_atan2d); + m = {"hypot", 2, "(x,y): sqrt(x^2+y^2)"}; + G->register_fct_d_dd(m, func_hypot); m = {"gauss", 2, "(x,s): the normalized Gaussian exp(-x^2/2/s^2)/sqrt(2 pi)/s"}; G->register_fct_d_dd(m, func_gauss);