def test_multMatVect(): A1 = lmatrix("A1") s1 = ivector("s1") m1 = iscalar("m1") A2 = lmatrix("A2") s2 = ivector("s2") m2 = iscalar("m2") g0 = rng_mrg.DotModulo()(A1, s1, m1, A2, s2, m2) f0 = function([A1, s1, m1, A2, s2, m2], g0) i32max = np.iinfo(np.int32).max rng = np.random.default_rng(utt.fetch_seed()) A1 = rng.integers(0, i32max, (3, 3)).astype("int64") s1 = rng.integers(0, i32max, 3).astype("int32") m1 = np.asarray(rng.integers(i32max), dtype="int32") A2 = rng.integers(0, i32max, (3, 3)).astype("int64") s2 = rng.integers(0, i32max, 3).astype("int32") m2 = np.asarray(rng.integers(i32max), dtype="int32") f0.input_storage[0].storage[0] = A1 f0.input_storage[1].storage[0] = s1 f0.input_storage[2].storage[0] = m1 f0.input_storage[3].storage[0] = A2 f0.input_storage[4].storage[0] = s2 f0.input_storage[5].storage[0] = m2 r_a1 = rng_mrg.matVecModM(A1, s1, m1) r_a2 = rng_mrg.matVecModM(A2, s2, m2) f0.vm() r_b = f0.output_storage[0].value assert np.allclose(r_a1, r_b[:3]) assert np.allclose(r_a2, r_b[3:])
def test_multMatVect(): A1 = tensor.lmatrix("A1") s1 = tensor.ivector("s1") m1 = tensor.iscalar("m1") A2 = tensor.lmatrix("A2") s2 = tensor.ivector("s2") m2 = tensor.iscalar("m2") g0 = rng_mrg.DotModulo()(A1, s1, m1, A2, s2, m2) f0 = aesara.function([A1, s1, m1, A2, s2, m2], g0) i32max = np.iinfo(np.int32).max A1 = np.random.randint(0, i32max, (3, 3)).astype("int64") s1 = np.random.randint(0, i32max, 3).astype("int32") m1 = np.asarray(np.random.randint(i32max), dtype="int32") A2 = np.random.randint(0, i32max, (3, 3)).astype("int64") s2 = np.random.randint(0, i32max, 3).astype("int32") m2 = np.asarray(np.random.randint(i32max), dtype="int32") f0.input_storage[0].storage[0] = A1 f0.input_storage[1].storage[0] = s1 f0.input_storage[2].storage[0] = m1 f0.input_storage[3].storage[0] = A2 f0.input_storage[4].storage[0] = s2 f0.input_storage[5].storage[0] = m2 r_a1 = rng_mrg.matVecModM(A1, s1, m1) r_a2 = rng_mrg.matVecModM(A2, s2, m2) f0.fn() r_b = f0.output_storage[0].value assert np.allclose(r_a1, r_b[:3]) assert np.allclose(r_a2, r_b[3:])