X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/dsp_files/matrix.dsp diff --git a/dsp_files/matrix.dsp b/dsp_files/matrix.dsp deleted file mode 100644 index f6c4475..0000000 --- a/dsp_files/matrix.dsp +++ /dev/null @@ -1,37 +0,0 @@ -//vectorize = +; -//serialize = _ , 1 : +; -//concat = * ; -//nth = / ; - - -concat1 = case { - (1) => _, 1 : vectorize ; - (m) => concat1(m - 1), ( _, 1 : vectorize) : #; -}; - -concat2 = case { - (1, m) => concat1(m), 1 : vectorize; - (n, m) => concat2(n - 1, m), (concat1(m), 1 : vectorize) : #; -}; - -make_input_matrix(n, m) = _, m : vectorize : _, n : vectorize ; - -make_output_matrix(n, m) = concat2(n, m); - -accumulate_vector(k) = _ <: sum(i, k, ( _, i : [])); - -get_column(k, j) = _ <: par(p, k, ( _, p : [] : _, j : [])) : concat1(k); - -get_line(i) = _, i : []; - -make_line(i, k, m) = par(j, m, ( get_line(i), get_column(k, j) : * : accumulate_vector(k))); - -multiply(n, k, m) = par(i, n, make_line(i, k, m)); - -matrix_mul(n, k, m) = make_input_matrix(n, k), make_input_matrix(k, m) <: multiply(n, k, m) : make_output_matrix(n, m); - -matrix_output(n, m) = _ <: par(i, n, ( _, i : [])); - -matrix_mul_square(n) = matrix_mul(n, n, n) : matrix_output(n, n); - -process = matrix_mul_square(10);