def cond_gaussian(self, dims, v):
        """
        Returns mean  and variance of the conditional probability
        defined by a set of dimension and at a given vector.

        @param dims : set of dimension to which respect conditional
            probability is taken
        @param v : vector defining the position where the conditional
            probability is taken. v shape is defined by the size
            of the set of dims.
        """
        (d, c, b, a) = numpy.split_matrix(self.sigma, dims)
        (mu2, mu1) = numpy.split_vector(self.mu, dims)
        d_inv = numpy.linalg.inv(d)
        mu = mu1 + numpy.dot(numpy.dot(b, d_inv), v - mu2)
        sigma = a - numpy.dot(b, numpy.dot(d_inv, c))
        return Gaussian(mu, sigma)
Returns mean  and variance of the conditional probability
        defined by a set of dimension and at a given vector.

        @param dims : set of dimension to which respect conditional
            probability is taken
        @param v : vector defining the position where the conditional
            probability is taken. v shape is defined by the size
            of the set of dims.