Ejemplo n.º 1
0
def raw_sim_one_disc(start, steps, cur_step, dy_data):
    result = []

    prev_affine_val = np.zeros(len(start))
    for idx in range(cur_step, cur_step + steps, 1):
        a_exp = mat_pow(dy_data.dense_a_matrix, idx - 1)
        new_affine_val = np.array(
            np.matmul(a_exp, dy_data.dense_b_vector).flatten().tolist()
            [0]) + np.array(prev_affine_val)
        prev_affine_val = new_affine_val
        # abc = np.matmul(mat_pow(dy_data.dense_a_matrix, idx), np.array(start)).tolist()[0]
        new_state = np.matmul(mat_pow(dy_data.dense_a_matrix, idx),
                              np.array(start)).tolist()[0] + prev_affine_val
        result.append(new_state)
    return result
Ejemplo n.º 2
0
def try_conjecture_1(n, m, cap=10000):
    for _ in xrange(cap):
        M_m = get_H(n)
        M_p = get_H(m)
        C = get_M(n, m)
        Cp = np.transpose(C)
        terms = []
        for i in xrange(5):
            M1 = mat_pow(M_m, 4 - i)
            M2 = mat_pow(M_p, i)
            MM = np.dot(M1, C)
            MM2 = np.dot(M2, Cp)
            MM3 = np.dot(MM, MM2)
            terms.append(np.trace(MM3) * binom(4, i))
        ans = sum(terms)
        if (ans < -eps):
            print "FAIL"
            print ans
            exit(0)
Ejemplo n.º 3
0
 def simulate_origin_disc(self, start, steps, cur_step):
     Timers.tic("simulation")
     result = []
     prev_val = start
     for idx in range(cur_step, cur_step + steps, 1):
         a_exp = mat_pow(self.dy_data.dense_a_matrix, idx - 1)
         new_val = np.array(
             np.matmul(a_exp, self.dy_data.dense_b_vector).flatten().tolist(
             )[0]) + np.array(prev_val)
         prev_val = new_val
         result.append(new_val)
     Timers.toc("simulation")
     return result