> restart:
> G:=<<G11,G21>|<G12,G22>>;
> Y:=<Q(x[1]),Q(x[2])>;
> T:=G.Y;
> J:=array(1..2,1..2):
> for i from 1 to 2 do
>   for j from 1 to 2 do
>     J[i, j] := diff(T[i],x[j]);
>   od:
> od:
> print(J);
> H:=array(1..2,1..2,1..2):
> for i from 1 to 2 do
>   for j from 1 to 2 do
>     for k from 1 to 2 do
>       H[i, j, k] := diff(diff(T[i],x[j]),x[k]);
>     od:
>   od:
> od:
> print(H);

                               [G11    G12]
                          G := [          ]
                               [G21    G22]


                                 [Q(x[1])]
                            Y := [       ]
                                 [Q(x[2])]


                        [G11 Q(x[1]) + G12 Q(x[2])]
                   T := [                         ]
                        [G21 Q(x[1]) + G22 Q(x[2])]


             [    /  d          \        /  d          \]
             [G11 |----- Q(x[1])|    G12 |----- Q(x[2])|]
             [    \dx[1]        /        \dx[2]        /]
             [                                          ]
             [    /  d          \        /  d          \]
             [G21 |----- Q(x[1])|    G22 |----- Q(x[2])|]
             [    \dx[1]        /        \dx[2]        /]


  array(1 .. 2, 1 .. 2, 1 .. 2, [

                        /   2          \
                        |  d           |
        (1, 1, 1) = G11 |------ Q(x[1])|
                        |     2        |
                        \dx[1]         /

        (1, 1, 2) = 0

        (1, 2, 1) = 0

                        /   2          \
                        |  d           |
        (1, 2, 2) = G12 |------ Q(x[2])|
                        |     2        |
                        \dx[2]         /

                        /   2          \
                        |  d           |
        (2, 1, 1) = G21 |------ Q(x[1])|
                        |     2        |
                        \dx[1]         /

        (2, 1, 2) = 0

        (2, 2, 1) = 0

                        /   2          \
                        |  d           |
        (2, 2, 2) = G22 |------ Q(x[2])|
                        |     2        |
                        \dx[2]         /

        ])

> D2:=array(1..2,1..2,1..2):
> for i from 1 to 2 do
>   for j from 1 to 2 do
>     for k from 1 to 2 do
>       D2[i, j, k] := H[k, j, i];
>     od:
>   od:
> od:
> print(D2);

  array(1 .. 2, 1 .. 2, 1 .. 2, [

                        /   2          \
                        |  d           |
        (1, 1, 1) = G11 |------ Q(x[1])|
                        |     2        |
                        \dx[1]         /

                        /   2          \
                        |  d           |
        (1, 1, 2) = G21 |------ Q(x[1])|
                        |     2        |
                        \dx[1]         /

        (1, 2, 1) = 0

        (1, 2, 2) = 0

        (2, 1, 1) = 0

        (2, 1, 2) = 0

                        /   2          \
                        |  d           |
        (2, 2, 1) = G12 |------ Q(x[2])|
                        |     2        |
                        \dx[2]         /

                        /   2          \
                        |  d           |
        (2, 2, 2) = G22 |------ Q(x[2])|
                        |     2        |
                        \dx[2]         /

        ])

> 
> 
