code: def _call(self, x, out=None):
          
          if out is None:
              out = self.range.zero()
          else:
              out.set_zero()
  
          x_arr = x.asarray()
          out_arr = out.asarray()
          tmp = np.empty(out.shape, out.dtype, order=out.space.default_order)
  
          ndim = self.domain.ndim
          dx = self.domain.cell_sides
  
          with writable_array(out) as out_arr:
              for axis in range(ndim):
                  # TODO: this can be optimized
                  finite_diff(x_arr, axis=axis, dx=dx[axis] ** 2,
                              method='forward',
                              pad_mode=self.pad_mode,
                              pad_const=self.pad_const, out=tmp)
  
                  out_arr += tmp
  
                  finite_diff(x_arr, axis=axis, dx=dx[axis] ** 2,
                              method='backward',
                              pad_mode=self.pad_mode,
                              pad_const=self.pad_const, out=tmp)
  
                  out_arr -= tmp
  
          return out
docs: Calculate the spatial Laplacian of ``x``.