def prior(self, m, H):
        """
    Set prior
        Set prior values
    Inputs :    
        m : 
            mean of the prior
        H : 
            precision matrix of the prior
    Hiddens :
        ln_H_ : log(det(H))/2
            calculate this once to use everytime log prior is called
        Hm    : < H, m >
            calculate this once to use everytime proposal is called
        """
        if self._prior == True:
            raise Warning("prior information is already set")
        else: 
            self._prior = True

        # mean
        self._m = np.reshape(np.array(m), (-1,1))
        try : 
            assert np.size(self._m) == self._n
        except : 
            raise TypeError("mean has to be an array of size n")

        # precision
        self._H     = np.array(H)
        try : 
            assert np.shape(self._H) == (self._n, self._n)
        except : 
            raise TypeError("precision has to be a matrix of shape n by n")

        # precalculations
        self._ln_H_ = np.log(la.det(self._H))/2.
        self._Hm    = np.dot(self._H, self._m)
def prior ( self , m , H ) : if self . _prior == True : raise Warning ( "prior information is already set" ) else : self . _prior = True self . _m = np . reshape ( np . array ( m ) , ( - 1 , 1 ) ) try : assert np . size ( self . _m ) == self . _n except : raise TypeError ( "mean has to be an array of size n" ) self . _H = np . array ( H ) try : assert np . shape ( self . _H ) == ( self . _n , self . _n ) except : raise TypeError ( "precision has to be a matrix of shape n by n" ) self . _ln_H_ = np . log ( la . det ( self . _H ) ) / 2. self . _Hm = np . dot ( self . _H , self . _m )
Set prior
        Set prior values
    Inputs :    
        m : 
            mean of the prior
        H : 
            precision matrix of the prior
    Hiddens :
        ln_H_ : log(det(H))/2
            calculate this once to use everytime log prior is called
        Hm    : < H, m >
            calculate this once to use everytime proposal is called