```\$ontext
Dear GAMS Users,

Could you please someone help me to do the Kronocker Product in GAMS?
I am mainly suffering in writing codes in GAMS for the Kronecker
product.

I would really appreciate your kind cooperation.

Thanks,

Sincerely yours,

Shyam Basnet
Uppsala, Sweden
\$offtext

*
*   --- Kronecker product of two matrices A and B
*
*       A is of dimensions (m x n)
*       B is of dimensions (p x q)

set      m /m1*m3/
n /n1*n2/
p /p1*p4/
q /q1*q3/;

table A(m,n)  "Matrix defined as parameter"
n1          n2
m1          4            2
m2          1            3
m3          6            5;

table B(p,q)  "Matrix defined as parameter"
q1          q2          q3
p1          7           6           9
p2          8           7           7
p3          4           1           6
p4          5           5           2;

*       Compute the inverse:

set      i(m,p),  j(n,q);
i(m,p) = yes;
j(n,q) = yes;

parameter       Kronecker(m,p,n,q);

Kronecker(i(m,p),j(n,q)) = A(m,n)*B(p,q);

option Kronecker:0:2:2;
display Kronecker;

\$exit

----     56 PARAMETER Kronecker

n1.q1       n1.q2       n1.q3       n2.q1       n2.q2       n2.q3

m1.p1          28          24          36          14          12          18
m1.p2          32          28          28          16          14          14
m1.p3          16           4          24           8           2          12
m1.p4          20          20           8          10          10           4
m2.p1           7           6           9          21          18          27
m2.p2           8           7           7          24          21          21
m2.p3           4           1           6          12           3          18
m2.p4           5           5           2          15          15           6
m3.p1          42          36          54          35          30          45
m3.p2          48          42          42          40          35          35
m3.p3          24           6          36          20           5          30
m3.p4          30          30          12          25          25          10;

Compare with alterative approach:

----     85 PARAMETER Kroenecker

j1      j2      j3      j4      j5      j6

i1       28      24      36      14      12      18
i2       32      28      28      16      14      14
i3       16       4      24       8       2      12
i4       20      20       8      10      10       4
i5        7       6       9      21      18      27
i6        8       7       7      24      21      21
i7        4       1       6      12       3      18
i8        5       5       2      15      15       6
i9       42      36      54      35      30      45
i10      48      42      42      40      35      35
i11      24       6      36      20       5      30
i12      30      30      12      25      25      10

```