Библиотека алгоритмов

Материал из Алговики
Перейти к навигации Перейти к поиску

1 УМНОЖЕНИЕ МАТРИЦЫ НА ВЕКТОР

XY projection
YZ projection
XZ projection
1.1 Ссылка на описание в энциклопедии AlgoWiki:

Умножение плотной неособенной матрицы на вектор

1.2 Реализация алгоритма на Си:

for(int i = 0; i < size; i++)

for(int j = 0; j < size ; j++)
vec_out[i] += matrix[i][j] * vec _in[j];
1.3 Описание алгоритма на Algolang:

<algo>

<params>
<param name="size" type="int" value="5"></param>
</params>

<block dims="2">
<arg name="i" val="0..size-1"></arg>
<arg name="j" val="1..size"></arg>
<vertex condition="" type="2">
<in src="i,j-1"></in>
</vertex>
</block>

</algo>
На рисунках представлен результат для матрицы размером 5*5 и вектора длины 5



















2 ПЕРЕМНОЖЕНИЕ МАТРИЦ

XY projection
YZ projection
XZ projection
2.1 Ссылка на описание в энциклопедии AlgoWiki:

Перемножение плотных неособенных матриц

2.2 Реализация алгоритма на Си:

for ( int i=0; i<size_1_str;i++)

for (int j=0; j<size_2_col;j++)
{
matrix_out[i][j]=0;
for(int k=0; k<size_common;k++)
matrix_out[i][j]+=matrix_1[i][k]*matrix_2[k][j];
}
2.3 Описание алгоритма на Algolang:

<algo>

<params>
<param name="m" type="int" value="3"></param>
<param name="n" type="int" value="3"></param>
<param name="l" type="int" value="3"></param>
</params>

<block id="1" dims="3">
<arg name="i" val="1..m"></arg>
<arg name="j" val="1..l"></arg>
<arg name="k" val="1..n"></arg>
<vertex condition="k<>1" type="3">
<in src="i,j,k-1"></in>
</vertex>
</block>

</algo>