def LML(self,params=None):
        """
        evalutes the log marginal likelihood for the given hyperparameters

        hyperparams
        """
        if params is not None:
            self.setParams(params)

        KV = self._update_cache()
        alpha = KV['alpha']
        L = KV['L']

        lml_quad = 0.5 * (alpha*self.Y).sum()
        lml_det = self.t *SP.log(SP.diag(L)).sum()
        lml_const = 0.5*self.n*self.t*SP.log(2*SP.pi)
        LML = lml_quad + lml_det + lml_const
        return LML