// gives two decimal places
function twod(x) {z=Math.round(100*x)/100; return z}

// function to find a root of.  This function is, approximately speaking, supply - demand in the intermediate market (raised to a convenient power)
function f(ty) {temp1=0.0;temp2=0.0;
for (ig=1; ig<=n; ig=ig+1) {temp1=temp1+(Math.pow(psi(ty,stemp[ig],rtemp[ig]),beta))*k[ig];temp2=temp2+(Math.pow(chi(ty,stemp[ig],rtemp[ig]),eta))*g[ig]};
vf= Math.pow(temp1,1+a*eta)-Math.pow(temp2,1+a*beta);return vf}

// Define psi, chi functions 
// psi and chi are not the same functions from the appendix, have 1-t-psi, t-xi instead
//This prevents a literal zero, which gives conniptions when raised to a power, but doesn't affect actual zeros based on market shares.
function psi(th,st,rt) {
vpsi=Math.max(0.00000001,1-th-(((1-th)/beta)*((th*(st-rt)/eta)+(a*st*(1-rt)))/((a*(1-st)*(1-rt))+((1-th)*(1-rt)/beta)+(th*(1-st)/eta)))); return vpsi}

function chi(th,st,rt) {
vchi=Math.max(0.00000001,th-((th/eta)*(((1-th)*(rt-st)/beta)+(a*rt*(1-st)))/((a*(1-st)*(1-rt))+((1-th)*(1-rt)/beta)+(th*(1-st)/eta)))); return vchi}

// this function reads the inputs
function cal() {
alpha=document.mhi.alpha.value;alpha=alpha*1;
beta=document.mhi.beta.value;beta=beta*1;
eta=document.mhi.eta.value;eta=eta*1;
n=document.mhi.n.value;n=n*1;
k[1]=document.mhi.k1.value; g[1]=document.mhi.g1.value;k[1]=k[1]*1;g[1]=g[1]*1;
k[2]=document.mhi.k2.value; g[2]=document.mhi.g2.value;k[2]=k[2]*1;g[2]=g[2]*1;
k[3]=document.mhi.k3.value; g[3]=document.mhi.g3.value;k[3]=k[3]*1;g[3]=g[3]*1;
k[4]=document.mhi.k4.value; g[4]=document.mhi.g4.value;k[4]=k[4]*1;g[4]=g[4]*1;
k[5]=document.mhi.k5.value; g[5]=document.mhi.g5.value;k[5]=k[5]*1;g[5]=g[5]*1;
k[6]=document.mhi.k6.value; g[6]=document.mhi.g6.value;k[6]=k[6]*1;g[6]=g[6]*1;
k[7]=document.mhi.k7.value; g[7]=document.mhi.g7.value;k[7]=k[7]*1;g[7]=g[7]*1;
k[8]=document.mhi.k8.value; g[8]=document.mhi.g8.value;k[8]=k[8]*1;g[8]=g[8]*1;
k[9]=document.mhi.k9.value; g[9]=document.mhi.g9.value;k[9]=k[9]*1;g[9]=g[9]*1;
k[10]=document.mhi.k10.value; g[10]=document.mhi.g10.value;k[10]=k[10]*1;g[10]=g[10]*1;
k[11]=document.mhi.k11.value; g[11]=document.mhi.g11.value;k[11]=k[11]*1;g[11]=g[11]*1;
k[12]=document.mhi.k12.value; g[12]=document.mhi.g12.value;k[12]=k[12]*1;g[12]=g[12]*1;
k[13]=document.mhi.k13.value; g[13]=document.mhi.g13.value;k[13]=k[13]*1;g[13]=g[13]*1;
k[14]=document.mhi.k14.value; g[14]=document.mhi.g14.value;k[14]=k[14]*1;g[14]=g[14]*1;
k[15]=document.mhi.k15.value; g[15]=document.mhi.g15.value;k[15]=k[15]*1;g[15]=g[15]*1;
k[16]=document.mhi.k16.value; g[16]=document.mhi.g16.value;k[16]=k[16]*1;g[16]=g[16]*1;
k[17]=document.mhi.k17.value; g[17]=document.mhi.g17.value;k[17]=k[17]*1;g[17]=g[17]*1;
k[18]=document.mhi.k18.value; g[18]=document.mhi.g18.value;k[18]=k[18]*1;g[18]=g[18]*1;
k[19]=document.mhi.k19.value; g[19]=document.mhi.g19.value;k[19]=k[19]*1;g[19]=g[19]*1;
k[20]=document.mhi.k20.value; g[20]=document.mhi.g20.value;k[20]=k[20]*1;g[20]=g[20]*1;
k[21]=document.mhi.k21.value; g[21]=document.mhi.g21.value;k[21]=k[21]*1;g[21]=g[21]*1;
k[22]=document.mhi.k22.value; g[22]=document.mhi.g22.value;k[22]=k[22]*1;g[22]=g[22]*1;
k[23]=document.mhi.k23.value; g[23]=document.mhi.g23.value;k[23]=k[23]*1;g[23]=g[23]*1;
k[24]=document.mhi.k24.value; g[24]=document.mhi.g24.value;k[24]=k[24]*1;g[24]=g[24]*1;
k[25]=document.mhi.k25.value; g[25]=document.mhi.g25.value;k[25]=k[25]*1;g[25]=g[25]*1;
k[26]=document.mhi.k26.value; g[26]=document.mhi.g26.value;k[26]=k[26]*1;g[26]=g[26]*1;
k[27]=document.mhi.k27.value; g[27]=document.mhi.g27.value;k[27]=k[27]*1;g[27]=g[27]*1;
k[28]=document.mhi.k28.value; g[28]=document.mhi.g28.value;k[28]=k[28]*1;g[28]=g[28]*1;
k[29]=document.mhi.k29.value; g[29]=document.mhi.g29.value;k[29]=k[29]*1;g[29]=g[29]*1;
k[30]=document.mhi.k30.value; g[30]=document.mhi.g30.value;k[30]=k[30]*1;g[30]=g[30]*1;
k[31]=document.mhi.k31.value; g[31]=document.mhi.g31.value;k[31]=k[31]*1;g[31]=g[31]*1;
k[32]=document.mhi.k32.value; g[32]=document.mhi.g32.value;k[32]=k[32]*1;g[32]=g[32]*1;
k[33]=document.mhi.k33.value; g[33]=document.mhi.g33.value;k[33]=k[33]*1;g[33]=g[33]*1;
k[34]=document.mhi.k34.value; g[34]=document.mhi.g34.value;k[34]=k[34]*1;g[34]=g[34]*1;
k[35]=document.mhi.k35.value; g[35]=document.mhi.g35.value;k[35]=k[35]*1;g[35]=g[35]*1;
k[36]=document.mhi.k36.value; g[36]=document.mhi.g36.value;k[36]=k[36]*1;g[36]=g[36]*1;
k[37]=document.mhi.k37.value; g[37]=document.mhi.g37.value;k[37]=k[37]*1;g[37]=g[37]*1;
k[38]=document.mhi.k38.value; g[38]=document.mhi.g38.value;k[38]=k[38]*1;g[38]=g[38]*1;
k[39]=document.mhi.k39.value; g[39]=document.mhi.g39.value;k[39]=k[39]*1;g[39]=g[39]*1;
k[40]=document.mhi.k40.value; g[40]=document.mhi.g40.value;k[40]=k[40]*1;g[40]=g[40]*1;
k[41]=document.mhi.k41.value; g[41]=document.mhi.g41.value;k[41]=k[41]*1;g[41]=g[41]*1;
k[42]=document.mhi.k42.value; g[42]=document.mhi.g42.value;k[42]=k[42]*1;g[42]=g[42]*1;
k[43]=document.mhi.k43.value; g[43]=document.mhi.g43.value;k[43]=k[43]*1;g[43]=g[43]*1;
k[44]=document.mhi.k44.value; g[44]=document.mhi.g44.value;k[44]=k[44]*1;g[44]=g[44]*1;
k[45]=document.mhi.k45.value; g[45]=document.mhi.g45.value;k[45]=k[45]*1;g[45]=g[45]*1;
k[46]=document.mhi.k46.value; g[46]=document.mhi.g46.value;k[46]=k[46]*1;g[46]=g[46]*1;
k[47]=document.mhi.k47.value; g[47]=document.mhi.g47.value;k[47]=k[47]*1;g[47]=g[47]*1;
k[48]=document.mhi.k48.value; g[48]=document.mhi.g48.value;k[48]=k[48]*1;g[48]=g[48]*1;
k[49]=document.mhi.k49.value; g[49]=document.mhi.g49.value;k[49]=k[49]*1;g[49]=g[49]*1;
k[50]=document.mhi.k50.value; g[50]=document.mhi.g50.value;k[50]=k[50]*1;g[50]=g[50]*1;
}

// this function rewrites the input variables and is called if one of the inputs in inadmissible
function displayfix() {
document.mhi.alpha.value=alpha;
document.mhi.beta.value=beta;
document.mhi.eta.value=eta;
document.mhi.n.value=n;
document.mhi.k1.value=k[1]; document.mhi.g1.value=g[1];
document.mhi.k2.value=k[2]; document.mhi.g2.value=g[2];
document.mhi.k3.value=k[3]; document.mhi.g3.value=g[3];
document.mhi.k4.value=k[4]; document.mhi.g4.value=g[4];
document.mhi.k5.value=k[5]; document.mhi.g5.value=g[5];
document.mhi.k6.value=k[6]; document.mhi.g6.value=g[6];
document.mhi.k7.value=k[7]; document.mhi.g7.value=g[7];
document.mhi.k8.value=k[8]; document.mhi.g8.value=g[8];
document.mhi.k9.value=k[9]; document.mhi.g9.value=g[9];
document.mhi.k10.value=k[10]; document.mhi.g10.value=g[10];
document.mhi.k11.value=k[11]; document.mhi.g11.value=g[11];
document.mhi.k12.value=k[12]; document.mhi.g12.value=g[12];
document.mhi.k13.value=k[13]; document.mhi.g13.value=g[13];
document.mhi.k14.value=k[14]; document.mhi.g14.value=g[14];
document.mhi.k15.value=k[15]; document.mhi.g15.value=g[15];
document.mhi.k16.value=k[16]; document.mhi.g16.value=g[16];
document.mhi.k17.value=k[17]; document.mhi.g17.value=g[17];
document.mhi.k18.value=k[18]; document.mhi.g18.value=g[18];
document.mhi.k19.value=k[19]; document.mhi.g19.value=g[19];
document.mhi.k20.value=k[20]; document.mhi.g20.value=g[20];
document.mhi.k21.value=k[21]; document.mhi.g21.value=g[21];
document.mhi.k22.value=k[22]; document.mhi.g22.value=g[22];
document.mhi.k23.value=k[23]; document.mhi.g23.value=g[23];
document.mhi.k24.value=k[24]; document.mhi.g24.value=g[24];
document.mhi.k25.value=k[25]; document.mhi.g25.value=g[25];
document.mhi.k26.value=k[26]; document.mhi.g26.value=g[26];
document.mhi.k27.value=k[27]; document.mhi.g27.value=g[27];
document.mhi.k28.value=k[28]; document.mhi.g28.value=g[28];
document.mhi.k29.value=k[29]; document.mhi.g29.value=g[29];
document.mhi.k30.value=k[30]; document.mhi.g30.value=g[30];
document.mhi.k31.value=k[31]; document.mhi.g31.value=g[31];
document.mhi.k32.value=k[32]; document.mhi.g32.value=g[32];
document.mhi.k33.value=k[33]; document.mhi.g33.value=g[33];
document.mhi.k34.value=k[34]; document.mhi.g34.value=g[34];
document.mhi.k35.value=k[35]; document.mhi.g35.value=g[35];
document.mhi.k36.value=k[36]; document.mhi.g36.value=g[36];
document.mhi.k37.value=k[37]; document.mhi.g37.value=g[37];
document.mhi.k38.value=k[38]; document.mhi.g38.value=g[38];
document.mhi.k39.value=k[39]; document.mhi.g39.value=g[39];
document.mhi.k40.value=k[40]; document.mhi.g40.value=g[40];
document.mhi.k41.value=k[41]; document.mhi.g41.value=g[41];
document.mhi.k42.value=k[42]; document.mhi.g42.value=g[42];
document.mhi.k43.value=k[43]; document.mhi.g43.value=g[43];
document.mhi.k44.value=k[44]; document.mhi.g44.value=g[44];
document.mhi.k45.value=k[45]; document.mhi.g45.value=g[45];
document.mhi.k46.value=k[46]; document.mhi.g46.value=g[46];
document.mhi.k47.value=k[47]; document.mhi.g47.value=g[47];
document.mhi.k48.value=k[48]; document.mhi.g48.value=g[48];
document.mhi.k49.value=k[49]; document.mhi.g49.value=g[49];
document.mhi.k50.value=k[50]; document.mhi.g50.value=g[50];
}

