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);