Ejemplo n.º 1
0
def strassen_matmult(N, alltogether=False):
    n = 2**N
    transformA = np.array(solver.transform_array(list(range(n * n)))).reshape(
        (n, n))
    transformB = np.array(solver.transform_array(list(range(n * n)))).reshape(
        (n, n))
    strassen_helper(transformA, transformB, alltogether=alltogether)
Ejemplo n.º 2
0
def matmult(n, alltogether=False):
    transformA = np.array(solver.transform_array(list(range(n * n)))).reshape(
        (n, n))
    transformB = np.array(solver.transform_array(list(range(n * n)))).reshape(
        (n, n))

    result = []
    for i in range(n):
        row = []
        for j in range(n):
            a_row = transformA[i, :]
            b_row = transformB[:, j]
            if alltogether:
                vals = np.multiply(a_row, b_row)
                row.append(solver.genop(vals, np.sum))
            else:
                row.append(np.dot(a_row, b_row))
        result.append(row)
Ejemplo n.º 3
0
import sys
import numpy as np
sys.path.append('..')
import core.solver as solver
from fft import fft_example
from dct import dct_example
from matmult import matmult, strassen_matmult

# dct_example(3)
# solver.render("dct.png")

# matmult(2)
# solver.render("matmult.png")

# strassen_matmult(1)
# solver.render("strassen.png")

a = np.array(solver.transform_array([1, 2]))
b = np.array(solver.transform_array([1, 2]))
np.dot(a, b)
solver.render("dot.png")
Ejemplo n.º 4
0
def convolve(n):
    transformA = np.array(solver.transform_array(list(range(n))))
    transformB = np.array(solver.transform_array(list(range(n))))
    np.convolve(transformA, transformB)
Ejemplo n.º 5
0
def conv_test(k, nout, n, nin, s):
    a = np.array(solver.transform_array([1 for i in range(nin * nout * k**2)
                                         ])).reshape(nout, nin, k, k)
    b = np.array(solver.transform_array([1 for i in range(nin * n**2)
                                         ])).reshape(nin, n, n)
    convolution(image=b, filt=a, s=s)
Ejemplo n.º 6
0
def dct_example(t):
    n = 2**t
    arr = np.array(solver.transform_array(range(n)))
    transform(arr)
Ejemplo n.º 7
0
def fft_example(t):
    transformA = np.array(solver.transform_array(list(range(2**t))))
    fft(transformA)