// the main computational program
function comput() {

errmessage="Messages:\n";stp=0.5;dfix=0; //errmessage is the messages file, stp is step size, and dfix=1 means some input was illegal
document.mhi.SOC.style.backgroundColor="#FFFFFF";document.mhi.SOC.value="";

// Error checking
if(!(n>=2)){errmessage=errmessage+"\nLow, negative or nonnumeric n reset to 3";n=3;dfix=1;}
n=Math.round(n);
if(!(alpha>=0||alpha<=0)){alpha=3;dfix=1;errmessage=errmessage+"\nError: Nonnumeric alpha encountered"}
if(alpha<=0) {a=0} else {a=1/alpha}
if(alpha<=1&&alpha>0) {errmessage=errmessage+"\nWarning: With inelastic demand, monopoly solution is q=0, and solution may not exist."}
if(alpha<=0) {errmessage=errmessage+"\nDemand elasticity set to infinity.  This produces the special case"}
if(!(beta>0)) {beta=1;dfix=1;errmessage=errmessage+"\nError: Downstream cost elasticities must be positive numbers."}
if(!(eta>0)) {eta=1;dfix=1;errmessage=errmessage+"\nError: Upstream cost elasticities must be positive numbers."}

// calculate capacity totals and put negative input shares to zero
ksum=0.0; gsum=0.0;
for (i=1; i<=n; i=i+1) {if(!(k[i]>=0)) {dfix=1;k[i]=0;errmessage=errmessage+"\nError: Negative or zero downstream market shares."}
  if(!(g[i]>=0)) {dfix=1;errmessage=errmessage+"\nError: Negative or zero upstream market shares.";g[i]=0};
  ksum=ksum+k[i];gsum=gsum+g[i]}

//check for big problems with input capacities
if(ksum<=0) {dfix=1;errmessage=errmessage+"\nError: Negative, zero or non-numeric downstream market shares.";k[1]=20;k[2]=30;k[3]=50;ksum=100;n=Math.max(n,3)}
if(gsum<=0) {dfix=1;errmessage=errmessage+"\nError: Negative, zero or non-numeric upstream market shares.";g[1]=20;g[2]=30;g[3]=50;gsum=100;n=Math.max(n,3)}

//zero out shares for inputs beyond n
overnsum=0;
for (i=n+1; i<=50; i=i+1) {overnsum=overnsum+k[i];overnsum=overnsum+g[i];k[i]=0;g[i]=0;s[i]=0;r[i]=0;stemp[i]=0;rtemp[i]=0;};
if(overnsum>0) {dfix=1};

if(!(dfix==0)) {displayfix();errmessage=errmessage+"\nRewriting input values to eliminate errors and inconsistencies"};

// Begin Computations

for (i=1; i<=n; i=i+1) {s[i]=k[i]/ksum;r[i]=g[i]/gsum;stemp[i]=s[i];rtemp[i]=r[i];}  //estimate market shares with capacity shares

document.mhi.error.value=errmessage;

// end input

// This do loop computes shares, iterate to find a solution 
for (iter=1; iter<=2000; iter=iter+1) {
  
xleft=0;xright=1;
// Find f[x]==0

if(f(xleft)*f(xright)>0) {xstar=Math.random(); errmessage=errmessage+"\nApparently no solution for f==0.  Phooey."}

if(f(xleft)<=0&&f(xright)>=0) {
for (im=1; im<=30; im=im+1) {xtest=(xleft+xright)/2; if(f(xtest)>0) {xright=xtest} else {xleft=xtest} }
xstar=(xleft+xright)/2}

if(f(xleft)>=0&&f(xright)<=0) {
for (im=1; im<=30; im=im+1) {xtest=(xleft+xright)/2; if(f(xtest)>0) {xleft=xtest} else {xright=xtest} }
xstar=(xleft+xright)/2}

thetatemp=xstar;
  
// Now compute shares that should prevail given the new values of q and theta 

sqerror=0;
tempq=0.0;for (iq=1; iq<=n; iq=iq+1) {tempq=tempq+(Math.pow(psi(thetatemp,stemp[iq],rtemp[iq]),beta)*k[iq])}
qtemp=Math.pow(tempq,1/(1+a*beta));

ssum=0;rsum=0;
for (iw=1; iw<=n; iw=iw+1) {
s[iw]=((1-stp)*s[iw])+(stp*Math.pow(qtemp,-a*beta-1)*Math.pow(psi(thetatemp,stemp[iw],rtemp[iw]),beta)*k[iw]);
r[iw]=((1-stp)*r[iw])+(stp*Math.pow(qtemp,-a*eta-1)*Math.pow(chi(thetatemp,stemp[iw],rtemp[iw]),eta)*g[iw]);
ssum=ssum+s[iw];rsum=rsum+r[iw]}
for (iw=1; iw<=n; iw=iw+1) {
s[iw]=s[iw]/ssum;r[iw]=r[iw]/rsum;
sqerror=sqerror+((stemp[iw]-s[iw])*(stemp[iw]-s[iw]))+((rtemp[iw]-r[iw])*(rtemp[iw]-r[iw]));
stemp[iw]=s[iw];rtemp[iw]=r[iw]  }

// if we have a solution, the calculation should give the same shares we started with 
bb=iter;bsq=sqerror;if(Math.sqrt(sqerror)<error) {bb=iter;break}
if(iter%25==0){stp=stp*2/3;errmessage=errmessage+"\nslow convergence, reducing step size"}

 } // End of Iter loop

q=qtemp;
t=thetatemp;

// The efficient quantity and intermediate good price 

ql=0.0;qr=Math.max(1,ksum);
for(iq=1; iq<100; iq=iq+1) {
qq=(ql+qr)/2;
if(((Math.pow(qq,a+(1/beta)))/(Math.pow(ksum,1/beta)))+((Math.pow(qq,a+(1/eta)))/(Math.pow(gsum,1/eta)))<1) {ql=qq} else {qr=qq}  }

qe=qq;

pe=Math.pow(qe,a+(1/eta))/Math.pow(gsum,1/eta);

MHI=0.0;
for(iu=1; iu<=n; iu=iu+1) {
MHI= MHI+((t*(1-t)*((s[iu]-r[iu])*(s[iu]-r[iu]))/(eta*beta))+(a*(1-t)*(1-r[iu])*(s[iu]*s[iu])/beta)+(a*t*(1-s[iu])*(r[iu]*r[iu])/eta))/((a*(1-s[iu])*(1-r[iu]))+((1-t)*(1-r[iu])/beta)+(t*(1-s[iu])/eta))
}

// End computations, start output 

if(!(Math.sqrt(sqerror)<error)) {
errmessage=errmessage+"\nError: Failure to converge.  Iterations= ";errmessage=errmessage+bb;errmessage=errmessage+" Estimated error is ";errmessage=errmessage+sqerror}
else {errmessage=errmessage+"\nConvergence achieved at iteration ";errmessage=errmessage+bb}

document.mhi.q.style.backgroundColor="#FFFFFF";
document.mhi.MHI.style.backgroundColor="#FFFFFF";
if(MHI>=1) {errmessage=errmessage+"\n\nLikely nonsense answer.  MHI>=100%.  Probably non-existence of solution.";document.mhi.MHI.style.backgroundColor="#FF3333"}
if(q<0.0001*qe) {errmessage=errmessage+"\n\nLikely nonsense answer.  Calculated q very near zero.  Probably non-existence of solution.";document.mhi.q.style.backgroundColor="#FF3333"}

// write output

document.mhi.error.value=errmessage;

document.mhi.s1.value=twod(100*s[1]);document.mhi.r1.value=twod(100*r[1]);document.mhi.k1.value=twod(k[1]);document.mhi.g1.value=twod(g[1]);
document.mhi.s2.value=twod(100*s[2]);document.mhi.r2.value=twod(100*r[2]);document.mhi.k2.value=twod(k[2]);document.mhi.g2.value=twod(g[2]);
document.mhi.s3.value=twod(100*s[3]);document.mhi.r3.value=twod(100*r[3]);document.mhi.k3.value=twod(k[3]);document.mhi.g3.value=twod(g[3]);
document.mhi.s4.value=twod(100*s[4]);document.mhi.r4.value=twod(100*r[4]);document.mhi.k4.value=twod(k[4]);document.mhi.g4.value=twod(g[4]);
document.mhi.s5.value=twod(100*s[5]);document.mhi.r5.value=twod(100*r[5]);document.mhi.k5.value=twod(k[5]);document.mhi.g5.value=twod(g[5]);
document.mhi.s6.value=twod(100*s[6]);document.mhi.r6.value=twod(100*r[6]);document.mhi.k6.value=twod(k[6]);document.mhi.g6.value=twod(g[6]);
document.mhi.s7.value=twod(100*s[7]);document.mhi.r7.value=twod(100*r[7]);document.mhi.k7.value=twod(k[7]);document.mhi.g7.value=twod(g[7]);
document.mhi.s8.value=twod(100*s[8]);document.mhi.r8.value=twod(100*r[8]);document.mhi.k8.value=twod(k[8]);document.mhi.g8.value=twod(g[8]);
document.mhi.s9.value=twod(100*s[9]);document.mhi.r9.value=twod(100*r[9]);document.mhi.k9.value=twod(k[9]);document.mhi.g9.value=twod(g[9]);
document.mhi.s10.value=twod(100*s[10]);document.mhi.r10.value=twod(100*r[10]);document.mhi.k10.value=twod(k[10]);document.mhi.g10.value=twod(g[10]);
document.mhi.s11.value=twod(100*s[11]);document.mhi.r11.value=twod(100*r[11]);document.mhi.k11.value=twod(k[11]);document.mhi.g11.value=twod(g[11]);
document.mhi.s12.value=twod(100*s[12]);document.mhi.r12.value=twod(100*r[12]);document.mhi.k12.value=twod(k[12]);document.mhi.g12.value=twod(g[12]);
document.mhi.s13.value=twod(100*s[13]);document.mhi.r13.value=twod(100*r[13]);document.mhi.k13.value=twod(k[13]);document.mhi.g13.value=twod(g[13]);
document.mhi.s14.value=twod(100*s[14]);document.mhi.r14.value=twod(100*r[14]);document.mhi.k14.value=twod(k[14]);document.mhi.g14.value=twod(g[14]);
document.mhi.s15.value=twod(100*s[15]);document.mhi.r15.value=twod(100*r[15]);document.mhi.k15.value=twod(k[15]);document.mhi.g15.value=twod(g[15]);
document.mhi.s16.value=twod(100*s[16]);document.mhi.r16.value=twod(100*r[16]);document.mhi.k16.value=twod(k[16]);document.mhi.g16.value=twod(g[16]);
document.mhi.s17.value=twod(100*s[17]);document.mhi.r17.value=twod(100*r[17]);document.mhi.k17.value=twod(k[17]);document.mhi.g17.value=twod(g[17]);
document.mhi.s18.value=twod(100*s[18]);document.mhi.r18.value=twod(100*r[18]);document.mhi.k18.value=twod(k[18]);document.mhi.g18.value=twod(g[18]);
document.mhi.s19.value=twod(100*s[19]);document.mhi.r19.value=twod(100*r[19]);document.mhi.k19.value=twod(k[19]);document.mhi.g19.value=twod(g[19]);
document.mhi.s20.value=twod(100*s[20]);document.mhi.r20.value=twod(100*r[20]);document.mhi.k20.value=twod(k[20]);document.mhi.g20.value=twod(g[20]);
document.mhi.s21.value=twod(100*s[21]);document.mhi.r21.value=twod(100*r[21]);document.mhi.k21.value=twod(k[21]);document.mhi.g21.value=twod(g[21]);
document.mhi.s22.value=twod(100*s[22]);document.mhi.r22.value=twod(100*r[22]);document.mhi.k22.value=twod(k[22]);document.mhi.g22.value=twod(g[22]);
document.mhi.s23.value=twod(100*s[23]);document.mhi.r23.value=twod(100*r[23]);document.mhi.k23.value=twod(k[23]);document.mhi.g23.value=twod(g[23]);
document.mhi.s24.value=twod(100*s[24]);document.mhi.r24.value=twod(100*r[24]);document.mhi.k24.value=twod(k[24]);document.mhi.g24.value=twod(g[24]);
document.mhi.s25.value=twod(100*s[25]);document.mhi.r25.value=twod(100*r[25]);document.mhi.k25.value=twod(k[25]);document.mhi.g25.value=twod(g[25]);
document.mhi.s26.value=twod(100*s[26]);document.mhi.r26.value=twod(100*r[26]);document.mhi.k26.value=twod(k[26]);document.mhi.g26.value=twod(g[26]);
document.mhi.s27.value=twod(100*s[27]);document.mhi.r27.value=twod(100*r[27]);document.mhi.k27.value=twod(k[27]);document.mhi.g27.value=twod(g[27]);
document.mhi.s28.value=twod(100*s[28]);document.mhi.r28.value=twod(100*r[28]);document.mhi.k28.value=twod(k[28]);document.mhi.g28.value=twod(g[28]);
document.mhi.s29.value=twod(100*s[29]);document.mhi.r29.value=twod(100*r[29]);document.mhi.k29.value=twod(k[29]);document.mhi.g29.value=twod(g[29]);
document.mhi.s30.value=twod(100*s[30]);document.mhi.r30.value=twod(100*r[30]);document.mhi.k30.value=twod(k[30]);document.mhi.g30.value=twod(g[30]);
document.mhi.s31.value=twod(100*s[31]);document.mhi.r31.value=twod(100*r[31]);document.mhi.k31.value=twod(k[31]);document.mhi.g31.value=twod(g[31]);
document.mhi.s32.value=twod(100*s[32]);document.mhi.r32.value=twod(100*r[32]);document.mhi.k32.value=twod(k[32]);document.mhi.g32.value=twod(g[32]);
document.mhi.s33.value=twod(100*s[33]);document.mhi.r33.value=twod(100*r[33]);document.mhi.k33.value=twod(k[33]);document.mhi.g33.value=twod(g[33]);
document.mhi.s34.value=twod(100*s[34]);document.mhi.r34.value=twod(100*r[34]);document.mhi.k34.value=twod(k[34]);document.mhi.g34.value=twod(g[34]);
document.mhi.s35.value=twod(100*s[35]);document.mhi.r35.value=twod(100*r[35]);document.mhi.k35.value=twod(k[35]);document.mhi.g35.value=twod(g[35]);
document.mhi.s36.value=twod(100*s[36]);document.mhi.r36.value=twod(100*r[36]);document.mhi.k36.value=twod(k[36]);document.mhi.g36.value=twod(g[36]);
document.mhi.s37.value=twod(100*s[37]);document.mhi.r37.value=twod(100*r[37]);document.mhi.k37.value=twod(k[37]);document.mhi.g37.value=twod(g[37]);
document.mhi.s38.value=twod(100*s[38]);document.mhi.r38.value=twod(100*r[38]);document.mhi.k38.value=twod(k[38]);document.mhi.g38.value=twod(g[38]);
document.mhi.s39.value=twod(100*s[39]);document.mhi.r39.value=twod(100*r[39]);document.mhi.k39.value=twod(k[39]);document.mhi.g39.value=twod(g[39]);
document.mhi.s40.value=twod(100*s[40]);document.mhi.r40.value=twod(100*r[40]);document.mhi.k40.value=twod(k[40]);document.mhi.g40.value=twod(g[40]);
document.mhi.s41.value=twod(100*s[41]);document.mhi.r41.value=twod(100*r[41]);document.mhi.k41.value=twod(k[41]);document.mhi.g41.value=twod(g[41]);
document.mhi.s42.value=twod(100*s[42]);document.mhi.r42.value=twod(100*r[42]);document.mhi.k42.value=twod(k[42]);document.mhi.g42.value=twod(g[42]);
document.mhi.s43.value=twod(100*s[43]);document.mhi.r43.value=twod(100*r[43]);document.mhi.k43.value=twod(k[43]);document.mhi.g43.value=twod(g[43]);
document.mhi.s44.value=twod(100*s[44]);document.mhi.r44.value=twod(100*r[44]);document.mhi.k44.value=twod(k[44]);document.mhi.g44.value=twod(g[44]);
document.mhi.s45.value=twod(100*s[45]);document.mhi.r45.value=twod(100*r[45]);document.mhi.k45.value=twod(k[45]);document.mhi.g45.value=twod(g[45]);
document.mhi.s46.value=twod(100*s[46]);document.mhi.r46.value=twod(100*r[46]);document.mhi.k46.value=twod(k[46]);document.mhi.g46.value=twod(g[46]);
document.mhi.s47.value=twod(100*s[47]);document.mhi.r47.value=twod(100*r[47]);document.mhi.k47.value=twod(k[47]);document.mhi.g47.value=twod(g[47]);
document.mhi.s48.value=twod(100*s[48]);document.mhi.r48.value=twod(100*r[48]);document.mhi.k48.value=twod(k[48]);document.mhi.g48.value=twod(g[48]);
document.mhi.s49.value=twod(100*s[49]);document.mhi.r49.value=twod(100*r[49]);document.mhi.k49.value=twod(k[49]);document.mhi.g49.value=twod(g[49]);
document.mhi.s50.value=twod(100*s[50]);document.mhi.r50.value=twod(100*r[50]);document.mhi.k50.value=twod(k[50]);document.mhi.g50.value=twod(g[50]);

document.mhi.t.value=twod(100*t);
document.mhi.pe.value=twod(100*pe);
document.mhi.q.value=twod(100.0*q/qe);
document.mhi.MHI.value=twod(100.0*MHI);

//Check second order conditions
soc="Passed";
errmessage=errmessage+"\n \n...Checking Second Order Conditions...";
for (i=1; i<=n; i=i+1)
{term1=d2k(s[i],r[i],a,(1-t)/beta,t/eta,t);
term2=d2g(s[i],r[i],a,(1-t)/beta,t/eta,t);
term3=crossterm(s[i],r[i],a,(1-t)/beta,t/eta,t);

if (term1<=0&&term2<=0&&term3>=0) {errmessage=errmessage+"\nSOCs satisfied for firm ";errmessage=errmessage+i}
else {soc="Failed";errmessage=errmessage+"\nSOCs failed for firm ";errmessage=errmessage+i;
errmessage=errmessage+"\n term 1 = ";errmessage=errmessage+term1;
errmessage=errmessage+"\n term 2 = ";errmessage=errmessage+term2;
errmessage=errmessage+"\n term 3 = ";errmessage=errmessage+term3;}
} //End SOC checking
document.mhi.SOC.value=soc;
document.mhi.error.value=errmessage;
if (soc=="Failed") {document.mhi.SOC.style.backgroundColor="#FF3333"} else {document.mhi.SOC.style.backgroundColor="#33FF33"}

}  //End of computing section

