def simulate_distribution()

in svinfer/linear_model/linear_regression.py [0:0]


    def simulate_distribution(self):
        index = np.triu_indices(self.k)
        t = np.concatenate((self.xtx[index], self.xty), axis=0)

        d1, d2 = self.k * (self.k + 1) // 2, self.k
        v_t = np.zeros((d1 + d2, d1 + d2))
        for i1 in range(d1 + d2):
            for i2 in range(i1 + 1):
                if i1 < d1 and i2 < d1:
                    k, j = index[0][i1], index[1][i1]
                    l, m = index[0][i2], index[1][i2]
                    v_t[i1, i2] = self.estimate_vcov_xx_xx(k, l, j, m)
                elif i2 < d1 <= i1:
                    k = i1 - d1
                    j, m = index[0][i2], index[1][i2]
                    v_t[i1, i2] = self.estimate_vcov_xy_xx(k, j, m)
                else:
                    k = i1 - d1
                    j = i2 - d1
                    v_t[i1, i2] = self.estimate_vcov_xy_xy(k, j)
                v_t[i2, i1] = v_t[i1, i2]

        return t, v_t