def __init__(self, input_dim, variance, lengthscale, period, n_freq, lower, upper, active_dims, name):
assert input_dim==<NUM_LIT:1>, "<STR_LIT>"<EOL>super(Periodic, self).__init__(input_dim, active_dims, name)<EOL>self.input_dim = input_dim<EOL>self.lower,self.upper = lower, upper<EOL>self.n_freq = n_freq<EOL>self.n_basis = <NUM_LIT:2>*n_freq<EOL>self.variance = Param('<STR_LIT>', np.float64(variance), Logexp())<EOL>self.lengthscale = Param('<STR_LIT>', np.float64(lengthscale), Logexp())<EOL>self.period = Param('<STR_LIT>', np.float64(period), Logexp())<EOL>self.link_parameters(self.variance, self.lengthscale, self.period)<EOL>
:type input_dim: int
:param variance: the variance of the Matern kernel
:type variance: float
:param lengthscale: the lengthscale of the Matern kernel
:type lengthscale: np.ndarray of size (input_dim,)
:param period: the period
:type period: float
:param n_freq: the number of frequencies considered for the periodic subspace
:type n_freq: int
:rtype: kernel object