Kronecker product: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
(Added BASIC256) |
||
Line 1,076: | Line 1,076: | ||
</pre> |
</pre> |
||
=={{header| |
=={{header|BASIC}}== |
||
==={{header|BASIC256}}=== |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="vbnet">arraybase 1 |
|||
dim a(2, 2) |
|||
a[1,1] = 1 : a[1,2] = 2 : a[2,1] = 3 : a[2,2] = 4 |
|||
dim b(2, 2) |
|||
b[1,1] = 0 : b[1,2] = 5 : b[2,1] = 6 : b[2,2] = 7 |
|||
call kronecker_product(a, b) |
|||
print |
|||
dim x(3, 3) |
|||
x[1,1] = 0 : x[1,2] = 1 : x[1,3] = 0 |
|||
x[2,1] = 1 : x[2,2] = 1 : x[2,3] = 1 |
|||
x[3,1] = 0 : x[3,2] = 1 : x[3,3] = 0 |
|||
dim y(3, 4) |
|||
y[1,1] = 1 : y[1,2] = 1 : y[1,3] = 1 : y[1,4] = 1 |
|||
y[2,1] = 1 : y[2,2] = 0 : y[2,3] = 0 : y[2,4] = 1 |
|||
y[3,1] = 1 : y[3,2] = 1 : y[3,3] = 1 : y[3,4] = 1 |
|||
call kronecker_product(x, y) |
|||
end |
|||
subroutine kronecker_product(a, b) |
|||
ua1 = a[?][] |
|||
ua2 = a[][?] |
|||
ub1 = b[?][] |
|||
ub2 = b[][?] |
|||
for i = 1 to ua1 |
|||
for k = 1 to ub1 |
|||
print "["; |
|||
for j = 1 to ua2 |
|||
for l = 1 to ub2 |
|||
print rjust(a[i, j] * b[k, l], 2); |
|||
if j = ua1 and l = ub2 then |
|||
print "]" |
|||
else |
|||
print " "; |
|||
endif |
|||
next |
|||
next |
|||
next |
|||
next |
|||
end subroutine</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Same as FreeBASIC entry.</pre> |
|||
=={{header|BQN}}== |
|||
<syntaxhighlight lang="bqn">KProd ← ∾·<⎉2 ×⌜</syntaxhighlight> |
<syntaxhighlight lang="bqn">KProd ← ∾·<⎉2 ×⌜</syntaxhighlight> |
||