load_package gentran;
gentranout gentst$
matrix m(3,3)$
m(1,1) := 18*cos(q3)*cos(q2)*m30*p**2 - 9*sin(q3)**2*p**2*m30 - sin(q3)**2*j30y + sin(q3)**2*j30z + p**2*m10 + 18*p**2*m30 + j10y + j30y$
m(2,1) := m(1,2) := 9*cos(q3)*cos(q2)*m30*p**2 - sin(q3)**2*j30y + sin(q3)**2*j30z - 9*sin(q3)**2*m30*p**2 + j30y + 9*m30*p**2$
m(3,1) := m(1,3) := -9*sin(q3)*sin(q2)*m30*p**2$
m(2,2) := -sin(q3)**2*j30y + sin(q3)**2*j30z - 9*sin(q3)**2* m30*p**2 + j30y + 9*m30*p**2$
m(3,2) := m(2,3) := 0$
m(3,3) := 9*m30*p**2 + j30x$
gentranlang!* := 'fortran$
fortlinelen!* := 72$
gentran literal "c", cr!*, "c", tab!*, "*** compute values for matrix m ***", cr!*, "c", cr!*$
for j:=1:3 do for k:=j:3 do gentran m(j,k) ::=: m(j,k)$
gentran literal "c", cr!*, "c", tab!*, "*** compute values for inverse matrix ***",cr!*, "c", cr!*$
share var$
for j:=1:3 do for k:=j:3 do if m(j,k) neq 0 then << var := tempvar nil; markvar var; m(j,k) := var; m(k,j) := var; gentran eval(var) := m(eval(j),eval(k)) >>$
m := m;
[t0 t1 t2]
[ ]
m := [t1 t3 0 ]
[ ]
[t2 0 t4]
matrix mxinv(3,3)$
mxinv := m**(-1)$
for j:=1:3 do for k:=j:3 do gentran mxinv(j,k) ::=: mxinv(j,k)$
gentran for j:=1:3 do for k:=j+1:3 do << m(k,j) := m(j,k); mxinv(k,j) := mxinv(j,k) >>$
gentranshut gentst;
Vygenerovaný program
c
c *** compute values for matrix m ***
c
m(1,1)=-(9.0*sin(real(q3))**2*p**2*m30)-(sin(real(q3))**2*j30y)+
. sin(real(q3))**2*j30z+18.0*cos(real(q3))*cos(real(q2))*p**2*m30+
. 18.0*p**2*m30+p**2*m10+j30y+j10y
m(1,2)=-(9.0*sin(real(q3))**2*p**2*m30)-(sin(real(q3))**2*j30y)+
. sin(real(q3))**2*j30z+9.0*cos(real(q3))*cos(real(q2))*p**2*m30+
. 9.0*p**2*m30+j30y
m(1,3)=-(9.0*sin(real(q3))*sin(real(q2))*p**2*m30)
m(2,2)=-(9.0*sin(real(q3))**2*p**2*m30)-(sin(real(q3))**2*j30y)+
. sin(real(q3))**2*j30z+9.0*p**2*m30+j30y
m(2,3)=0.0
m(3,3)=9.0*p**2*m30+j30x
c
c *** compute values for inverse matrix ***
c
t0=m(1,1)
t1=m(1,2)
t2=m(1,3)
t3=m(2,2)
t4=m(3,3)
mxinv(1,1)=-(t3*t4)/(t1**2*t4+t2**2*t3-(t0*t3*t4))
mxinv(1,2)=(t1*t4)/(t1**2*t4+t2**2*t3-(t0*t3*t4))
mxinv(1,3)=(t2*t3)/(t1**2*t4+t2**2*t3-(t0*t3*t4))
mxinv(2,2)=(t2**2-(t0*t4))/(t1**2*t4+t2**2*t3-(t0*t3*t4))
mxinv(2,3)=-(t1*t2)/(t1**2*t4+t2**2*t3-(t0*t3*t4))
mxinv(3,3)=(t1**2-(t0*t3))/(t1**2*t4+t2**2*t3-(t0*t3*t4))
do 25001 j=1,3
do 25002 k=j+1,3
m(k,j)=m(j,k)
mxinv(k,j)=mxinv(j,k)
25002 continue
25001 continue