function d2k(si,ri,A,B,C,t) {
A2=A*A;A3=A2*A;A4=A3*A;B2=B*B;B3=B2*B;B4=B3*B;C2=C*C;C3=C2*C;C4=C3*C;
t2=t*t;t3=t2*t;t4=t3*t;si2=si*si;si3=si2*si;ri2=ri*ri;ri3=ri2*ri;
calc=A*B*C2*ri*si;
calc=calc + B2*C2*ri*si;
calc=calc - B2*C2*si2;
calc=calc - A*B*C2*ri*si2;
calc=calc - A3*t;
calc=calc - 3*A2*B*t;
calc=calc - 3*A*B2*t;
calc=calc - B3*t;
calc=calc - 3*A2*C*t;
calc=calc - 6*A*B*C*t;
calc=calc - 3*B2*C*t;
calc=calc - 3*A*C2*t;
calc=calc - 3*B*C2*t;
calc=calc - C3*t;
calc=calc + A3*ri*t;
calc=calc + 3*A2*B*ri*t;
calc=calc + 3*A*B2*ri*t;
calc=calc + B3*ri*t;
calc=calc + 2*A2*C*ri*t;
calc=calc + 4*A*B*C*ri*t;
calc=calc - A2*B*C*ri*t;
calc=calc + 2*B2*C*ri*t;
calc=calc - 2*A*B2*C*ri*t;
calc=calc - B3*C*ri*t;
calc=calc + A*C2*ri*t;
calc=calc + B*C2*ri*t;
calc=calc - 2*A*B*C2*ri*t;
calc=calc - 2*B2*C2*ri*t;
calc=calc - B*C3*ri*t;
calc=calc + A3*si*t;
calc=calc + 2*A2*B*si*t;
calc=calc + A3*B*si*t;
calc=calc + A*B2*si*t;
calc=calc + 2*A2*B2*si*t;
calc=calc + A*B3*si*t;
calc=calc + 3*A2*C*si*t;
calc=calc + 4*A*B*C*si*t;
calc=calc + 3*A2*B*C*si*t;
calc=calc + B2*C*si*t;
calc=calc + 4*A*B2*C*si*t;
calc=calc + B3*C*si*t;
calc=calc + 3*A*C2*si*t;
calc=calc + 2*B*C2*si*t;
calc=calc + 3*A*B*C2*si*t;
calc=calc + 2*B2*C2*si*t;
calc=calc + C3*si*t;
calc=calc + B*C3*si*t;
calc=calc - A3*ri*si*t;
calc=calc - 2*A2*B*ri*si*t;
calc=calc - A3*B*ri*si*t;
calc=calc - A*B2*ri*si*t;
calc=calc - 2*A2*B2*ri*si*t;
calc=calc - A*B3*ri*si*t;
calc=calc - A2*C*ri*si*t;
calc=calc - A*B*C*ri*si*t;
calc=calc + A*C2*ri*si*t;
calc=calc + B*C2*ri*si*t;
calc=calc + B2*C2*ri*si*t;
calc=calc + C3*ri*si*t;
calc=calc + B*C3*ri*si*t;
calc=calc + A2*B*si2*t;
calc=calc - A3*B*si2*t;
calc=calc + A*B2*si2*t;
calc=calc - A2*B2*si2*t;
calc=calc + 2*A*B*C*si2*t;
calc=calc - 3*A2*B*C*si2*t;
calc=calc + B2*C*si2*t;
calc=calc - 4*A*B2*C*si2*t;
calc=calc + B*C2*si2*t;
calc=calc - 3*A*B*C2*si2*t;
calc=calc - B2*C2*si2*t;
calc=calc - B*C3*si2*t;
calc=calc - A2*B*ri*si2*t;
calc=calc + A3*B*ri*si2*t;
calc=calc - A*B2*ri*si2*t;
calc=calc + A2*B2*ri*si2*t;
calc=calc - A2*C*ri*si2*t;
calc=calc - 3*A*B*C*ri*si2*t;
calc=calc + A2*B*C*ri*si2*t;
calc=calc - B2*C*ri*si2*t;
calc=calc + 2*A*B2*C*ri*si2*t;
calc=calc - 2*A*C2*ri*si2*t;
calc=calc - 2*B*C2*ri*si2*t;
calc=calc + 2*A*B*C2*ri*si2*t;
calc=calc - C3*ri*si2*t;
calc=calc + A3*t2;
calc=calc + 3*A2*B*t2;
calc=calc + 3*A*B2*t2;
calc=calc + B3*t2;
calc=calc + 3*A2*C*t2;
calc=calc + 6*A*B*C*t2;
calc=calc + 3*B2*C*t2;
calc=calc + 3*A*C2*t2;
calc=calc + 3*B*C2*t2;
calc=calc + C3*t2;
calc=calc - A3*ri*t2;
calc=calc - 3*A2*B*ri*t2;
calc=calc - 3*A*B2*ri*t2;
calc=calc - B3*ri*t2;
calc=calc - 2*A2*C*ri*t2;
calc=calc - 4*A*B*C*ri*t2;
calc=calc - 2*B2*C*ri*t2;
calc=calc - A*C2*ri*t2;
calc=calc - B*C2*ri*t2;
calc=calc - A3*si*t2;
calc=calc - 2*A2*B*si*t2;
calc=calc - A*B2*si*t2;
calc=calc - 3*A2*C*si*t2;
calc=calc - 4*A*B*C*si*t2;
calc=calc - B2*C*si*t2;
calc=calc - 3*A*C2*si*t2;
calc=calc - 2*B*C2*si*t2;
calc=calc - C3*si*t2;
calc=calc + A3*ri*si*t2;
calc=calc + 2*A2*B*ri*si*t2;
calc=calc + A*B2*ri*si*t2;
calc=calc + A2*C*ri*si*t2;
calc=calc + A*B*C*ri*si*t2;
calc=calc - A2*B*C*ri*si*t2;
calc=calc - A*C2*ri*si*t2;
calc=calc - B*C2*ri*si*t2;
calc=calc - C3*ri*si*t2;
calc=calc - A2*B*si2*t2;
calc=calc - A*B2*si2*t2;
calc=calc - A2*B2*si2*t2;
calc=calc - 2*A*B*C*si2*t2;
calc=calc - B2*C*si2*t2;
calc=calc - B*C2*si2*t2;
calc=calc + A2*B*ri*si2*t2;
calc=calc + A*B2*ri*si2*t2;
calc=calc + A2*B2*ri*si2*t2;
calc=calc + A2*C*ri*si2*t2;
calc=calc + 3*A*B*C*ri*si2*t2;
calc=calc + A2*B*C*ri*si2*t2;
calc=calc + B2*C*ri*si2*t2;
calc=calc + 2*A*C2*ri*si2*t2;
calc=calc + 2*B*C2*ri*si2*t2;
calc=calc + C3*ri*si2*t2; return calc}

function d2g(si,ri,A,B,C,t) {
A2=A*A;A3=A2*A;A4=A3*A;B2=B*B;B3=B2*B;B4=B3*B;C2=C*C;C3=C2*C;C4=C3*C;
t2=t*t;t3=t2*t;t4=t3*t;si2=si*si;si3=si2*si;ri2=ri*ri;ri3=ri2*ri;
calc=A3*C*ri;
calc=calc + 3*A2*B*C*ri;
calc=calc + 3*A*B2*C*ri;
calc=calc + B3*C*ri;
calc=calc + 2*A2*C2*ri;
calc=calc + 4*A*B*C2*ri;
calc=calc + 2*B2*C2*ri;
calc=calc + A*C3*ri;
calc=calc + B*C3*ri;
calc=calc - A3*C*ri2;
calc=calc - 3*A2*B*C*ri2;
calc=calc - 3*A*B2*C*ri2;
calc=calc - B3*C*ri2;
calc=calc - 2*A2*C2*ri2;
calc=calc - 4*A*B*C2*ri2;
calc=calc - 2*B2*C2*ri2;
calc=calc - A2*B*C*si;
calc=calc - 2*A*B2*C*si;
calc=calc - B3*C*si;
calc=calc - 2*A*B*C2*si;
calc=calc - 2*B2*C2*si;
calc=calc - B*C3*si;
calc=calc - A3*C*ri*si;
calc=calc - A2*B*C*ri*si;
calc=calc + A*B2*C*ri*si;
calc=calc + B3*C*ri*si;
calc=calc - 2*A2*C2*ri*si;
calc=calc + 2*B2*C2*ri*si;
calc=calc - A*C3*ri*si;
calc=calc + A3*C*ri2*si;
calc=calc + 2*A2*B*C*ri2*si;
calc=calc + A*B2*C*ri2*si;
calc=calc + 2*A2*C2*ri2*si;
calc=calc + 2*A*B*C2*ri2*si;
calc=calc - A3*t;
calc=calc - 3*A2*B*t;
calc=calc - 3*A*B2*t;
calc=calc - B3*t;
calc=calc - 3*A2*C*t;
calc=calc - 6*A*B*C*t;
calc=calc - 3*B2*C*t;
calc=calc - 3*A*C2*t;
calc=calc - 3*B*C2*t;
calc=calc - C3*t;
calc=calc + A3*ri*t;
calc=calc + 3*A2*B*ri*t;
calc=calc + 3*A*B2*ri*t;
calc=calc + B3*ri*t;
calc=calc + 2*A2*C*ri*t;
calc=calc - A3*C*ri*t;
calc=calc + 4*A*B*C*ri*t;
calc=calc - 3*A2*B*C*ri*t;
calc=calc + 2*B2*C*ri*t;
calc=calc - 3*A*B2*C*ri*t;
calc=calc - B3*C*ri*t;
calc=calc + A*C2*ri*t;
calc=calc - 2*A2*C2*ri*t;
calc=calc + B*C2*ri*t;
calc=calc - 4*A*B*C2*ri*t;
calc=calc - 2*B2*C2*ri*t;
calc=calc - A*C3*ri*t;
calc=calc - B*C3*ri*t;
calc=calc + A2*C*ri2*t;
calc=calc + A3*C*ri2*t;
calc=calc + 2*A*B*C*ri2*t;
calc=calc + 3*A2*B*C*ri2*t;
calc=calc + B2*C*ri2*t;
calc=calc + 3*A*B2*C*ri2*t;
calc=calc + B3*C*ri2*t;
calc=calc + A*C2*ri2*t;
calc=calc + 3*A2*C2*ri2*t;
calc=calc + B*C2*ri2*t;
calc=calc + 4*A*B*C2*ri2*t;
calc=calc + B2*C2*ri2*t;
calc=calc + A3*si*t;
calc=calc + 2*A2*B*si*t;
calc=calc + A*B2*si*t;
calc=calc + 3*A2*C*si*t;
calc=calc + 4*A*B*C*si*t;
calc=calc + A2*B*C*si*t;
calc=calc + B2*C*si*t;
calc=calc + 2*A*B2*C*si*t;
calc=calc + B3*C*si*t;
calc=calc + 3*A*C2*si*t;
calc=calc + 2*B*C2*si*t;
calc=calc + 2*A*B*C2*si*t;
calc=calc + 2*B2*C2*si*t;
calc=calc + C3*si*t;
calc=calc + B*C3*si*t;
calc=calc - A3*ri*si*t;
calc=calc - A2*B*ri*si*t;
calc=calc + A*B2*ri*si*t;
calc=calc + B3*ri*si*t;
calc=calc - 2*A2*C*ri*si*t;
calc=calc + A3*C*ri*si*t;
calc=calc - A*B*C*ri*si*t;
calc=calc + 2*A2*B*C*ri*si*t;
calc=calc + B2*C*ri*si*t;
calc=calc - B3*C*ri*si*t;
calc=calc - A*C2*ri*si*t;
calc=calc + 2*A2*C2*ri*si*t;
calc=calc - B2*C2*ri*si*t;
calc=calc + A*C3*ri*si*t;
calc=calc - A2*B*ri2*si*t;
calc=calc - 2*A*B2*ri2*si*t;
calc=calc - B3*ri2*si*t;
calc=calc - A2*C*ri2*si*t;
calc=calc - A3*C*ri2*si*t;
calc=calc - 3*A*B*C*ri2*si*t;
calc=calc - 3*A2*B*C*ri2*si*t;
calc=calc - 2*B2*C*ri2*si*t;
calc=calc - 2*A*B2*C*ri2*si*t;
calc=calc - A*C2*ri2*si*t;
calc=calc - 3*A2*C2*ri2*si*t;
calc=calc - B*C2*ri2*si*t;
calc=calc - 2*A*B*C2*ri2*si*t;
calc=calc + A3*t2;
calc=calc + 3*A2*B*t2;
calc=calc + 3*A*B2*t2;
calc=calc + B3*t2;
calc=calc + 3*A2*C*t2;
calc=calc + 6*A*B*C*t2;
calc=calc + 3*B2*C*t2;
calc=calc + 3*A*C2*t2;
calc=calc + 3*B*C2*t2;
calc=calc + C3*t2;
calc=calc - A3*ri*t2;
calc=calc - 3*A2*B*ri*t2;
calc=calc - 3*A*B2*ri*t2;
calc=calc - B3*ri*t2;
calc=calc - 2*A2*C*ri*t2;
calc=calc - 4*A*B*C*ri*t2;
calc=calc - 2*B2*C*ri*t2;
calc=calc - A*C2*ri*t2;
calc=calc - B*C2*ri*t2;
calc=calc - A2*C*ri2*t2;
calc=calc - 2*A*B*C*ri2*t2;
calc=calc - B2*C*ri2*t2;
calc=calc - A*C2*ri2*t2;
calc=calc - A2*C2*ri2*t2;
calc=calc - B*C2*ri2*t2;
calc=calc - A3*si*t2;
calc=calc - 2*A2*B*si*t2;
calc=calc - A*B2*si*t2;
calc=calc - 3*A2*C*si*t2;
calc=calc - 4*A*B*C*si*t2;
calc=calc - B2*C*si*t2;
calc=calc - 3*A*C2*si*t2;
calc=calc - 2*B*C2*si*t2;
calc=calc - C3*si*t2;
calc=calc + A3*ri*si*t2;
calc=calc + A2*B*ri*si*t2;
calc=calc - A*B2*ri*si*t2;
calc=calc - B3*ri*si*t2;
calc=calc + 2*A2*C*ri*si*t2;
calc=calc + A*B*C*ri*si*t2;
calc=calc - A2*B*C*ri*si*t2;
calc=calc - B2*C*ri*si*t2;
calc=calc + A*C2*ri*si*t2;
calc=calc + A2*B*ri2*si*t2;
calc=calc + 2*A*B2*ri2*si*t2;
calc=calc + B3*ri2*si*t2;
calc=calc + A2*C*ri2*si*t2;
calc=calc + 3*A*B*C*ri2*si*t2;
calc=calc + A2*B*C*ri2*si*t2;
calc=calc + 2*B2*C*ri2*si*t2;
calc=calc + A*C2*ri2*si*t2;
calc=calc + A2*C2*ri2*si*t2;
calc=calc + B*C2*ri2*si*t2; return calc}

