def g_(self, X):
        """
        computes h()

        :param X:
        :return:
        """
        if self._interpol:
            if not hasattr(self, '_g_interp'):

                if self._lookup:
                    x = self._x_lookup
                    g_x = self._g_lookup
                else:
                    x = np.linspace(0, self._max_interp_X, self._num_interp_X)
                    g_x = self._g(x)
                self._g_interp = interp.interp1d(x, g_x, kind='linear', axis=-1, copy=False, bounds_error=False,
                                                 fill_value=0, assume_sorted=True)
            return self._g_interp(X)
        else:
            return self._g(X)