Алгоритм Винограда. Перевод из псевдокода на язык высокого уровня (Java)

Это полный алгоритм Винограда для умножения матрицы G размером ахb на матрицу Н размером bхс. Результат записывается в матрицу R размером ахс.

 d = b/2
  // вычисление rowFactors для G
  for i = 1 to a do
    rowFactor[i] = G[i, 1] * G[i, 2]
    for j = 2 to d do
        rowFactor[i] = rowFactor[i] + G[i, 2j - 1] * G[i, 2j]
    end for j
end for i


// вычисление   columnFactors для H
for i = 1 to c do
    columnFactor[i] = H[1, i] * H[2, i]
    for j = 2 to d do
        columnFactor[i] = columnFactor[i] + H[2j - 1, i] * H[2j, i]
    end for j
end for i


// вычисление матрицы R
for i = 1 to a do
    for j = 1 to c do
        R[i, j] = -rowFactor[i] - columnFactor[j]
        for k = 1 to d do
            R[i, j]=R[i, j]+(G[i, 2k-1]+H[2k, j])*(G[i, 2k] + H[2k-1, j])
        end for k
    end for j
end for i


// прибавление членов в случае нечетной общей размерности
if (2 * (b/2)    /= b) then
    for i = 1 to a do
        for j = 1 to c do
            R[i, j] = R[i, j] + G[i, b] * H[b, j]
        end for j
    end for i
end if          

Мне нужно перевести этот псевдокод в код на Java, а я, честно признаться, даже не знаю, с чего начать. Про алгоритм информации очень мало, ещё меньше примеров программ. С псевдокодом раньше не сталкивалась. Может, кто-нибудь может помочь?


Ответы (0 шт):