function crossterm(si, ri, A, B, C, t) {
A2=A*A;A3=A2*A;A4=A3*A;B2=B*B;B3=B2*B;B4=B3*B;C2=C*C;C3=C2*C;C4=C3*C;
t2=t*t;t3=t2*t;t4=t3*t;si2=si*si;si3=si2*si;ri2=ri*ri;ri3=ri2*ri;
calc= A2*B*C3*ri2*si;
calc=calc + 2*A*B2*C3*ri2*si;
calc=calc + B3*C3*ri2*si;
calc=calc - A2*B*C3*ri3*si;
calc=calc - 2*A*B2*C3*ri3*si;
calc=calc - B3*C3*ri3*si;
calc=calc - 2*A*B2*C3*ri*si2;
calc=calc - 2*B3*C3*ri*si2;
calc=calc - 2*A2*B*C3*ri2*si2;
calc=calc + 2*B3*C3*ri2*si2;
calc=calc + 2*A2*B*C3*ri3*si2;
calc=calc + 2*A*B2*C3*ri3*si2;
calc=calc + B3*C3*si3;
calc=calc + 2*A*B2*C3*ri*si3;
calc=calc - B3*C3*ri*si3;
calc=calc + A2*B*C3*ri2*si3;
calc=calc - 2*A*B2*C3*ri2*si3;
calc=calc - A2*B*C3*ri3*si3;
calc=calc - A4*C*ri*t;
calc=calc - 4*A3*B*C*ri*t;
calc=calc - 6*A2*B2*C*ri*t;
calc=calc - 4*A*B3*C*ri*t;
calc=calc - B4*C*ri*t;
calc=calc - 3*A3*C2*ri*t;
calc=calc - 9*A2*B*C2*ri*t;
calc=calc - 9*A*B2*C2*ri*t;
calc=calc - 3*B3*C2*ri*t;
calc=calc - 3*A2*C3*ri*t;
calc=calc - 6*A*B*C3*ri*t;
calc=calc - 3*B2*C3*ri*t;
calc=calc - A*C4*ri*t;
calc=calc - B*C4*ri*t;
calc=calc + 2*A4*C*ri2*t;
calc=calc + 8*A3*B*C*ri2*t;
calc=calc + 12*A2*B2*C*ri2*t;
calc=calc + 8*A*B3*C*ri2*t;
calc=calc + 2*B4*C*ri2*t;
calc=calc + 5*A3*C2*ri2*t;
calc=calc + 15*A2*B*C2*ri2*t;
calc=calc - A3*B*C2*ri2*t;
calc=calc + 15*A*B2*C2*ri2*t;
calc=calc - 3*A2*B2*C2*ri2*t;
calc=calc + 5*B3*C2*ri2*t;
calc=calc - 3*A*B3*C2*ri2*t;
calc=calc - B4*C2*ri2*t;
calc=calc + 3*A2*C3*ri2*t;
calc=calc + 6*A*B*C3*ri2*t;
calc=calc - 2*A2*B*C3*ri2*t;
calc=calc + 3*B2*C3*ri2*t;
calc=calc - 4*A*B2*C3*ri2*t;
calc=calc - 2*B3*C3*ri2*t;
calc=calc - A*B*C4*ri2*t;
calc=calc - B2*C4*ri2*t;
calc=calc - A4*C*ri3*t;
calc=calc - 4*A3*B*C*ri3*t;
calc=calc - 6*A2*B2*C*ri3*t;
calc=calc - 4*A*B3*C*ri3*t;
calc=calc - B4*C*ri3*t;
calc=calc - 2*A3*C2*ri3*t;
calc=calc - 6*A2*B*C2*ri3*t;
calc=calc + A3*B*C2*ri3*t;
calc=calc - 6*A*B2*C2*ri3*t;
calc=calc + 3*A2*B2*C2*ri3*t;
calc=calc - 2*B3*C2*ri3*t;
calc=calc + 3*A*B3*C2*ri3*t;
calc=calc + B4*C2*ri3*t;
calc=calc + 2*A2*B*C3*ri3*t;
calc=calc + 4*A*B2*C3*ri3*t;
calc=calc + 2*B3*C3*ri3*t;
calc=calc + A3*B*C*si*t;
calc=calc + 3*A2*B2*C*si*t;
calc=calc + 3*A*B3*C*si*t;
calc=calc + B4*C*si*t;
calc=calc + 3*A2*B*C2*si*t;
calc=calc + 6*A*B2*C2*si*t;
calc=calc + 3*B3*C2*si*t;
calc=calc + 3*A*B*C3*si*t;
calc=calc + 3*B2*C3*si*t;
calc=calc + B*C4*si*t;
calc=calc + 2*A4*C*ri*si*t;
calc=calc + 4*A3*B*C*ri*si*t;
calc=calc + A4*B*C*ri*si*t;
calc=calc + 3*A3*B2*C*ri*si*t;
calc=calc - 4*A*B3*C*ri*si*t;
calc=calc + 3*A2*B3*C*ri*si*t;
calc=calc - 2*B4*C*ri*si*t;
calc=calc + A*B4*C*ri*si*t;
calc=calc + 6*A3*C2*ri*si*t;
calc=calc + 7*A2*B*C2*ri*si*t;
calc=calc + 3*A3*B*C2*ri*si*t;
calc=calc - 4*A*B2*C2*ri*si*t;
calc=calc + 8*A2*B2*C2*ri*si*t;
calc=calc - 5*B3*C2*ri*si*t;
calc=calc + 7*A*B3*C2*ri*si*t;
calc=calc + 2*B4*C2*ri*si*t;
calc=calc + 6*A2*C3*ri*si*t;
calc=calc + 4*A*B*C3*ri*si*t;
calc=calc + 3*A2*B*C3*ri*si*t;
calc=calc - 2*B2*C3*ri*si*t;
calc=calc + 7*A*B2*C3*ri*si*t;
calc=calc + 4*B3*C3*ri*si*t;
calc=calc + 2*A*C4*ri*si*t;
calc=calc + B*C4*ri*si*t;
calc=calc + A*B*C4*ri*si*t;
calc=calc + 2*B2*C4*ri*si*t;
calc=calc - 4*A4*C*ri2*si*t;
calc=calc - 11*A3*B*C*ri2*si*t;
calc=calc - 2*A4*B*C*ri2*si*t;
calc=calc - 9*A2*B2*C*ri2*si*t;
calc=calc - 6*A3*B2*C*ri2*si*t;
calc=calc - A*B3*C*ri2*si*t;
calc=calc - 6*A2*B3*C*ri2*si*t;
calc=calc + B4*C*ri2*si*t;
calc=calc - 2*A*B4*C*ri2*si*t;
calc=calc - 9*A3*C2*ri2*si*t;
calc=calc - 16*A2*B*C2*ri2*si*t;
calc=calc - 2*A3*B*C2*ri2*si*t;
calc=calc - 5*A*B2*C2*ri2*si*t;
calc=calc - 6*A2*B2*C2*ri2*si*t;
calc=calc + 2*B3*C2*ri2*si*t;
calc=calc - 6*A*B3*C2*ri2*si*t;
calc=calc - 2*B4*C2*ri2*si*t;
calc=calc - 4*A2*C3*ri2*si*t;
calc=calc - 5*A*B*C3*ri2*si*t;
calc=calc - A2*B*C3*ri2*si*t;
calc=calc - B2*C3*ri2*si*t;
calc=calc - 5*A*B2*C3*ri2*si*t;
calc=calc - 4*B3*C3*ri2*si*t;
calc=calc + A*C4*ri2*si*t;
calc=calc + B*C4*ri2*si*t;
calc=calc + 2*A*B*C4*ri2*si*t;
calc=calc + B2*C4*ri2*si*t;
calc=calc + 2*A4*C*ri3*si*t;
calc=calc + 6*A3*B*C*ri3*si*t;
calc=calc + A4*B*C*ri3*si*t;
calc=calc + 6*A2*B2*C*ri3*si*t;
calc=calc + 3*A3*B2*C*ri3*si*t;
calc=calc + 2*A*B3*C*ri3*si*t;
calc=calc + 3*A2*B3*C*ri3*si*t;
calc=calc + A*B4*C*ri3*si*t;
calc=calc + 3*A3*C2*ri3*si*t;
calc=calc + 6*A2*B*C2*ri3*si*t;
calc=calc - A3*B*C2*ri3*si*t;
calc=calc + 3*A*B2*C2*ri3*si*t;
calc=calc - 2*A2*B2*C2*ri3*si*t;
calc=calc - A*B3*C2*ri3*si*t;
calc=calc - 2*A2*C3*ri3*si*t;
calc=calc - 2*A*B*C3*ri3*si*t;
calc=calc - 2*A2*B*C3*ri3*si*t;
calc=calc - 2*A*B2*C3*ri3*si*t;
calc=calc - A3*B*C*si2*t;
calc=calc - 2*A2*B2*C*si2*t;
calc=calc - A3*B2*C*si2*t;
calc=calc - A*B3*C*si2*t;
calc=calc - 2*A2*B3*C*si2*t;
calc=calc - A*B4*C*si2*t;
calc=calc - 3*A2*B*C2*si2*t;
calc=calc - 3*A*B2*C2*si2*t;
calc=calc - 3*A2*B2*C2*si2*t;
calc=calc - 4*A*B3*C2*si2*t;
calc=calc - B4*C2*si2*t;
calc=calc - 3*A*B*C3*si2*t;
calc=calc - B2*C3*si2*t;
calc=calc - 3*A*B2*C3*si2*t;
calc=calc - 2*B3*C3*si2*t;
calc=calc - B*C4*si2*t;
calc=calc - B2*C4*si2*t;
calc=calc - A4*C*ri*si2*t;
calc=calc + A3*B*C*ri*si2*t;
calc=calc - 2*A4*B*C*ri*si2*t;
calc=calc + 5*A2*B2*C*ri*si2*t;
calc=calc - 2*A3*B2*C*ri*si2*t;
calc=calc + 3*A*B3*C*ri*si2*t;
calc=calc + 2*A2*B3*C*ri*si2*t;
calc=calc + 2*A*B4*C*ri*si2*t;
calc=calc - 3*A3*C2*ri*si2*t;
calc=calc + 4*A2*B*C2*ri*si2*t;
calc=calc - 6*A3*B*C2*ri*si2*t;
calc=calc + 8*A*B2*C2*ri*si2*t;
calc=calc - 8*A2*B2*C2*ri*si2*t;
calc=calc + B3*C2*ri*si2*t;
calc=calc - A*B3*C2*ri*si2*t;
calc=calc + B4*C2*ri*si2*t;
calc=calc - 3*A2*C3*ri*si2*t;
calc=calc + 2*A*B*C3*ri*si2*t;
calc=calc - 6*A2*B*C3*ri*si2*t;
calc=calc + 3*B2*C3*ri*si2*t;
calc=calc - 2*A*B2*C3*ri*si2*t;
calc=calc + 2*B3*C3*ri*si2*t;
calc=calc - A*C4*ri*si2*t;
calc=calc - B*C4*ri*si2*t;
calc=calc - 2*A*B*C4*ri*si2*t;
calc=calc - 2*B2*C4*ri*si2*t;
calc=calc + 2*A4*C*ri2*si2*t;
calc=calc + A3*B*C*ri2*si2*t;
calc=calc + 4*A4*B*C*ri2*si2*t;
calc=calc - 4*A2*B2*C*ri2*si2*t;
calc=calc + 7*A3*B2*C*ri2*si2*t;
calc=calc - 3*A*B3*C*ri2*si2*t;
calc=calc + 2*A2*B3*C*ri2*si2*t;
calc=calc - A*B4*C*ri2*si2*t;
calc=calc + 3*A3*C2*ri2*si2*t;
calc=calc - 4*A2*B*C2*ri2*si2*t;
calc=calc + 7*A3*B*C2*ri2*si2*t;
calc=calc - 8*A*B2*C2*ri2*si2*t;
calc=calc + 14*A2*B2*C2*ri2*si2*t;
calc=calc - B3*C2*ri2*si2*t;
calc=calc + 7*A*B3*C2*ri2*si2*t;
calc=calc - A2*C3*ri2*si2*t;
calc=calc - A*B*C3*ri2*si2*t;
calc=calc + 8*A2*B*C3*ri2*si2*t;
calc=calc - 2*B2*C3*ri2*si2*t;
calc=calc + 7*A*B2*C3*ri2*si2*t;
calc=calc - 2*A*C4*ri2*si2*t;
calc=calc - B*C4*ri2*si2*t;
calc=calc - A*B*C4*ri2*si2*t;
calc=calc - A4*C*ri3*si2*t;
calc=calc - A3*B*C*ri3*si2*t;
calc=calc - 2*A4*B*C*ri3*si2*t;
calc=calc + A2*B2*C*ri3*si2*t;
calc=calc - 4*A3*B2*C*ri3*si2*t;
calc=calc + A*B3*C*ri3*si2*t;
calc=calc - 2*A2*B3*C*ri3*si2*t;
calc=calc + 3*A2*B*C2*ri3*si2*t;
calc=calc - A3*B*C2*ri3*si2*t;
calc=calc + 3*A*B2*C2*ri3*si2*t;
calc=calc - 3*A2*B2*C2*ri3*si2*t;
calc=calc - 2*A*B3*C2*ri3*si2*t;
calc=calc + 4*A2*C3*ri3*si2*t;
calc=calc + 2*A*B*C3*ri3*si2*t;
calc=calc - 2*A2*B*C3*ri3*si2*t;
calc=calc - 2*A*B2*C3*ri3*si2*t;
calc=calc - A2*B2*C*si3*t;
calc=calc + A3*B2*C*si3*t;
calc=calc - A*B3*C*si3*t;
calc=calc + A2*B3*C*si3*t;
calc=calc - 3*A*B2*C2*si3*t;
calc=calc + 3*A2*B2*C2*si3*t;
calc=calc - B3*C2*si3*t;
calc=calc + 4*A*B3*C2*si3*t;
calc=calc - 2*B2*C3*si3*t;
calc=calc + 3*A*B2*C3*si3*t;
calc=calc + B2*C4*si3*t;
calc=calc - A3*B*C*ri*si3*t;
calc=calc + A4*B*C*ri*si3*t;
calc=calc + A2*B2*C*ri*si3*t;
calc=calc - A3*B2*C*ri*si3*t;
calc=calc + 2*A*B3*C*ri*si3*t;
calc=calc - 2*A2*B3*C*ri*si3*t;
calc=calc - 2*A2*B*C2*ri*si3*t;
calc=calc + 3*A3*B*C2*ri*si3*t;
calc=calc + 5*A*B2*C2*ri*si3*t;
calc=calc + B3*C2*ri*si3*t;
calc=calc - 6*A*B3*C2*ri*si3*t;
calc=calc + 3*A2*B*C3*ri*si3*t;
calc=calc + 2*B2*C3*ri*si3*t;
calc=calc - 5*A*B2*C3*ri*si3*t;
calc=calc + B*C4*ri*si3*t;
calc=calc + A*B*C4*ri*si3*t;
calc=calc + 2*A3*B*C*ri2*si3*t;
calc=calc - 2*A4*B*C*ri2*si3*t;
calc=calc + A2*B2*C*ri2*si3*t;
calc=calc - A3*B2*C*ri2*si3*t;
calc=calc - A*B3*C*ri2*si3*t;
calc=calc + A2*B3*C*ri2*si3*t;
calc=calc + A3*C2*ri2*si3*t;
calc=calc + 5*A2*B*C2*ri2*si3*t;
calc=calc - 4*A3*B*C2*ri2*si3*t;
calc=calc - 2*A*B2*C2*ri2*si3*t;
calc=calc - 5*A2*B2*C2*ri2*si3*t;
calc=calc + 2*A*B3*C2*ri2*si3*t;
calc=calc + 2*A2*C3*ri2*si3*t;
calc=calc - 5*A2*B*C3*ri2*si3*t;
calc=calc + 2*A*B2*C3*ri2*si3*t;
calc=calc + A*C4*ri2*si3*t;
calc=calc - A3*B*C*ri3*si3*t;
calc=calc + A4*B*C*ri3*si3*t;
calc=calc - A2*B2*C*ri3*si3*t;
calc=calc + A3*B2*C*ri3*si3*t;
calc=calc - A3*C2*ri3*si3*t;
calc=calc - 3*A2*B*C2*ri3*si3*t;
calc=calc + A3*B*C2*ri3*si3*t;
calc=calc + 2*A2*B2*C2*ri3*si3*t;
calc=calc - 2*A2*C3*ri3*si3*t;
calc=calc + 2*A2*B*C3*ri3*si3*t;
calc=calc + A4*t2;
calc=calc + 4*A3*B*t2;
calc=calc + 6*A2*B2*t2;
calc=calc + 4*A*B3*t2;
calc=calc + B4*t2;
calc=calc + 4*A3*C*t2;
calc=calc + 12*A2*B*C*t2;
calc=calc + 12*A*B2*C*t2;
calc=calc + 4*B3*C*t2;
calc=calc + 6*A2*C2*t2;
calc=calc + 12*A*B*C2*t2;
calc=calc + 6*B2*C2*t2;
calc=calc + 4*A*C3*t2;
calc=calc + 4*B*C3*t2;
calc=calc + C4*t2;
calc=calc - 2*A4*ri*t2;
calc=calc - 8*A3*B*ri*t2;
calc=calc - 12*A2*B2*ri*t2;
calc=calc - 8*A*B3*ri*t2;
calc=calc - 2*B4*ri*t2;
calc=calc - 6*A3*C*ri*t2;
calc=calc + 2*A4*C*ri*t2;
calc=calc - 18*A2*B*C*ri*t2;
calc=calc + 9*A3*B*C*ri*t2;
calc=calc - 18*A*B2*C*ri*t2;
calc=calc + 15*A2*B2*C*ri*t2;
calc=calc - 6*B3*C*ri*t2;
calc=calc + 11*A*B3*C*ri*t2;
calc=calc + 3*B4*C*ri*t2;
calc=calc - 6*A2*C2*ri*t2;
calc=calc + 6*A3*C2*ri*t2;
calc=calc - 12*A*B*C2*ri*t2;
calc=calc + 21*A2*B*C2*ri*t2;
calc=calc - 6*B2*C2*ri*t2;
calc=calc + 24*A*B2*C2*ri*t2;
calc=calc + 9*B3*C2*ri*t2;
calc=calc - 2*A*C3*ri*t2;
calc=calc + 6*A2*C3*ri*t2;
calc=calc - 2*B*C3*ri*t2;
calc=calc + 15*A*B*C3*ri*t2;
calc=calc + 9*B2*C3*ri*t2;
calc=calc + 2*A*C4*ri*t2;
calc=calc + 3*B*C4*ri*t2;
calc=calc + A4*ri2*t2;
calc=calc + 4*A3*B*ri2*t2;
calc=calc + 6*A2*B2*ri2*t2;
calc=calc + 4*A*B3*ri2*t2;
calc=calc + B4*ri2*t2;
calc=calc + A3*C*ri2*t2;
calc=calc - 4*A4*C*ri2*t2;
calc=calc + 3*A2*B*C*ri2*t2;
calc=calc - 17*A3*B*C*ri2*t2;
calc=calc + 3*A*B2*C*ri2*t2;
calc=calc - 27*A2*B2*C*ri2*t2;
calc=calc + B3*C*ri2*t2;
calc=calc - 19*A*B3*C*ri2*t2;
calc=calc - 5*B4*C*ri2*t2;
calc=calc - A2*C2*ri2*t2;
calc=calc - 11*A3*C2*ri2*t2;
calc=calc - 2*A*B*C2*ri2*t2;
calc=calc - 33*A2*B*C2*ri2*t2;
calc=calc + A3*B*C2*ri2*t2;
calc=calc - B2*C2*ri2*t2;
calc=calc - 33*A*B2*C2*ri2*t2;
calc=calc + 3*A2*B2*C2*ri2*t2;
calc=calc - 11*B3*C2*ri2*t2;
calc=calc + 3*A*B3*C2*ri2*t2;
calc=calc + B4*C2*ri2*t2;
calc=calc - A*C3*ri2*t2;
calc=calc - 7*A2*C3*ri2*t2;
calc=calc - B*C3*ri2*t2;
calc=calc - 13*A*B*C3*ri2*t2;
calc=calc + 2*A2*B*C3*ri2*t2;
calc=calc - 6*B2*C3*ri2*t2;
calc=calc + 4*A*B2*C3*ri2*t2;
calc=calc + 2*B3*C3*ri2*t2;
calc=calc + A*B*C4*ri2*t2;
calc=calc + B2*C4*ri2*t2;
calc=calc + A3*C*ri3*t2;
calc=calc + 2*A4*C*ri3*t2;
calc=calc + 3*A2*B*C*ri3*t2;
calc=calc + 8*A3*B*C*ri3*t2;
calc=calc + 3*A*B2*C*ri3*t2;
calc=calc + 12*A2*B2*C*ri3*t2;
calc=calc + B3*C*ri3*t2;
calc=calc + 8*A*B3*C*ri3*t2;
calc=calc + 2*B4*C*ri3*t2;
calc=calc + A2*C2*ri3*t2;
calc=calc + 5*A3*C2*ri3*t2;
calc=calc + 2*A*B*C2*ri3*t2;
calc=calc + 12*A2*B*C2*ri3*t2;
calc=calc - A3*B*C2*ri3*t2;
calc=calc + B2*C2*ri3*t2;
calc=calc + 9*A*B2*C2*ri3*t2;
calc=calc - 3*A2*B2*C2*ri3*t2;
calc=calc + 2*B3*C2*ri3*t2;
calc=calc - 3*A*B3*C2*ri3*t2;
calc=calc - B4*C2*ri3*t2;
calc=calc - A*B*C3*ri3*t2;
calc=calc - 3*A2*B*C3*ri3*t2;
calc=calc - B2*C3*ri3*t2;
calc=calc - 4*A*B2*C3*ri3*t2;
calc=calc - B3*C3*ri3*t2;
calc=calc - 2*A4*si*t2;
calc=calc - 6*A3*B*si*t2;
calc=calc - A4*B*si*t2;
calc=calc - 6*A2*B2*si*t2;
calc=calc - 3*A3*B2*si*t2;
calc=calc - 2*A*B3*si*t2;
calc=calc - 3*A2*B3*si*t2;
calc=calc - A*B4*si*t2;
calc=calc - 8*A3*C*si*t2;
calc=calc - 18*A2*B*C*si*t2;
calc=calc - 6*A3*B*C*si*t2;
calc=calc - 12*A*B2*C*si*t2;
calc=calc - 15*A2*B2*C*si*t2;
calc=calc - 2*B3*C*si*t2;
calc=calc - 12*A*B3*C*si*t2;
calc=calc - 3*B4*C*si*t2;
calc=calc - 12*A2*C2*si*t2;
calc=calc - 18*A*B*C2*si*t2;
calc=calc - 12*A2*B*C2*si*t2;
calc=calc - 6*B2*C2*si*t2;
calc=calc - 21*A*B2*C2*si*t2;
calc=calc - 9*B3*C2*si*t2;
calc=calc - 8*A*C3*si*t2;
calc=calc - 6*B*C3*si*t2;
calc=calc - 10*A*B*C3*si*t2;
calc=calc - 9*B2*C3*si*t2;
calc=calc - 2*C4*si*t2;
calc=calc - 3*B*C4*si*t2;
calc=calc + 4*A4*ri*si*t2;
calc=calc + 11*A3*B*ri*si*t2;
calc=calc + 2*A4*B*ri*si*t2;
calc=calc + 9*A2*B2*ri*si*t2;
calc=calc + 6*A3*B2*ri*si*t2;
calc=calc + A*B3*ri*si*t2;
calc=calc + 6*A2*B3*ri*si*t2;
calc=calc - B4*ri*si*t2;
calc=calc + 2*A*B4*ri*si*t2;
calc=calc + 11*A3*C*ri*si*t2;
calc=calc - 4*A4*C*ri*si*t2;
calc=calc + 22*A2*B*C*ri*si*t2;
calc=calc - 6*A3*B*C*ri*si*t2;
calc=calc - A4*B*C*ri*si*t2;
calc=calc + 11*A*B2*C*ri*si*t2;
calc=calc + 5*A2*B2*C*ri*si*t2;
calc=calc - 3*A3*B2*C*ri*si*t2;
calc=calc + 12*A*B3*C*ri*si*t2;
calc=calc - 3*A2*B3*C*ri*si*t2;
calc=calc + 5*B4*C*ri*si*t2;
calc=calc - A*B4*C*ri*si*t2;
calc=calc + 9*A2*C2*ri*si*t2;
calc=calc - 12*A3*C2*ri*si*t2;
calc=calc + 11*A*B*C2*ri*si*t2;
calc=calc - 16*A2*B*C2*ri*si*t2;
calc=calc - 3*A3*B*C2*ri*si*t2;
calc=calc + 2*B2*C2*ri*si*t2;
calc=calc + 4*A*B2*C2*ri*si*t2;
calc=calc - 8*A2*B2*C2*ri*si*t2;
calc=calc + 8*B3*C2*ri*si*t2;
calc=calc - 7*A*B3*C2*ri*si*t2;
calc=calc - 2*B4*C2*ri*si*t2;
calc=calc + A*C3*ri*si*t2;
calc=calc - 12*A2*C3*ri*si*t2;
calc=calc - 12*A*B*C3*ri*si*t2;
calc=calc - 3*A2*B*C3*ri*si*t2;
calc=calc - B2*C3*ri*si*t2;
calc=calc - 7*A*B2*C3*ri*si*t2;
calc=calc - 4*B3*C3*ri*si*t2;
calc=calc - C4*ri*si*t2;
calc=calc - 4*A*C4*ri*si*t2;
calc=calc - 4*B*C4*ri*si*t2;
calc=calc - A*B*C4*ri*si*t2;
calc=calc - 2*B2*C4*ri*si*t2;
calc=calc - 2*A4*ri2*si*t2;
calc=calc - 4*A3*B*ri2*si*t2;
calc=calc - A4*B*ri2*si*t2;
calc=calc - 3*A3*B2*ri2*si*t2;
calc=calc + 4*A*B3*ri2*si*t2;
calc=calc - 3*A2*B3*ri2*si*t2;
calc=calc + 2*B4*ri2*si*t2;
calc=calc - A*B4*ri2*si*t2;
calc=calc - A3*C*ri2*si*t2;
calc=calc + 8*A4*C*ri2*si*t2;
calc=calc + 2*A2*B*C*ri2*si*t2;
calc=calc + 26*A3*B*C*ri2*si*t2;
calc=calc + 2*A4*B*C*ri2*si*t2;
calc=calc + 7*A*B2*C*ri2*si*t2;
calc=calc + 25*A2*B2*C*ri2*si*t2;
calc=calc + 6*A3*B2*C*ri2*si*t2;
calc=calc + 4*B3*C*ri2*si*t2;
calc=calc + 4*A*B3*C*ri2*si*t2;
calc=calc + 6*A2*B3*C*ri2*si*t2;
calc=calc - 3*B4*C*ri2*si*t2;
calc=calc + 2*A*B4*C*ri2*si*t2;
calc=calc + 4*A2*C2*ri2*si*t2;
calc=calc + 20*A3*C2*ri2*si*t2;
calc=calc + 9*A*B*C2*ri2*si*t2;
calc=calc + 39*A2*B*C2*ri2*si*t2;
calc=calc + 2*A3*B*C2*ri2*si*t2;
calc=calc + 5*B2*C2*ri2*si*t2;
calc=calc + 18*A*B2*C2*ri2*si*t2;
calc=calc + 4*A2*B2*C2*ri2*si*t2;
calc=calc - B3*C2*ri2*si*t2;
calc=calc + 4*A*B3*C2*ri2*si*t2;
calc=calc + 2*B4*C2*ri2*si*t2;
calc=calc + 3*A*C3*ri2*si*t2;
calc=calc + 10*A2*C3*ri2*si*t2;
calc=calc + 3*B*C3*ri2*si*t2;
calc=calc + 13*A*B*C3*ri2*si*t2;
calc=calc + A2*B*C3*ri2*si*t2;
calc=calc + 3*B2*C3*ri2*si*t2;
calc=calc + 3*A*B2*C3*ri2*si*t2;
calc=calc + B3*C3*ri2*si*t2;
calc=calc - 2*A*C4*ri2*si*t2;
calc=calc - 2*B*C4*ri2*si*t2;
calc=calc - 2*A*B*C4*ri2*si*t2;
calc=calc - B2*C4*ri2*si*t2;
calc=calc - A3*B*ri3*si*t2;
calc=calc - 3*A2*B2*ri3*si*t2;
calc=calc - 3*A*B3*ri3*si*t2;
calc=calc - B4*ri3*si*t2;
calc=calc - 2*A3*C*ri3*si*t2;
calc=calc - 4*A4*C*ri3*si*t2;
calc=calc - 6*A2*B*C*ri3*si*t2;
calc=calc - 14*A3*B*C*ri3*si*t2;
calc=calc - A4*B*C*ri3*si*t2;
calc=calc - 6*A*B2*C*ri3*si*t2;
calc=calc - 15*A2*B2*C*ri3*si*t2;
calc=calc - 3*A3*B2*C*ri3*si*t2;
calc=calc - 2*B3*C*ri3*si*t2;
calc=calc - 4*A*B3*C*ri3*si*t2;
calc=calc - 3*A2*B3*C*ri3*si*t2;
calc=calc + B4*C*ri3*si*t2;
calc=calc - A*B4*C*ri3*si*t2;
calc=calc - A2*C2*ri3*si*t2;
calc=calc - 8*A3*C2*ri3*si*t2;
calc=calc - 2*A*B*C2*ri3*si*t2;
calc=calc - 11*A2*B*C2*ri3*si*t2;
calc=calc + A3*B*C2*ri3*si*t2;
calc=calc - B2*C2*ri3*si*t2;
calc=calc - A*B2*C2*ri3*si*t2;
calc=calc + 4*A2*B2*C2*ri3*si*t2;
calc=calc + 2*B3*C2*ri3*si*t2;
calc=calc + 3*A*B3*C2*ri3*si*t2;
calc=calc + A*C3*ri3*si*t2;
calc=calc + 5*A2*C3*ri3*si*t2;
calc=calc + 6*A*B*C3*ri3*si*t2;
calc=calc + 5*A2*B*C3*ri3*si*t2;
calc=calc + B2*C3*ri3*si*t2;
calc=calc + 4*A*B2*C3*ri3*si*t2;
calc=calc + A4*si2*t2;
calc=calc + A3*B*si2*t2;
calc=calc + 2*A4*B*si2*t2;
calc=calc - A2*B2*si2*t2;
calc=calc + 4*A3*B2*si2*t2;
calc=calc - A*B3*si2*t2;
calc=calc + 2*A2*B3*si2*t2;
calc=calc + 4*A3*C*si2*t2;
calc=calc + 3*A2*B*C*si2*t2;
calc=calc + 10*A3*B*C*si2*t2;
calc=calc - 2*A*B2*C*si2*t2;
calc=calc + 18*A2*B2*C*si2*t2;
calc=calc + A3*B2*C*si2*t2;
calc=calc - B3*C*si2*t2;
calc=calc + 8*A*B3*C*si2*t2;
calc=calc + 2*A2*B3*C*si2*t2;
calc=calc + A*B4*C*si2*t2;
calc=calc + 6*A2*C2*si2*t2;
calc=calc + 3*A*B*C2*si2*t2;
calc=calc + 18*A2*B*C2*si2*t2;
calc=calc - B2*C2*si2*t2;
calc=calc + 21*A*B2*C2*si2*t2;
calc=calc + 3*A2*B2*C2*si2*t2;
calc=calc + 3*B3*C2*si2*t2;
calc=calc + 4*A*B3*C2*si2*t2;
calc=calc + B4*C2*si2*t2;
calc=calc + 4*A*C3*si2*t2;
calc=calc + B*C3*si2*t2;
calc=calc + 14*A*B*C3*si2*t2;
calc=calc + 7*B2*C3*si2*t2;
calc=calc + 3*A*B2*C3*si2*t2;
calc=calc + 2*B3*C3*si2*t2;
calc=calc + C4*si2*t2;
calc=calc + 4*B*C4*si2*t2;
calc=calc + B2*C4*si2*t2;
calc=calc - 2*A4*ri*si2*t2;
calc=calc - A3*B*ri*si2*t2;
calc=calc - 4*A4*B*ri*si2*t2;
calc=calc + 4*A2*B2*ri*si2*t2;
calc=calc - 7*A3*B2*ri*si2*t2;
calc=calc + 3*A*B3*ri*si2*t2;
calc=calc - 2*A2*B3*ri*si2*t2;
calc=calc + A*B4*ri*si2*t2;
calc=calc - 4*A3*C*ri*si2*t2;
calc=calc + 2*A4*C*ri*si2*t2;
calc=calc + 2*A2*B*C*ri*si2*t2;
calc=calc - 10*A3*B*C*ri*si2*t2;
calc=calc + 2*A4*B*C*ri*si2*t2;
calc=calc + 9*A*B2*C*ri*si2*t2;
calc=calc - 24*A2*B2*C*ri*si2*t2;
calc=calc + 2*A3*B2*C*ri*si2*t2;
calc=calc + 3*B3*C*ri*si2*t2;
calc=calc - 11*A*B3*C*ri*si2*t2;
calc=calc - 2*A2*B3*C*ri*si2*t2;
calc=calc + B4*C*ri*si2*t2;
calc=calc - 2*A*B4*C*ri*si2*t2;
calc=calc + 6*A3*C2*ri*si2*t2;
calc=calc + 7*A*B*C2*ri*si2*t2;
calc=calc - 14*A2*B*C2*ri*si2*t2;
calc=calc + 6*A3*B*C2*ri*si2*t2;
calc=calc + 5*B2*C2*ri*si2*t2;
calc=calc - 21*A*B2*C2*ri*si2*t2;
calc=calc + 10*A2*B2*C2*ri*si2*t2;
calc=calc - 3*B3*C2*ri*si2*t2;
calc=calc + 3*A*B3*C2*ri*si2*t2;
calc=calc - B4*C2*ri*si2*t2;
calc=calc + 4*A*C3*ri*si2*t2;
calc=calc + 6*A2*C3*ri*si2*t2;
calc=calc + 4*B*C3*ri*si2*t2;
calc=calc - 5*A*B*C3*ri*si2*t2;
calc=calc + 6*A2*B*C3*ri*si2*t2;
calc=calc - 4*B2*C3*ri*si2*t2;
calc=calc + 4*A*B2*C3*ri*si2*t2;
calc=calc + B3*C3*ri*si2*t2;
calc=calc + 2*C4*ri*si2*t2;
calc=calc + 2*A*C4*ri*si2*t2;
calc=calc + 3*B*C4*ri*si2*t2;
calc=calc + 2*A*B*C4*ri*si2*t2;
calc=calc + 2*B2*C4*ri*si2*t2;
calc=calc + A4*ri2*si2*t2;
calc=calc - A3*B*ri2*si2*t2;
calc=calc + 2*A4*B*ri2*si2*t2;
calc=calc - 5*A2*B2*ri2*si2*t2;
calc=calc + 2*A3*B2*ri2*si2*t2;
calc=calc - 3*A*B3*ri2*si2*t2;
calc=calc - 2*A2*B3*ri2*si2*t2;
calc=calc - 2*A*B4*ri2*si2*t2;
calc=calc - A3*C*ri2*si2*t2;
calc=calc - 4*A4*C*ri2*si2*t2;
calc=calc - 6*A2*B*C*ri2*si2*t2;
calc=calc - 5*A3*B*C*ri2*si2*t2;
calc=calc - 4*A4*B*C*ri2*si2*t2;
calc=calc - 7*A*B2*C*ri2*si2*t2;
calc=calc + 5*A2*B2*C*ri2*si2*t2;
calc=calc - 7*A3*B2*C*ri2*si2*t2;
calc=calc - 2*B3*C*ri2*si2*t2;
calc=calc + 5*A*B3*C*ri2*si2*t2;
calc=calc - 2*A2*B3*C*ri2*si2*t2;
calc=calc - B4*C*ri2*si2*t2;
calc=calc + A*B4*C*ri2*si2*t2;
calc=calc - 5*A2*C2*ri2*si2*t2;
calc=calc - 7*A3*C2*ri2*si2*t2;
calc=calc - 7*A*B*C2*ri2*si2*t2;
calc=calc + 5*A2*B*C2*ri2*si2*t2;
calc=calc - 7*A3*B*C2*ri2*si2*t2;
calc=calc - 4*B2*C2*ri2*si2*t2;
calc=calc + 8*A*B2*C2*ri2*si2*t2;
calc=calc - 14*A2*B2*C2*ri2*si2*t2;
calc=calc - 7*A*B3*C2*ri2*si2*t2;
calc=calc - 3*A*C3*ri2*si2*t2;
calc=calc + A2*C3*ri2*si2*t2;
calc=calc - 2*B*C3*ri2*si2*t2;
calc=calc - A*B*C3*ri2*si2*t2;
calc=calc - 8*A2*B*C3*ri2*si2*t2;
calc=calc + 3*B2*C3*ri2*si2*t2;
calc=calc - 7*A*B2*C3*ri2*si2*t2;
calc=calc + 4*A*C4*ri2*si2*t2;
calc=calc + 2*B*C4*ri2*si2*t2;
calc=calc + A*B*C4*ri2*si2*t2;
calc=calc + A3*B*ri3*si2*t2;
calc=calc + 2*A2*B2*ri3*si2*t2;
calc=calc + A3*B2*ri3*si2*t2;
calc=calc + A*B3*ri3*si2*t2;
calc=calc + 2*A2*B3*ri3*si2*t2;
calc=calc + A*B4*ri3*si2*t2;
calc=calc + A3*C*ri3*si2*t2;
calc=calc + 2*A4*C*ri3*si2*t2;
calc=calc + A2*B*C*ri3*si2*t2;
calc=calc + 5*A3*B*C*ri3*si2*t2;
calc=calc + 2*A4*B*C*ri3*si2*t2;
calc=calc + A2*B2*C*ri3*si2*t2;
calc=calc + 4*A3*B2*C*ri3*si2*t2;
calc=calc - 2*A*B3*C*ri3*si2*t2;
calc=calc + 2*A2*B3*C*ri3*si2*t2;
calc=calc - A2*C2*ri3*si2*t2;
calc=calc + A3*C2*ri3*si2*t2;
calc=calc - 3*A*B*C2*ri3*si2*t2;
calc=calc - 9*A2*B*C2*ri3*si2*t2;
calc=calc + A3*B*C2*ri3*si2*t2;
calc=calc - 8*A*B2*C2*ri3*si2*t2;
calc=calc + A2*B2*C2*ri3*si2*t2;
calc=calc - 2*A*C3*ri3*si2*t2;
calc=calc - 10*A2*C3*ri3*si2*t2;
calc=calc - 5*A*B*C3*ri3*si2*t2;
calc=calc - A2*B*C3*ri3*si2*t2;
calc=calc + A3*B*si3*t2;
calc=calc - A4*B*si3*t2;
calc=calc + A2*B2*si3*t2;
calc=calc - A3*B2*si3*t2;
calc=calc + 3*A2*B*C*si3*t2;
calc=calc - 4*A3*B*C*si3*t2;
calc=calc + 2*A*B2*C*si3*t2;
calc=calc - 3*A2*B2*C*si3*t2;
calc=calc - A3*B2*C*si3*t2;
calc=calc + 2*A*B3*C*si3*t2;
calc=calc + 3*A*B*C2*si3*t2;
calc=calc - 6*A2*B*C2*si3*t2;
calc=calc + B2*C2*si3*t2;
calc=calc - 3*A2*B2*C2*si3*t2;
calc=calc + 2*B3*C2*si3*t2;
calc=calc - 4*A*B3*C2*si3*t2;
calc=calc + B*C3*si3*t2;
calc=calc - 4*A*B*C3*si3*t2;
calc=calc + 2*B2*C3*si3*t2;
calc=calc - 3*A*B2*C3*si3*t2;
calc=calc - B3*C3*si3*t2;
calc=calc - B*C4*si3*t2;
calc=calc - B2*C4*si3*t2;
calc=calc - 2*A3*B*ri*si3*t2;
calc=calc + 2*A4*B*ri*si3*t2;
calc=calc - A2*B2*ri*si3*t2;
calc=calc + A3*B2*ri*si3*t2;
calc=calc + A*B3*ri*si3*t2;
calc=calc - A2*B3*ri*si3*t2;
calc=calc - A3*C*ri*si3*t2;
calc=calc - 6*A2*B*C*ri*si3*t2;
calc=calc + 7*A3*B*C*ri*si3*t2;
calc=calc - A4*B*C*ri*si3*t2;
calc=calc - 2*A*B2*C*ri*si3*t2;
calc=calc + 4*A2*B2*C*ri*si3*t2;
calc=calc + A3*B2*C*ri*si3*t2;
calc=calc - 6*A*B3*C*ri*si3*t2;
calc=calc - A2*B3*C*ri*si3*t2;
calc=calc - 3*A2*C2*ri*si3*t2;
calc=calc - 6*A*B*C2*ri*si3*t2;
calc=calc + 9*A2*B*C2*ri*si3*t2;
calc=calc - 3*A3*B*C2*ri*si3*t2;
calc=calc - B2*C2*ri*si3*t2;
calc=calc - 7*A*B2*C2*ri*si3*t2;
calc=calc - 2*A2*B2*C2*ri*si3*t2;
calc=calc - 2*B3*C2*ri*si3*t2;
calc=calc + 4*A*B3*C2*ri*si3*t2;
calc=calc - 3*A*C3*ri*si3*t2;
calc=calc - 2*B*C3*ri*si3*t2;
calc=calc + 2*A*B*C3*ri*si3*t2;
calc=calc - 3*A2*B*C3*ri*si3*t2;
calc=calc - 4*B2*C3*ri*si3*t2;
calc=calc + 3*A*B2*C3*ri*si3*t2;
calc=calc - C4*ri*si3*t2;
calc=calc - 2*B*C4*ri*si3*t2;
calc=calc - A*B*C4*ri*si3*t2;
calc=calc + A3*B*ri2*si3*t2;
calc=calc - A4*B*ri2*si3*t2;
calc=calc - A2*B2*ri2*si3*t2;
calc=calc + A3*B2*ri2*si3*t2;
calc=calc - 2*A*B3*ri2*si3*t2;
calc=calc + 2*A2*B3*ri2*si3*t2;
calc=calc + A3*C*ri2*si3*t2;
calc=calc + A2*B*C*ri2*si3*t2;
calc=calc - 4*A3*B*C*ri2*si3*t2;
calc=calc + 2*A4*B*C*ri2*si3*t2;
calc=calc - 3*A*B2*C*ri2*si3*t2;
calc=calc - 3*A2*B2*C*ri2*si3*t2;
calc=calc + A3*B2*C*ri2*si3*t2;
calc=calc + 4*A*B3*C*ri2*si3*t2;
calc=calc + 2*A2*B3*C*ri2*si3*t2;
calc=calc + 2*A2*C2*ri2*si3*t2;
calc=calc - 2*A3*C2*ri2*si3*t2;
calc=calc - 11*A2*B*C2*ri2*si3*t2;
calc=calc + 4*A3*B*C2*ri2*si3*t2;
calc=calc + 7*A*B2*C2*ri2*si3*t2;
calc=calc + 7*A2*B2*C2*ri2*si3*t2;
calc=calc + A*C3*ri2*si3*t2;
calc=calc - 4*A2*C3*ri2*si3*t2;
calc=calc + A*B*C3*ri2*si3*t2;
calc=calc + 5*A2*B*C3*ri2*si3*t2;
calc=calc - 2*A*C4*ri2*si3*t2;
calc=calc + A2*B2*ri3*si3*t2;
calc=calc - A3*B2*ri3*si3*t2;
calc=calc + A*B3*ri3*si3*t2;
calc=calc - A2*B3*ri3*si3*t2;
calc=calc + 2*A2*B*C*ri3*si3*t2;
calc=calc + A3*B*C*ri3*si3*t2;
calc=calc - A4*B*C*ri3*si3*t2;
calc=calc + 3*A*B2*C*ri3*si3*t2;
calc=calc + 2*A2*B2*C*ri3*si3*t2;
calc=calc - A3*B2*C*ri3*si3*t2;
calc=calc - A2*B3*C*ri3*si3*t2;
calc=calc + A2*C2*ri3*si3*t2;
calc=calc + 2*A3*C2*ri3*si3*t2;
calc=calc + 3*A*B*C2*ri3*si3*t2;
calc=calc + 8*A2*B*C2*ri3*si3*t2;
calc=calc - A3*B*C2*ri3*si3*t2;
calc=calc - 2*A2*B2*C2*ri3*si3*t2;
calc=calc + A*C3*ri3*si3*t2;
calc=calc + 5*A2*C3*ri3*si3*t2;
calc=calc - A2*B*C3*ri3*si3*t2;
calc=calc - 2*A4*t3;
calc=calc - 8*A3*B*t3;
calc=calc - 12*A2*B2*t3;
calc=calc - 8*A*B3*t3;
calc=calc - 2*B4*t3;
calc=calc - 8*A3*C*t3;
calc=calc - 24*A2*B*C*t3;
calc=calc - 24*A*B2*C*t3;
calc=calc - 8*B3*C*t3;
calc=calc - 12*A2*C2*t3;
calc=calc - 24*A*B*C2*t3;
calc=calc - 12*B2*C2*t3;
calc=calc - 8*A*C3*t3;
calc=calc - 8*B*C3*t3;
calc=calc - 2*C4*t3;
calc=calc + 4*A4*ri*t3;
calc=calc + 16*A3*B*ri*t3;
calc=calc + 24*A2*B2*ri*t3;
calc=calc + 16*A*B3*ri*t3;
calc=calc + 4*B4*ri*t3;
calc=calc + 12*A3*C*ri*t3;
calc=calc - A4*C*ri*t3;
calc=calc + 36*A2*B*C*ri*t3;
calc=calc - 5*A3*B*C*ri*t3;
calc=calc + 36*A*B2*C*ri*t3;
calc=calc - 9*A2*B2*C*ri*t3;
calc=calc + 12*B3*C*ri*t3;
calc=calc - 7*A*B3*C*ri*t3;
calc=calc - 2*B4*C*ri*t3;
calc=calc + 12*A2*C2*ri*t3;
calc=calc - 3*A3*C2*ri*t3;
calc=calc + 24*A*B*C2*ri*t3;
calc=calc - 12*A2*B*C2*ri*t3;
calc=calc + 12*B2*C2*ri*t3;
calc=calc - 15*A*B2*C2*ri*t3;
calc=calc - 6*B3*C2*ri*t3;
calc=calc + 4*A*C3*ri*t3;
calc=calc - 3*A2*C3*ri*t3;
calc=calc + 4*B*C3*ri*t3;
calc=calc - 9*A*B*C3*ri*t3;
calc=calc - 6*B2*C3*ri*t3;
calc=calc - A*C4*ri*t3;
calc=calc - 2*B*C4*ri*t3;
calc=calc - 2*A4*ri2*t3;
calc=calc - 8*A3*B*ri2*t3;
calc=calc - 12*A2*B2*ri2*t3;
calc=calc - 8*A*B3*ri2*t3;
calc=calc - 2*B4*ri2*t3;
calc=calc - 2*A3*C*ri2*t3;
calc=calc + 2*A4*C*ri2*t3;
calc=calc - 6*A2*B*C*ri2*t3;
calc=calc + 9*A3*B*C*ri2*t3;
calc=calc - 6*A*B2*C*ri2*t3;
calc=calc + 15*A2*B2*C*ri2*t3;
calc=calc - 2*B3*C*ri2*t3;
calc=calc + 11*A*B3*C*ri2*t3;
calc=calc + 3*B4*C*ri2*t3;
calc=calc + 2*A2*C2*ri2*t3;
calc=calc + 7*A3*C2*ri2*t3;
calc=calc + 4*A*B*C2*ri2*t3;
calc=calc + 19*A2*B*C2*ri2*t3;
calc=calc + 2*B2*C2*ri2*t3;
calc=calc + 18*A*B2*C2*ri2*t3;
calc=calc + 6*B3*C2*ri2*t3;
calc=calc + 2*A*C3*ri2*t3;
calc=calc + 5*A2*C3*ri2*t3;
calc=calc + 2*B*C3*ri2*t3;
calc=calc + 7*A*B*C3*ri2*t3;
calc=calc + 3*B2*C3*ri2*t3;
calc=calc - 2*A3*C*ri3*t3;
calc=calc - A4*C*ri3*t3;
calc=calc - 6*A2*B*C*ri3*t3;
calc=calc - 4*A3*B*C*ri3*t3;
calc=calc - 6*A*B2*C*ri3*t3;
calc=calc - 6*A2*B2*C*ri3*t3;
calc=calc - 2*B3*C*ri3*t3;
calc=calc - 4*A*B3*C*ri3*t3;
calc=calc - B4*C*ri3*t3;
calc=calc - 2*A2*C2*ri3*t3;
calc=calc - 4*A3*C2*ri3*t3;
calc=calc - 4*A*B*C2*ri3*t3;
calc=calc - 7*A2*B*C2*ri3*t3;
calc=calc - 2*B2*C2*ri3*t3;
calc=calc - 3*A*B2*C2*ri3*t3;
calc=calc + A*B*C3*ri3*t3;
calc=calc + A2*B*C3*ri3*t3;
calc=calc + B2*C3*ri3*t3;
calc=calc + 4*A4*si*t3;
calc=calc + 12*A3*B*si*t3;
calc=calc + A4*B*si*t3;
calc=calc + 12*A2*B2*si*t3;
calc=calc + 3*A3*B2*si*t3;
calc=calc + 4*A*B3*si*t3;
calc=calc + 3*A2*B3*si*t3;
calc=calc + A*B4*si*t3;
calc=calc + 16*A3*C*si*t3;
calc=calc + 36*A2*B*C*si*t3;
calc=calc + 5*A3*B*C*si*t3;
calc=calc + 24*A*B2*C*si*t3;
calc=calc + 12*A2*B2*C*si*t3;
calc=calc + 4*B3*C*si*t3;
calc=calc + 9*A*B3*C*si*t3;
calc=calc + 2*B4*C*si*t3;
calc=calc + 24*A2*C2*si*t3;
calc=calc + 36*A*B*C2*si*t3;
calc=calc + 9*A2*B*C2*si*t3;
calc=calc + 12*B2*C2*si*t3;
calc=calc + 15*A*B2*C2*si*t3;
calc=calc + 6*B3*C2*si*t3;
calc=calc + 16*A*C3*si*t3;
calc=calc + 12*B*C3*si*t3;
calc=calc + 7*A*B*C3*si*t3;
calc=calc + 6*B2*C3*si*t3;
calc=calc + 4*C4*si*t3;
calc=calc + 2*B*C4*si*t3;
calc=calc - 8*A4*ri*si*t3;
calc=calc - 22*A3*B*ri*si*t3;
calc=calc - 2*A4*B*ri*si*t3;
calc=calc - 18*A2*B2*ri*si*t3;
calc=calc - 6*A3*B2*ri*si*t3;
calc=calc - 2*A*B3*ri*si*t3;
calc=calc - 6*A2*B3*ri*si*t3;
calc=calc + 2*B4*ri*si*t3;
calc=calc - 2*A*B4*ri*si*t3;
calc=calc - 22*A3*C*ri*si*t3;
calc=calc + 2*A4*C*ri*si*t3;
calc=calc - 44*A2*B*C*ri*si*t3;
calc=calc + 4*A3*B*C*ri*si*t3;
calc=calc - 22*A*B2*C*ri*si*t3;
calc=calc - 3*A2*B2*C*ri*si*t3;
calc=calc - 8*A*B3*C*ri*si*t3;
calc=calc - 3*B4*C*ri*si*t3;
calc=calc - 18*A2*C2*ri*si*t3;
calc=calc + 6*A3*C2*ri*si*t3;
calc=calc - 22*A*B*C2*ri*si*t3;
calc=calc + 11*A2*B*C2*ri*si*t3;
calc=calc - 4*B2*C2*ri*si*t3;
calc=calc - 3*B3*C2*ri*si*t3;
calc=calc - 2*A*C3*ri*si*t3;
calc=calc + 6*A2*C3*ri*si*t3;
calc=calc + 8*A*B*C3*ri*si*t3;
calc=calc + 3*B2*C3*ri*si*t3;
calc=calc + 2*C4*ri*si*t3;
calc=calc + 2*A*C4*ri*si*t3;
calc=calc + 3*B*C4*ri*si*t3;
calc=calc + 4*A4*ri2*si*t3;
calc=calc + 8*A3*B*ri2*si*t3;
calc=calc + A4*B*ri2*si*t3;
calc=calc + 3*A3*B2*ri2*si*t3;
calc=calc - 8*A*B3*ri2*si*t3;
calc=calc + 3*A2*B3*ri2*si*t3;
calc=calc - 4*B4*ri2*si*t3;
calc=calc + A*B4*ri2*si*t3;
calc=calc + 2*A3*C*ri2*si*t3;
calc=calc - 4*A4*C*ri2*si*t3;
calc=calc - 4*A2*B*C*ri2*si*t3;
calc=calc - 18*A3*B*C*ri2*si*t3;
calc=calc - 14*A*B2*C*ri2*si*t3;
calc=calc - 19*A2*B2*C*ri2*si*t3;
calc=calc - 8*B3*C*ri2*si*t3;
calc=calc - 3*A*B3*C*ri2*si*t3;
calc=calc + 2*B4*C*ri2*si*t3;
calc=calc - 8*A2*C2*ri2*si*t3;
calc=calc - 13*A3*C2*ri2*si*t3;
calc=calc - 18*A*B*C2*ri2*si*t3;
calc=calc - 25*A2*B*C2*ri2*si*t3;
calc=calc - 10*B2*C2*ri2*si*t3;
calc=calc - 13*A*B2*C2*ri2*si*t3;
calc=calc + 2*A2*B2*C2*ri2*si*t3;
calc=calc - B3*C2*ri2*si*t3;
calc=calc - 6*A*C3*ri2*si*t3;
calc=calc - 8*A2*C3*ri2*si*t3;
calc=calc - 6*B*C3*ri2*si*t3;
calc=calc - 8*A*B*C3*ri2*si*t3;
calc=calc - A2*B*C3*ri2*si*t3;
calc=calc - 2*B2*C3*ri2*si*t3;
calc=calc + A*C4*ri2*si*t3;
calc=calc + B*C4*ri2*si*t3;
calc=calc + 2*A3*B*ri3*si*t3;
calc=calc + 6*A2*B2*ri3*si*t3;
calc=calc + 6*A*B3*ri3*si*t3;
calc=calc + 2*B4*ri3*si*t3;
calc=calc + 4*A3*C*ri3*si*t3;
calc=calc + 2*A4*C*ri3*si*t3;
calc=calc + 12*A2*B*C*ri3*si*t3;
calc=calc + 9*A3*B*C*ri3*si*t3;
calc=calc + 12*A*B2*C*ri3*si*t3;
calc=calc + 10*A2*B2*C*ri3*si*t3;
calc=calc + 4*B3*C*ri3*si*t3;
calc=calc + 2*A*B3*C*ri3*si*t3;
calc=calc - B4*C*ri3*si*t3;
calc=calc + 2*A2*C2*ri3*si*t3;
calc=calc + 7*A3*C2*ri3*si*t3;
calc=calc + 4*A*B*C2*ri3*si*t3;
calc=calc + 5*A2*B*C2*ri3*si*t3;
calc=calc + 2*B2*C2*ri3*si*t3;
calc=calc - 2*A*B2*C2*ri3*si*t3;
calc=calc - 2*A2*B2*C2*ri3*si*t3;
calc=calc - 2*B3*C2*ri3*si*t3;
calc=calc - 2*A*C3*ri3*si*t3;
calc=calc - 4*A2*C3*ri3*si*t3;
calc=calc - 4*A*B*C3*ri3*si*t3;
calc=calc - 2*A2*B*C3*ri3*si*t3;
calc=calc - B2*C3*ri3*si*t3;
calc=calc - 2*A4*si2*t3;
calc=calc - 2*A3*B*si2*t3;
calc=calc - 2*A4*B*si2*t3;
calc=calc + 2*A2*B2*si2*t3;
calc=calc - 3*A3*B2*si2*t3;
calc=calc + 2*A*B3*si2*t3;
calc=calc - A2*B3*si2*t3;
calc=calc - 8*A3*C*si2*t3;
calc=calc - 6*A2*B*C*si2*t3;
calc=calc - 9*A3*B*C*si2*t3;
calc=calc + 4*A*B2*C*si2*t3;
calc=calc - 15*A2*B2*C*si2*t3;
calc=calc + 2*B3*C*si2*t3;
calc=calc - 7*A*B3*C*si2*t3;
calc=calc - 12*A2*C2*si2*t3;
calc=calc - 6*A*B*C2*si2*t3;
calc=calc - 15*A2*B*C2*si2*t3;
calc=calc + 2*B2*C2*si2*t3;
calc=calc - 18*A*B2*C2*si2*t3;
calc=calc - 3*B3*C2*si2*t3;
calc=calc - 8*A*C3*si2*t3;
calc=calc - 2*B*C3*si2*t3;
calc=calc - 11*A*B*C3*si2*t3;
calc=calc - 6*B2*C3*si2*t3;
calc=calc - 2*C4*si2*t3;
calc=calc - 3*B*C4*si2*t3;
calc=calc + 4*A4*ri*si2*t3;
calc=calc + 2*A3*B*ri*si2*t3;
calc=calc + 4*A4*B*ri*si2*t3;
calc=calc - 8*A2*B2*ri*si2*t3;
calc=calc + 5*A3*B2*ri*si2*t3;
calc=calc - 6*A*B3*ri*si2*t3;
calc=calc - A*B4*ri*si2*t3;
calc=calc + 8*A3*C*ri*si2*t3;
calc=calc - A4*C*ri*si2*t3;
calc=calc - 4*A2*B*C*ri*si2*t3;
calc=calc + 6*A3*B*C*ri*si2*t3;
calc=calc - 18*A*B2*C*ri*si2*t3;
calc=calc + 17*A2*B2*C*ri*si2*t3;
calc=calc - 6*B3*C*ri*si2*t3;
calc=calc + 8*A*B3*C*ri*si2*t3;
calc=calc + A2*B3*C*ri*si2*t3;
calc=calc - B4*C*ri*si2*t3;
calc=calc - 3*A3*C2*ri*si2*t3;
calc=calc - 14*A*B*C2*ri*si2*t3;
calc=calc + 7*A2*B*C2*ri*si2*t3;
calc=calc - 10*B2*C2*ri*si2*t3;
calc=calc + 13*A*B2*C2*ri*si2*t3;
calc=calc - 2*A2*B2*C2*ri*si2*t3;
calc=calc + 2*B3*C2*ri*si2*t3;
calc=calc - 8*A*C3*ri*si2*t3;
calc=calc - 3*A2*C3*ri*si2*t3;
calc=calc - 8*B*C3*ri*si2*t3;
calc=calc + 3*A*B*C3*ri*si2*t3;
calc=calc + B2*C3*ri*si2*t3;
calc=calc - 4*C4*ri*si2*t3;
calc=calc - A*C4*ri*si2*t3;
calc=calc - 2*B*C4*ri*si2*t3;
calc=calc - 2*A4*ri2*si2*t3;
calc=calc + 2*A3*B*ri2*si2*t3;
calc=calc - 2*A4*B*ri2*si2*t3;
calc=calc + 10*A2*B2*ri2*si2*t3;
calc=calc - A3*B2*ri2*si2*t3;
calc=calc + 6*A*B3*ri2*si2*t3;
calc=calc + 3*A2*B3*ri2*si2*t3;
calc=calc + 2*A*B4*ri2*si2*t3;
calc=calc + 2*A3*C*ri2*si2*t3;
calc=calc + 2*A4*C*ri2*si2*t3;
calc=calc + 12*A2*B*C*ri2*si2*t3;
calc=calc + 8*A3*B*C*ri2*si2*t3;
calc=calc + 14*A*B2*C*ri2*si2*t3;
calc=calc - 2*A2*B2*C*ri2*si2*t3;
calc=calc + 4*B3*C*ri2*si2*t3;
calc=calc - 2*A*B3*C*ri2*si2*t3;
calc=calc - 2*A2*B3*C*ri2*si2*t3;
calc=calc + B4*C*ri2*si2*t3;
calc=calc + 10*A2*C2*ri2*si2*t3;
calc=calc + 5*A3*C2*ri2*si2*t3;
calc=calc + 14*A*B*C2*ri2*si2*t3;
calc=calc - 2*A2*B*C2*ri2*si2*t3;
calc=calc + 8*B2*C2*ri2*si2*t3;
calc=calc + B3*C2*ri2*si2*t3;
calc=calc + 6*A*C3*ri2*si2*t3;
calc=calc + A2*C3*ri2*si2*t3;
calc=calc + 4*B*C3*ri2*si2*t3;
calc=calc + 2*A*B*C3*ri2*si2*t3;
calc=calc + 2*A2*B*C3*ri2*si2*t3;
calc=calc - B2*C3*ri2*si2*t3;
calc=calc - 2*A*C4*ri2*si2*t3;
calc=calc - B*C4*ri2*si2*t3;
calc=calc - 2*A3*B*ri3*si2*t3;
calc=calc - 4*A2*B2*ri3*si2*t3;
calc=calc - A3*B2*ri3*si2*t3;
calc=calc - 2*A*B3*ri3*si2*t3;
calc=calc - 2*A2*B3*ri3*si2*t3;
calc=calc - A*B4*ri3*si2*t3;
calc=calc - 2*A3*C*ri3*si2*t3;
calc=calc - A4*C*ri3*si2*t3;
calc=calc - 2*A2*B*C*ri3*si2*t3;
calc=calc - 5*A3*B*C*ri3*si2*t3;
calc=calc + A*B3*C*ri3*si2*t3;
calc=calc + A2*B3*C*ri3*si2*t3;
calc=calc + 2*A2*C2*ri3*si2*t3;
calc=calc - 2*A3*C2*ri3*si2*t3;
calc=calc + 6*A*B*C2*ri3*si2*t3;
calc=calc + 10*A2*B*C2*ri3*si2*t3;
calc=calc + 5*A*B2*C2*ri3*si2*t3;
calc=calc + 2*A2*B2*C2*ri3*si2*t3;
calc=calc + 4*A*C3*ri3*si2*t3;
calc=calc + 8*A2*C3*ri3*si2*t3;
calc=calc + 3*A*B*C3*ri3*si2*t3;
calc=calc + A2*B*C3*ri3*si2*t3;
calc=calc - 2*A3*B*si3*t3;
calc=calc + A4*B*si3*t3;
calc=calc - 2*A2*B2*si3*t3;
calc=calc - 6*A2*B*C*si3*t3;
calc=calc + 4*A3*B*C*si3*t3;
calc=calc - 4*A*B2*C*si3*t3;
calc=calc + 3*A2*B2*C*si3*t3;
calc=calc - A*B3*C*si3*t3;
calc=calc - A2*B3*C*si3*t3;
calc=calc - 6*A*B*C2*si3*t3;
calc=calc + 6*A2*B*C2*si3*t3;
calc=calc - 2*B2*C2*si3*t3;
calc=calc + 3*A*B2*C2*si3*t3;
calc=calc - B3*C2*si3*t3;
calc=calc - 2*B*C3*si3*t3;
calc=calc + 4*A*B*C3*si3*t3;
calc=calc + B*C4*si3*t3;
calc=calc + 4*A3*B*ri*si3*t3;
calc=calc - 2*A4*B*ri*si3*t3;
calc=calc + 2*A2*B2*ri*si3*t3;
calc=calc + A3*B2*ri*si3*t3;
calc=calc - 2*A*B3*ri*si3*t3;
calc=calc + 2*A3*C*ri*si3*t3;
calc=calc + 12*A2*B*C*ri*si3*t3;
calc=calc - 5*A3*B*C*ri*si3*t3;
calc=calc + 4*A*B2*C*ri*si3*t3;
calc=calc - 5*A2*B2*C*ri*si3*t3;
calc=calc + 4*A*B3*C*ri*si3*t3;
calc=calc + 2*A2*B3*C*ri*si3*t3;
calc=calc + 6*A2*C2*ri*si3*t3;
calc=calc + 12*A*B*C2*ri*si3*t3;
calc=calc - 6*A2*B*C2*ri*si3*t3;
calc=calc + 2*B2*C2*ri*si3*t3;
calc=calc + 2*A*B2*C2*ri*si3*t3;
calc=calc + 2*A2*B2*C2*ri*si3*t3;
calc=calc + B3*C2*ri*si3*t3;
calc=calc + 6*A*C3*ri*si3*t3;
calc=calc + 4*B*C3*ri*si3*t3;
calc=calc - 2*A*B*C3*ri*si3*t3;
calc=calc + 2*B2*C3*ri*si3*t3;
calc=calc + 2*C4*ri*si3*t3;
calc=calc + B*C4*ri*si3*t3;
calc=calc - 2*A3*B*ri2*si3*t3;
calc=calc + A4*B*ri2*si3*t3;
calc=calc + 2*A2*B2*ri2*si3*t3;
calc=calc - 2*A3*B2*ri2*si3*t3;
calc=calc + 4*A*B3*ri2*si3*t3;
calc=calc - 2*A3*C*ri2*si3*t3;
calc=calc - 2*A2*B*C*ri2*si3*t3;
calc=calc + A3*B*C*ri2*si3*t3;
calc=calc + 6*A*B2*C*ri2*si3*t3;
calc=calc + 6*A2*B2*C*ri2*si3*t3;
calc=calc - 3*A*B3*C*ri2*si3*t3;
calc=calc - A2*B3*C*ri2*si3*t3;
calc=calc - 4*A2*C2*ri2*si3*t3;
calc=calc + A3*C2*ri2*si3*t3;
calc=calc + 8*A2*B*C2*ri2*si3*t3;
calc=calc - 5*A*B2*C2*ri2*si3*t3;
calc=calc - 2*A2*B2*C2*ri2*si3*t3;
calc=calc - 2*A*C3*ri2*si3*t3;
calc=calc + 2*A2*C3*ri2*si3*t3;
calc=calc - A*B*C3*ri2*si3*t3;
calc=calc - A2*B*C3*ri2*si3*t3;
calc=calc + A*C4*ri2*si3*t3;
calc=calc - 2*A2*B2*ri3*si3*t3;
calc=calc + A3*B2*ri3*si3*t3;
calc=calc - 2*A*B3*ri3*si3*t3;
calc=calc - 4*A2*B*C*ri3*si3*t3;
calc=calc - 6*A*B2*C*ri3*si3*t3;
calc=calc - 4*A2*B2*C*ri3*si3*t3;
calc=calc - 2*A2*C2*ri3*si3*t3;
calc=calc - A3*C2*ri3*si3*t3;
calc=calc - 6*A*B*C2*ri3*si3*t3;
calc=calc - 8*A2*B*C2*ri3*si3*t3;
calc=calc - 2*A*C3*ri3*si3*t3;
calc=calc - 4*A2*C3*ri3*si3*t3;
calc=calc + A4*t4;
calc=calc + 4*A3*B*t4;
calc=calc + 6*A2*B2*t4;
calc=calc + 4*A*B3*t4;
calc=calc + B4*t4;
calc=calc + 4*A3*C*t4;
calc=calc + 12*A2*B*C*t4;
calc=calc + 12*A*B2*C*t4;
calc=calc + 4*B3*C*t4;
calc=calc + 6*A2*C2*t4;
calc=calc + 12*A*B*C2*t4;
calc=calc + 6*B2*C2*t4;
calc=calc + 4*A*C3*t4;
calc=calc + 4*B*C3*t4;
calc=calc + C4*t4;
calc=calc - 2*A4*ri*t4;
calc=calc - 8*A3*B*ri*t4;
calc=calc - 12*A2*B2*ri*t4;
calc=calc - 8*A*B3*ri*t4;
calc=calc - 2*B4*ri*t4;
calc=calc - 6*A3*C*ri*t4;
calc=calc - 18*A2*B*C*ri*t4;
calc=calc - 18*A*B2*C*ri*t4;
calc=calc - 6*B3*C*ri*t4;
calc=calc - 6*A2*C2*ri*t4;
calc=calc - 12*A*B*C2*ri*t4;
calc=calc - 6*B2*C2*ri*t4;
calc=calc - 2*A*C3*ri*t4;
calc=calc - 2*B*C3*ri*t4;
calc=calc + A4*ri2*t4;
calc=calc + 4*A3*B*ri2*t4;
calc=calc + 6*A2*B2*ri2*t4;
calc=calc + 4*A*B3*ri2*t4;
calc=calc + B4*ri2*t4;
calc=calc + A3*C*ri2*t4;
calc=calc + 3*A2*B*C*ri2*t4;
calc=calc + 3*A*B2*C*ri2*t4;
calc=calc + B3*C*ri2*t4;
calc=calc - A2*C2*ri2*t4;
calc=calc - A3*C2*ri2*t4;
calc=calc - 2*A*B*C2*ri2*t4;
calc=calc - A2*B*C2*ri2*t4;
calc=calc - B2*C2*ri2*t4;
calc=calc - A*C3*ri2*t4;
calc=calc - A2*C3*ri2*t4;
calc=calc - B*C3*ri2*t4;
calc=calc + A3*C*ri3*t4;
calc=calc + 3*A2*B*C*ri3*t4;
calc=calc + 3*A*B2*C*ri3*t4;
calc=calc + B3*C*ri3*t4;
calc=calc + A2*C2*ri3*t4;
calc=calc + A3*C2*ri3*t4;
calc=calc + 2*A*B*C2*ri3*t4;
calc=calc + A2*B*C2*ri3*t4;
calc=calc + B2*C2*ri3*t4;
calc=calc - 2*A4*si*t4;
calc=calc - 6*A3*B*si*t4;
calc=calc - 6*A2*B2*si*t4;
calc=calc - 2*A*B3*si*t4;
calc=calc - 8*A3*C*si*t4;
calc=calc - 18*A2*B*C*si*t4;
calc=calc - 12*A*B2*C*si*t4;
calc=calc - 2*B3*C*si*t4;
calc=calc - 12*A2*C2*si*t4;
calc=calc - 18*A*B*C2*si*t4;
calc=calc - 6*B2*C2*si*t4;
calc=calc - 8*A*C3*si*t4;
calc=calc - 6*B*C3*si*t4;
calc=calc - 2*C4*si*t4;
calc=calc + 4*A4*ri*si*t4;
calc=calc + 11*A3*B*ri*si*t4;
calc=calc + 9*A2*B2*ri*si*t4;
calc=calc + A*B3*ri*si*t4;
calc=calc - B4*ri*si*t4;
calc=calc + 11*A3*C*ri*si*t4;
calc=calc + 22*A2*B*C*ri*si*t4;
calc=calc - 2*A3*B*C*ri*si*t4;
calc=calc + 11*A*B2*C*ri*si*t4;
calc=calc - 2*A2*B2*C*ri*si*t4;
calc=calc + 9*A2*C2*ri*si*t4;
calc=calc + 11*A*B*C2*ri*si*t4;
calc=calc - 2*A2*B*C2*ri*si*t4;
calc=calc + 2*B2*C2*ri*si*t4;
calc=calc + A*C3*ri*si*t4;
calc=calc - C4*ri*si*t4;
calc=calc - 2*A4*ri2*si*t4;
calc=calc - 4*A3*B*ri2*si*t4;
calc=calc + 4*A*B3*ri2*si*t4;
calc=calc + 2*B4*ri2*si*t4;
calc=calc - A3*C*ri2*si*t4;
calc=calc + 2*A2*B*C*ri2*si*t4;
calc=calc + 3*A3*B*C*ri2*si*t4;
calc=calc + 7*A*B2*C*ri2*si*t4;
calc=calc + 3*A2*B2*C*ri2*si*t4;
calc=calc + 4*B3*C*ri2*si*t4;
calc=calc + 4*A2*C2*ri2*si*t4;
calc=calc + 2*A3*C2*ri2*si*t4;
calc=calc + 9*A*B*C2*ri2*si*t4;
calc=calc + 2*A2*B*C2*ri2*si*t4;
calc=calc + 5*B2*C2*ri2*si*t4;
calc=calc + 3*A*C3*ri2*si*t4;
calc=calc + 2*A2*C3*ri2*si*t4;
calc=calc + 3*B*C3*ri2*si*t4;
calc=calc - A3*B*ri3*si*t4;
calc=calc - 3*A2*B2*ri3*si*t4;
calc=calc - 3*A*B3*ri3*si*t4;
calc=calc - B4*ri3*si*t4;
calc=calc - 2*A3*C*ri3*si*t4;
calc=calc - 6*A2*B*C*ri3*si*t4;
calc=calc - A3*B*C*ri3*si*t4;
calc=calc - 6*A*B2*C*ri3*si*t4;
calc=calc - A2*B2*C*ri3*si*t4;
calc=calc - 2*B3*C*ri3*si*t4;
calc=calc - A2*C2*ri3*si*t4;
calc=calc - 2*A3*C2*ri3*si*t4;
calc=calc - 2*A*B*C2*ri3*si*t4;
calc=calc - B2*C2*ri3*si*t4;
calc=calc + A*C3*ri3*si*t4;
calc=calc + A2*C3*ri3*si*t4;
calc=calc + A4*si2*t4;
calc=calc + A3*B*si2*t4;
calc=calc - A2*B2*si2*t4;
calc=calc - A3*B2*si2*t4;
calc=calc - A*B3*si2*t4;
calc=calc - A2*B3*si2*t4;
calc=calc + 4*A3*C*si2*t4;
calc=calc + 3*A2*B*C*si2*t4;
calc=calc - 2*A*B2*C*si2*t4;
calc=calc - A2*B2*C*si2*t4;
calc=calc - B3*C*si2*t4;
calc=calc + 6*A2*C2*si2*t4;
calc=calc + 3*A*B*C2*si2*t4;
calc=calc - B2*C2*si2*t4;
calc=calc + 4*A*C3*si2*t4;
calc=calc + B*C3*si2*t4;
calc=calc + C4*si2*t4;
calc=calc - 2*A4*ri*si2*t4;
calc=calc - A3*B*ri*si2*t4;
calc=calc + 4*A2*B2*ri*si2*t4;
calc=calc + 2*A3*B2*ri*si2*t4;
calc=calc + 3*A*B3*ri*si2*t4;
calc=calc + 2*A2*B3*ri*si2*t4;
calc=calc - 4*A3*C*ri*si2*t4;
calc=calc + 2*A2*B*C*ri*si2*t4;
calc=calc + 3*A3*B*C*ri*si2*t4;
calc=calc + 9*A*B2*C*ri*si2*t4;
calc=calc + 2*A2*B2*C*ri*si2*t4;
calc=calc + 3*B3*C*ri*si2*t4;
calc=calc + 7*A*B*C2*ri*si2*t4;
calc=calc + 3*A2*B*C2*ri*si2*t4;
calc=calc + 5*B2*C2*ri*si2*t4;
calc=calc + 4*A*C3*ri*si2*t4;
calc=calc + 4*B*C3*ri*si2*t4;
calc=calc + 2*C4*ri*si2*t4;
calc=calc + A4*ri2*si2*t4;
calc=calc - A3*B*ri2*si2*t4;
calc=calc - 5*A2*B2*ri2*si2*t4;
calc=calc - A3*B2*ri2*si2*t4;
calc=calc - 3*A*B3*ri2*si2*t4;
calc=calc - A2*B3*ri2*si2*t4;
calc=calc - A3*C*ri2*si2*t4;
calc=calc - 6*A2*B*C*ri2*si2*t4;
calc=calc - 4*A3*B*C*ri2*si2*t4;
calc=calc - 7*A*B2*C*ri2*si2*t4;
calc=calc + A2*B2*C*ri2*si2*t4;
calc=calc - 2*B3*C*ri2*si2*t4;
calc=calc - 5*A2*C2*ri2*si2*t4;
calc=calc - A3*C2*ri2*si2*t4;
calc=calc - 7*A*B*C2*ri2*si2*t4;
calc=calc + A2*B*C2*ri2*si2*t4;
calc=calc - 4*B2*C2*ri2*si2*t4;
calc=calc - 3*A*C3*ri2*si2*t4;
calc=calc - A2*C3*ri2*si2*t4;
calc=calc - 2*B*C3*ri2*si2*t4;
calc=calc + A3*B*ri3*si2*t4;
calc=calc + 2*A2*B2*ri3*si2*t4;
calc=calc + A*B3*ri3*si2*t4;
calc=calc + A3*C*ri3*si2*t4;
calc=calc + A2*B*C*ri3*si2*t4;
calc=calc + A3*B*C*ri3*si2*t4;
calc=calc - 2*A2*B2*C*ri3*si2*t4;
calc=calc - A2*C2*ri3*si2*t4;
calc=calc + A3*C2*ri3*si2*t4;
calc=calc - 3*A*B*C2*ri3*si2*t4;
calc=calc - 4*A2*B*C2*ri3*si2*t4;
calc=calc - 2*A*C3*ri3*si2*t4;
calc=calc - 2*A2*C3*ri3*si2*t4;
calc=calc + A3*B*si3*t4;
calc=calc + A2*B2*si3*t4;
calc=calc + A3*B2*si3*t4;
calc=calc + 3*A2*B*C*si3*t4;
calc=calc + 2*A*B2*C*si3*t4;
calc=calc + A2*B2*C*si3*t4;
calc=calc + 3*A*B*C2*si3*t4;
calc=calc + B2*C2*si3*t4;
calc=calc + B*C3*si3*t4;
calc=calc - 2*A3*B*ri*si3*t4;
calc=calc - A2*B2*ri*si3*t4;
calc=calc - 2*A3*B2*ri*si3*t4;
calc=calc + A*B3*ri*si3*t4;
calc=calc + A2*B3*ri*si3*t4;
calc=calc - A3*C*ri*si3*t4;
calc=calc - 6*A2*B*C*ri*si3*t4;
calc=calc - A3*B*C*ri*si3*t4;
calc=calc - 2*A*B2*C*ri*si3*t4;
calc=calc - 3*A2*C2*ri*si3*t4;
calc=calc - 6*A*B*C2*ri*si3*t4;
calc=calc - A2*B*C2*ri*si3*t4;
calc=calc - B2*C2*ri*si3*t4;
calc=calc - 3*A*C3*ri*si3*t4;
calc=calc - 2*B*C3*ri*si3*t4;
calc=calc - C4*ri*si3*t4;
calc=calc + A3*B*ri2*si3*t4;
calc=calc - A2*B2*ri2*si3*t4;
calc=calc + A3*B2*ri2*si3*t4;
calc=calc - 2*A*B3*ri2*si3*t4;
calc=calc - 2*A2*B3*ri2*si3*t4;
calc=calc + A3*C*ri2*si3*t4;
calc=calc + A2*B*C*ri2*si3*t4;
calc=calc + A3*B*C*ri2*si3*t4;
calc=calc - 3*A*B2*C*ri2*si3*t4;
calc=calc - 4*A2*B2*C*ri2*si3*t4;
calc=calc + 2*A2*C2*ri2*si3*t4;
calc=calc - 2*A2*B*C2*ri2*si3*t4;
calc=calc + A*C3*ri2*si3*t4;
calc=calc + A2*B2*ri3*si3*t4;
calc=calc + A*B3*ri3*si3*t4;
calc=calc + A2*B3*ri3*si3*t4;
calc=calc + 2*A2*B*C*ri3*si3*t4;
calc=calc + 3*A*B2*C*ri3*si3*t4;
calc=calc + 3*A2*B2*C*ri3*si3*t4;
calc=calc + A2*C2*ri3*si3*t4;
calc=calc + 3*A*B*C2*ri3*si3*t4;
calc=calc + 3*A2*B*C2*ri3*si3*t4;
calc=calc + A*C3*ri3*si3*t4;
calc=calc + A2*C3*ri3*si3*t4; return calc}

