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