Kronecker product: Difference between revisions

Content added Content deleted
m (→‎{{header|C}}: Remove vanity tags)
Line 2,123: Line 2,123:
(0 0 0 0 1 0 0 1 0 0 0 0)
(0 0 0 0 1 0 0 1 0 0 0 0)
(0 0 0 0 1 1 1 1 0 0 0 0)</pre>
(0 0 0 0 1 1 1 1 0 0 0 0)</pre>

=={{header|Phix}}==
<lang Phix>function kronecker(sequence a, b)
integer ar = length(a),
ac = length(a[1]),
br = length(b),
bc = length(b[1])
sequence res = repeat(repeat(0,ac*bc),ar*br)
for ia=1 to ar do
integer i0 = (ia-1)*br
for ja=1 to ac do
integer j0 = (ja-1)*bc
for ib=1 to br do
integer i = i0+ib
for jb=1 to bc do
integer j = j0+jb
res[i,j] = a[ia,ja]*b[ib,jb]
end for
end for
end for
end for
return res
end function
constant a = {{1,2},
{3,4}},
b = {{0,5},
{6,7}},
c = {{0,1,0},
{1,1,1},
{0,1,0}},
d = {{1,1,1,1},
{1,0,0,1},
{1,1,1,1}}

pp(kronecker(a,b),{pp_Nest,1,pp_IntFmt,"%2d"})
pp(kronecker(c,d),{pp_Nest,1})</lang>
{{out}}
<pre>
{{ 0, 5, 0,10},
{ 6, 7,12,14},
{ 0,15, 0,20},
{18,21,24,28}}
{{0,0,0,0,1,1,1,1,0,0,0,0},
{0,0,0,0,1,0,0,1,0,0,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,1,1,0,0,1,1,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,1,1,1,1,0,0,0,0},
{0,0,0,0,1,0,0,1,0,0,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0}}
</pre>


=={{header|PureBasic}}==
=={{header|PureBasic}}==