(*SL code, st[] added, bbstep3 changed to handle the case of bz or b3 = 0*) bbseqe[m1_, m2_, m3_, m4_, m5_] := Module[{r}, Clear[OUT, PSB00, STD00, TIMESTART, TIMEFINISH, EPS00, ACC00]; TIMESTART = Date[]; r = bbseq[m1, m2, m3, m4, m5]; OUT = r; PSB00 = m2; EPS00 = m3; STD00 = m4; ACC00 = m5; TIMEFINISH = Date[]; Save["out.bbseqe", memo, cmemo, PSB00, EPS00, STD00, ACC00, TIMESTART, TIMEFINISH, OUT]; Return[r]; ] OUT = OUT bbseq[systart_, psb0_, epsdata_, stepsdata_, accy_Integer] := Module[{psea, sya, bza, b3a, b, k1a, k2a, ja, sta, st2a, acc}, psea = epsdata; acc = accy; sya = systart; {bza, b3a} = psb0; {b, k1a, k2a, ja, sta, st2a} = stepsdata; Return[bbseq4[psea, bza, b3a, b, k1a, k2a, ja, sta, st2a, sya, acc]]; ] bbseq4[pse_, bz0_, b30_, b_, k1_, k2_, j_, st_Integer, st2_Integer, sy0_, acc_Integer] := Module[{ffav, ct, ct2, syva, bzv, b3v, r}, ffav = ff0 /. pse; ct = 0; ct2 = 0; syva = sy0; bzv = bz0; b3v = b30; r = {bz0, b30, sy0}; Label[o1]; {bzv, b3v} = bbstep4[b, bzv, b3v, k1, k2, j]; syva = systep[syva, bzv, b3v, ffav, acc]; ct = ct + 1; ct2 = ct2 + 1; If[ct2 < st2, Goto[o1]]; ct2 = 0; r = r + u^ct*{bzv, b3v, syva}; If[ct < st, Goto[o1]]; Return[r]; ] st[u_, v_] := steptest[u, v] steptest[psb0_, stepsdata_] := Module[{bv, d1, d2, k1, k2, n, r, q1, q2}, {d1, d2} = psb0; {bv, k1, k2, n, q1, q2} = stepsdata; r = bbstep4[bv, d1, d2, k1, k2, n]; Return[r]; ] bbstep4[b_, c1_, c2_, j1_, j2_, m_] := b*bbstep3[c1/b, c2/b, j1, j2, m] bbstep3[a1_, a2_, k1_, k2_, j_] := Module[{b1, b2, s1, s2, r}, b1 = If[a1 != 0, 1/a1, 0]; b2 = If[a2 != 0, 1/a2, 0]; s1 = IntegerPart[k1*b1^j]; s2 = IntegerPart[k2*b2^j]; b1 = b1 + s1; b2 = b2 + s2; r = {0, 0}; r[[1]] = If[b1 != 0, 1/b1, 0]; r[[2]] = If[b2 != 0, 1/b2, 0]; Return[r]; ] systep[insy_, bza_, b3a_, ffa_, acc_] := Module[{syv}, ff = ffa /. {bz -> bza, b3 -> b3a}; syv = FRTB[ff, insy, acc]; syv = N[syv, acc - 3]; Return[syv]; ] end=lastline