code: def eval(self, x, y, z):
          
          ro = np.sqrt(x**2 + y**2)
          zs, xs = ro.shape
          v = self.eval_xz(ro.ravel(), z.ravel())
          return v.reshape(zs, xs)
docs: Evaluate the function in (x, y, z).
          The function is rotationally symmetric around z.