MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

[Q] Translate Mathematica -> Java

  • To: mathgroup at smc.vnet.net
  • Subject: [mg45549] [Q] Translate Mathematica -> Java
  • From: André Betz <mail at andrebetz.de>
  • Date: Tue, 13 Jan 2004 04:04:02 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

I'm looking for someone who could help me perhaps to translate a peace 
of Mathematica Code into Jave or help me to understand whats happening 
there.

Thank you
André Betz
http://www.andrebetz.de


----------------------------------------Code Begin----------------------
\!\(CTToR110[rules_ /; Select[rules, Mod[Length[#], 6] ? 0 &] == {}, 
init_] \
:= Module[{g1, g2, g3, nr = 0, x1, y1, sp}, g1 = Flatten[Map[
       If[# === {}, {{{2}}}, {{{1, 3, 5 -
       First[#]}}, Table[{4, 5 - #[[n]]}, {n, 2, Length[#]}]}] &,
         rules] /. \[InvisibleSpace]a_Integer :> Map[{
               d[#[[1]], #[[2]]], s[#[[3]]]} &, Partition[c[a],
                   3]], 4]; g2 = \(g1 = MapThread[If[#1 === #2 === {d[
                     22, 11], s3}, {d[20, 8], s3}, #1] &, {g1,
                       RotateRight[g1, 6]}]\); While[Mod[Apply[Plus, 
Map[#[[1, \
2]] &, g2]], 30] ? 0, \(nr++\); g2 = Join[g2,
             g1]]; y1 = g2[[1, 1, 2]] - 11;
                If[y1 < 0, y1 += 30]; Cases[\(Last[g2]\)[[2]], s[d[x_, 
y1], _, _,
                  a_] :> \((x1 = x +
                   Length[a])\)]; g3 = Fold[sadd, {d[x1, y1], {}}, g2];
           sp = Ceiling[\(5\ Length[g3[[2]]]\)/\((28\ nr)\) + 2]; {
                   Join[\(Fold[sadd, {d[17, 1], {}},
                 Flatten[Table[{{d[sp\ 28 + 6, 1],
                  s[5]}, {d[398, 1], s[5]}, {d[342, 1], s[5]}, {
                 d[370, 1], s[5]}}, {3}],
       1]]\)[[2]], bg[4, 11]], Flatten[Join[Table[bgi, {sp\ 2 + 1 + 24\
                     Length[init]}], init /. \[InvisibleSpace]{0 -> init0,
         1 -> init1}, bg[1, 9], bg[6,
       60 - g2[[1, 1, 1]] + g3[[1, 1]] + If[g2[[1, 1, 2]] <
                  g3[[1, 2]], 8, 0]]]], g3[[2]]}]\n
   \(s[1] = struct[{3, 0, 1, 10, 4, 8}, 2];\)\n
   \(s[2] = struct[{3, 0, 1, 1, 619, 15}, 2];\)\n
   \(s[3] = struct[{3, 0, 1, 10, 4956, 18}, 2];\)\n
   \(s[4] = struct[{0, 0, 9, 10, 4, 8}];\)\n
   \(s[5] = struct[{5, 0, 9, 14, 1, 1}];\)\n
   \({c[1], c[2]} = Map[Join[{22,
      11, 3, 39, 3,
        1}, #] &, {{63, 12, 2, 48, 5, 4, 29, 26, 4, 43, 26, 4, 23, 3,
         4, 47, 4, 4}, {87, 6, 2, 32, 2, 4, 13, 23, 4, 27, 16, 4}}];\)\n
   \({c[3], c[4], c[5]} = Map[Join[#, {4, 17, 22,
    4, 39, 27, 4, 47,
        4, 4}] &, {{17, 22, 4, 23, 24, 4, 31, 29}, {17, 22, 4, 47, 18, 
4, 15,
    19}, {41, 16, 4, 47, 18, 4, 15, 19}}];\)\n
   \({init0, init1} = Map[IntegerDigits[216\ \((# + 432\
             10\^\(\(\)\(49\)\))\), 2] &, \
{246005560154658471735510051750569922628065067661, \
1043746165489466852897089830441756550889834709645}];\)\n
   \(bgi = IntegerDigits[9976, 2];\)\n
   bg[s_, n_] := Array[bgi[[1 + Mod[# - 1, 14]]] &, n, s]\n
   ev[s[d[x_, y_], pl_,
            pr_, b_]] := Module[{r, pl1,
             pr1}, r = Sign[BitAnd[2^ListConvolve[{1, 2, 4}, Join[bg[pl 
- 2, \
2], b, bg[pr, 2]]], 110]];
                    pl1 = \((Position[r - bg[pl + 3, Length[
                     r]], 1 | \(-1\)] /. \[InvisibleSpace]{} -> 
{{Length[r]}})\
\)[[1, 1]]; pr1 = Max[pl1, \((Position[r - bg[pr + 5 - Length[r], 
Length[r]],
                   1 | \(-1\)] /. \[InvisibleSpace]{} -> {{1}})\)[[\(-1\),
                1]]]; s[d[x + pl1 - 2, y + 1], pl1 + Mod[pl + 2, 14], 1 
+ Mod[
       pr + 4, 14] + pr1 - Length[r], Take[r, {pl1, pr1}]]]\n
   struct[{x_, y_, pl_, pr_, b_, bl_}, p_Integer : 1] := Module[{gr = 
s[d[x,
                   y], pl, pr, IntegerDigits[b, 2, bl]], p2 = p + 1}, Drop[
                 NestWhile[Append[#, ev[Last[#]]] &, {
             gr}, \(If[Rest[Last[#]] ===
        Rest[gr], \(p2--\)]; p2 > 0\) &], \(-1\)]]\n
   sadd[{d[x_,
           y_], b_}, {d[dx_, dy_], st_}] := Module[{x1 = dx - x, y1 = dy 
- y,
             b2, x2, y2}, While[y1 > 0, {x1, y1} += If[Length[st] == 30, {
           8, \(-30\)}, {\(-2\), \(-3\)}]]; b2 =
    First[Cases[st, s[d[x3_, \(-y1\)], pl_, _, sb_] :> Join[bg[pl - x1 - 
x3,
       x1 + x3], x2 = x3 +
         Length[sb]; y2 = \(-y1\); sb]]]; {d[x2, y2], Join[b, b2]}]\)

Map[Length, CTToR110[{{1, 1, 0, 1, 0, 1}, {1, 1, 0, 0, 0, 0}}, {0, 1}]]

----------------------------------------Code End----------------------


  • Prev by Date: Re: MultiLine Formula (formatting w/brace)
  • Next by Date: Re: Re: Compile
  • Previous by thread: Re: what is the general theory of extracting solutions from DSolve (and similar) functions
  • Next by thread: Univers font