public class com.oracle.graal.python.benchmarks.interop.PyNbody extends com.oracle.graal.python.benchmarks.interop.BenchRunner
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.graal.python.benchmarks.interop.PyNbody
  super_class: com.oracle.graal.python.benchmarks.interop.BenchRunner
{
  public int arg1;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Param(value = {"5000000"})

  private org.graalvm.polyglot.Value combinations;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value dictValues;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value dictGetValue;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value create;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value BODIES;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value BODIES_ref;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value SYSTEM;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Value PAIRS;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
         0: .line 49
            aload 0 /* this */
            invokespecial com.oracle.graal.python.benchmarks.interop.BenchRunner.<init>:()V
            return
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyNbody;

  public void setup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
         0: .line 64
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "### setup ..."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 65
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
            ldc "python"
         2: .line 66
            ldc "def combinations(l):\n    result = []\n    for x in range(len(l) - 1):\n        ls = l[x+1:]\n        for y in ls:\n            result.append((l[x],y))\n    return result\ncombinations"
         3: .line 65
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.combinations:Lorg/graalvm/polyglot/Value;
         4: .line 74
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
            ldc "python"
         5: .line 75
            ldc "def dict_values(d):  return list(d.values())\ndict_values"
         6: .line 74
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictValues:Lorg/graalvm/polyglot/Value;
         7: .line 78
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
            ldc "python"
         8: .line 79
            ldc "def dict_get(d, s):  return d[s]\ndict_get"
         9: .line 78
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictGetValue:Lorg/graalvm/polyglot/Value;
        10: .line 82
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
            ldc "python"
        11: .line 83
            ldc "PI = 3.14159265358979323\nSOLAR_MASS = 4 * PI * PI\nDAYS_PER_YEAR = 365.24\n\nBODIES = {\n    'sun': ([0.0, 0.0, 0.0], [0.0, 0.0, 0.0], SOLAR_MASS),\n\n    'jupiter': ([4.84143144246472090e+00,\n                 -1.16032004402742839e+00,\n                 -1.03622044471123109e-01],\n                [1.66007664274403694e-03 * DAYS_PER_YEAR,\n                 7.69901118419740425e-03 * DAYS_PER_YEAR,\n                 -6.90460016972063023e-05 * DAYS_PER_YEAR],\n                9.54791938424326609e-04 * SOLAR_MASS),\n\n    'saturn': ([8.34336671824457987e+00,\n                4.12479856412430479e+00,\n                -4.03523417114321381e-01],\n               [-2.76742510726862411e-03 * DAYS_PER_YEAR,\n                4.99852801234917238e-03 * DAYS_PER_YEAR,\n                2.30417297573763929e-05 * DAYS_PER_YEAR],\n               2.85885980666130812e-04 * SOLAR_MASS),\n\n    'uranus': ([1.28943695621391310e+01,\n                -1.51111514016986312e+01,\n                -2.23307578892655734e-01],\n               [2.96460137564761618e-03 * DAYS_PER_YEAR,\n                2.37847173959480950e-03 * DAYS_PER_YEAR,\n                -2.96589568540237556e-05 * DAYS_PER_YEAR],\n               4.36624404335156298e-05 * SOLAR_MASS),\n\n    'neptune': ([1.53796971148509165e+01,\n                 -2.59193146099879641e+01,\n                 1.79258772950371181e-01],\n                [2.68067772490389322e-03 * DAYS_PER_YEAR,\n                 1.62824170038242295e-03 * DAYS_PER_YEAR,\n                 -9.51592254519715870e-05 * DAYS_PER_YEAR],\n                5.15138902046611451e-05 * SOLAR_MASS) }\ndef create(): return BODIES\ncreate"
        12: .line 82
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.create:Lorg/graalvm/polyglot/Value;
        13: .line 123
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.create:Lorg/graalvm/polyglot/Value;
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES:Lorg/graalvm/polyglot/Value;
        14: .line 124
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictGetValue:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES:Lorg/graalvm/polyglot/Value;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
            ldc "sun"
            invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES_ref:Lorg/graalvm/polyglot/Value;
        15: .line 125
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictValues:Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES:Lorg/graalvm/polyglot/Value;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
        16: .line 126
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.combinations:Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
        17: .line 127
            return
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Setup()

  public void nbody3(org.openjdk.jmh.infra.Blackhole);
    descriptor: (Lorg/openjdk/jmh/infra/Blackhole;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
        start local 1 // org.openjdk.jmh.infra.Blackhole bh
         0: .line 131
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.arg1:I
            invokevirtual com.oracle.graal.python.benchmarks.interop.PyNbody.nbody:(I)V
         1: .line 132
            return
        end local 1 // org.openjdk.jmh.infra.Blackhole bh
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
            0    2     1    bh  Lorg/openjdk/jmh/infra/Blackhole;
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Benchmark()
    MethodParameters:
      Name  Flags
      bh    

  private void nbody(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
        start local 1 // int n
         0: .line 135
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES_ref:Lorg/graalvm/polyglot/Value;
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.offset_momentum:(Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
         1: .line 136
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.report_energy:(Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
         2: .line 137
            ldc 0.01
            iload 1 /* n */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.advance:(DILorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
         3: .line 138
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.report_energy:(Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
         4: .line 139
            return
        end local 1 // int n
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyNbody this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
            0    5     1     n  I
    MethodParameters:
      Name  Flags
      n     

  private static void report_energy(org.graalvm.polyglot.Value, org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=31, args_size=2
        start local 0 // org.graalvm.polyglot.Value bodies
        start local 1 // org.graalvm.polyglot.Value pairs
         0: .line 142
            dconst_0
            dstore 2 /* e */
        start local 2 // double e
         1: .line 144
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         2: goto 20
         3: .line 146
      StackMap locals: org.graalvm.polyglot.Value org.graalvm.polyglot.Value double top top top top top top int
      StackMap stack:
            aload 1 /* pairs */
            iload 10 /* i */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 11 /* pair1 */
        start local 11 // org.graalvm.polyglot.Value pair1
         4: .line 147
            aload 11 /* pair1 */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 12 /* xyz1 */
        start local 12 // org.graalvm.polyglot.Value xyz1
         5: .line 148
            aload 12 /* xyz1 */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 13 /* x1 */
        start local 13 // double x1
         6: aload 12 /* xyz1 */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 15 /* y1 */
        start local 15 // double y1
         7: aload 12 /* xyz1 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 17 /* z1 */
        start local 17 // double z1
         8: .line 149
            aload 11 /* pair1 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 19 /* m1 */
        start local 19 // double m1
         9: .line 150
            aload 1 /* pairs */
            iload 10 /* i */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 21 /* pair2 */
        start local 21 // org.graalvm.polyglot.Value pair2
        10: .line 151
            aload 21 /* pair2 */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 22 /* xyz2 */
        start local 22 // org.graalvm.polyglot.Value xyz2
        11: .line 152
            aload 22 /* xyz2 */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 23 /* x2 */
        start local 23 // double x2
        12: aload 22 /* xyz2 */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 25 /* y2 */
        start local 25 // double y2
        13: aload 22 /* xyz2 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 27 /* z2 */
        start local 27 // double z2
        14: .line 153
            aload 21 /* pair2 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 29 /* m2 */
        start local 29 // double m2
        15: .line 154
            dload 13 /* x1 */
            dload 23 /* x2 */
            dsub
            dstore 4 /* dx */
        start local 4 // double dx
        16: .line 155
            dload 15 /* y1 */
            dload 25 /* y2 */
            dsub
            dstore 6 /* dy */
        start local 6 // double dy
        17: .line 156
            dload 17 /* z1 */
            dload 27 /* z2 */
            dsub
            dstore 8 /* dz */
        start local 8 // double dz
        18: .line 157
            dload 2 /* e */
            dload 19 /* m1 */
            dload 29 /* m2 */
            dmul
            dload 4 /* dx */
            dload 4 /* dx */
            dmul
            dload 6 /* dy */
            dload 6 /* dy */
            dmul
            dadd
            dload 8 /* dz */
            dload 8 /* dz */
            dmul
            dadd
            ldc 0.5
            invokestatic java.lang.Math.pow:(DD)D
            ddiv
            dsub
            dstore 2 /* e */
        end local 29 // double m2
        end local 27 // double z2
        end local 25 // double y2
        end local 23 // double x2
        end local 22 // org.graalvm.polyglot.Value xyz2
        end local 21 // org.graalvm.polyglot.Value pair2
        end local 19 // double m1
        end local 17 // double z1
        end local 15 // double y1
        end local 13 // double x1
        end local 12 // org.graalvm.polyglot.Value xyz1
        end local 11 // org.graalvm.polyglot.Value pair1
        19: .line 144
            iinc 10 /* i */ 1
        end local 8 // double dz
        end local 6 // double dy
        end local 4 // double dx
      StackMap locals:
      StackMap stack:
        20: iload 10 /* i */
            i2l
            aload 1 /* pairs */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            lcmp
            iflt 3
        end local 10 // int i
        21: .line 159
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        22: goto 31
        23: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* bodies */
            iload 10 /* i */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 11 /* body */
        start local 11 // org.graalvm.polyglot.Value body
        24: .line 161
            aload 11 /* body */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 12 /* v */
        start local 12 // org.graalvm.polyglot.Value v
        25: .line 162
            aload 12 /* v */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 13 /* vx */
        start local 13 // double vx
        26: aload 12 /* v */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 15 /* vy */
        start local 15 // double vy
        27: aload 12 /* v */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 17 /* vz */
        start local 17 // double vz
        28: .line 163
            aload 11 /* body */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 19 /* m */
        start local 19 // double m
        29: .line 164
            dload 2 /* e */
            dload 19 /* m */
            dload 13 /* vx */
            dload 13 /* vx */
            dmul
            dload 15 /* vy */
            dload 15 /* vy */
            dmul
            dadd
            dload 17 /* vz */
            dload 17 /* vz */
            dmul
            dadd
            dmul
            ldc 2.0
            ddiv
            dadd
            dstore 2 /* e */
        end local 19 // double m
        end local 17 // double vz
        end local 15 // double vy
        end local 13 // double vx
        end local 12 // org.graalvm.polyglot.Value v
        end local 11 // org.graalvm.polyglot.Value body
        30: .line 159
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 10 /* i */
            i2l
            aload 0 /* bodies */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            lcmp
            iflt 23
        end local 10 // int i
        32: .line 166
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%.9f"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            dload 2 /* e */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 167
            return
        end local 2 // double e
        end local 1 // org.graalvm.polyglot.Value pairs
        end local 0 // org.graalvm.polyglot.Value bodies
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0  bodies  Lorg/graalvm/polyglot/Value;
            0   34     1   pairs  Lorg/graalvm/polyglot/Value;
            1   34     2       e  D
           16   20     4      dx  D
           17   20     6      dy  D
           18   20     8      dz  D
            2   21    10       i  I
            4   19    11   pair1  Lorg/graalvm/polyglot/Value;
            5   19    12    xyz1  Lorg/graalvm/polyglot/Value;
            6   19    13      x1  D
            7   19    15      y1  D
            8   19    17      z1  D
            9   19    19      m1  D
           10   19    21   pair2  Lorg/graalvm/polyglot/Value;
           11   19    22    xyz2  Lorg/graalvm/polyglot/Value;
           12   19    23      x2  D
           13   19    25      y2  D
           14   19    27      z2  D
           15   19    29      m2  D
           22   32    10       i  I
           24   30    11    body  Lorg/graalvm/polyglot/Value;
           25   30    12       v  Lorg/graalvm/polyglot/Value;
           26   30    13      vx  D
           27   30    15      vy  D
           28   30    17      vz  D
           29   30    19       m  D
    MethodParameters:
        Name  Flags
      bodies  
      pairs   

  private static void setAdd(org.graalvm.polyglot.Value, int, double);
    descriptor: (Lorg/graalvm/polyglot/Value;ID)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.graalvm.polyglot.Value a
        start local 1 // int i
        start local 2 // double v
         0: .line 170
            aload 0 /* a */
            iload 1 /* i */
            i2l
            aload 0 /* a */
            iload 1 /* i */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dload 2 /* v */
            dadd
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
         1: .line 171
            return
        end local 2 // double v
        end local 1 // int i
        end local 0 // org.graalvm.polyglot.Value a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  Lorg/graalvm/polyglot/Value;
            0    2     1     i  I
            0    2     2     v  D
    MethodParameters:
      Name  Flags
      a     
      i     
      v     

  private static void setSubtract(org.graalvm.polyglot.Value, int, double);
    descriptor: (Lorg/graalvm/polyglot/Value;ID)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.graalvm.polyglot.Value a
        start local 1 // int i
        start local 2 // double v
         0: .line 174
            aload 0 /* a */
            iload 1 /* i */
            i2l
            aload 0 /* a */
            iload 1 /* i */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dload 2 /* v */
            dsub
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
         1: .line 175
            return
        end local 2 // double v
        end local 1 // int i
        end local 0 // org.graalvm.polyglot.Value a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  Lorg/graalvm/polyglot/Value;
            0    2     1     i  I
            0    2     2     v  D
    MethodParameters:
      Name  Flags
      a     
      i     
      v     

  private static void advance(double, int, org.graalvm.polyglot.Value, org.graalvm.polyglot.Value);
    descriptor: (DILorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=41, args_size=4
        start local 0 // double dt
        start local 2 // int n
        start local 3 // org.graalvm.polyglot.Value bodies
        start local 4 // org.graalvm.polyglot.Value pairs
         0: .line 179
            iconst_0
            istore 17 /* i */
        start local 17 // int i
         1: goto 46
         2: .line 180
      StackMap locals: double int org.graalvm.polyglot.Value org.graalvm.polyglot.Value top top top top top top top top top top top top int
      StackMap stack:
            iconst_0
            istore 18 /* j */
        start local 18 // int j
         3: goto 31
         4: .line 182
      StackMap locals: int
      StackMap stack:
            aload 4 /* pairs */
            iload 18 /* j */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 19 /* pair1 */
        start local 19 // org.graalvm.polyglot.Value pair1
         5: .line 183
            aload 19 /* pair1 */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 20 /* xyz1 */
        start local 20 // org.graalvm.polyglot.Value xyz1
         6: .line 184
            aload 20 /* xyz1 */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 21 /* x1 */
        start local 21 // double x1
         7: aload 20 /* xyz1 */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 23 /* y1 */
        start local 23 // double y1
         8: aload 20 /* xyz1 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 25 /* z1 */
        start local 25 // double z1
         9: .line 185
            aload 19 /* pair1 */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 27 /* v1 */
        start local 27 // org.graalvm.polyglot.Value v1
        10: .line 186
            aload 19 /* pair1 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 28 /* m1 */
        start local 28 // double m1
        11: .line 187
            aload 4 /* pairs */
            iload 18 /* j */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 30 /* pair2 */
        start local 30 // org.graalvm.polyglot.Value pair2
        12: .line 188
            aload 30 /* pair2 */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 31 /* xyz2 */
        start local 31 // org.graalvm.polyglot.Value xyz2
        13: .line 189
            aload 31 /* xyz2 */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 32 /* x2 */
        start local 32 // double x2
        14: aload 31 /* xyz2 */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 34 /* y2 */
        start local 34 // double y2
        15: aload 31 /* xyz2 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 36 /* z2 */
        start local 36 // double z2
        16: .line 190
            aload 30 /* pair2 */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 38 /* v2 */
        start local 38 // org.graalvm.polyglot.Value v2
        17: .line 191
            aload 30 /* pair2 */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 39 /* m2 */
        start local 39 // double m2
        18: .line 192
            dload 21 /* x1 */
            dload 32 /* x2 */
            dsub
            dstore 5 /* dx */
        start local 5 // double dx
        19: .line 193
            dload 23 /* y1 */
            dload 34 /* y2 */
            dsub
            dstore 7 /* dy */
        start local 7 // double dy
        20: .line 194
            dload 25 /* z1 */
            dload 36 /* z2 */
            dsub
            dstore 9 /* dz */
        start local 9 // double dz
        21: .line 195
            dload 0 /* dt */
            dload 5 /* dx */
            dload 5 /* dx */
            dmul
            dload 7 /* dy */
            dload 7 /* dy */
            dmul
            dadd
            dload 9 /* dz */
            dload 9 /* dz */
            dmul
            dadd
            ldc -1.5
            invokestatic java.lang.Math.pow:(DD)D
            dmul
            dstore 11 /* mag */
        start local 11 // double mag
        22: .line 196
            dload 28 /* m1 */
            dload 11 /* mag */
            dmul
            dstore 13 /* b1m */
        start local 13 // double b1m
        23: .line 197
            dload 39 /* m2 */
            dload 11 /* mag */
            dmul
            dstore 15 /* b2m */
        start local 15 // double b2m
        24: .line 198
            aload 27 /* v1 */
            iconst_0
            dload 5 /* dx */
            dload 15 /* b2m */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setSubtract:(Lorg/graalvm/polyglot/Value;ID)V
        25: .line 199
            aload 27 /* v1 */
            iconst_1
            dload 7 /* dy */
            dload 15 /* b2m */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setSubtract:(Lorg/graalvm/polyglot/Value;ID)V
        26: .line 200
            aload 27 /* v1 */
            iconst_2
            dload 9 /* dz */
            dload 15 /* b2m */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setSubtract:(Lorg/graalvm/polyglot/Value;ID)V
        27: .line 201
            aload 38 /* v2 */
            iconst_0
            dload 5 /* dx */
            dload 13 /* b1m */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
        28: .line 202
            aload 38 /* v2 */
            iconst_1
            dload 7 /* dy */
            dload 13 /* b1m */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
        29: .line 203
            aload 38 /* v2 */
            iconst_2
            dload 9 /* dz */
            dload 13 /* b1m */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
        end local 39 // double m2
        end local 38 // org.graalvm.polyglot.Value v2
        end local 36 // double z2
        end local 34 // double y2
        end local 32 // double x2
        end local 31 // org.graalvm.polyglot.Value xyz2
        end local 30 // org.graalvm.polyglot.Value pair2
        end local 28 // double m1
        end local 27 // org.graalvm.polyglot.Value v1
        end local 25 // double z1
        end local 23 // double y1
        end local 21 // double x1
        end local 20 // org.graalvm.polyglot.Value xyz1
        end local 19 // org.graalvm.polyglot.Value pair1
        30: .line 180
            iinc 18 /* j */ 1
        end local 15 // double b2m
        end local 13 // double b1m
        end local 11 // double mag
        end local 9 // double dz
        end local 7 // double dy
        end local 5 // double dx
      StackMap locals:
      StackMap stack:
        31: iload 18 /* j */
            i2l
            aload 4 /* pairs */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            lcmp
            iflt 4
        end local 18 // int j
        32: .line 205
            iconst_0
            istore 18 /* j */
        start local 18 // int j
        33: goto 44
        34: .line 207
      StackMap locals:
      StackMap stack:
            aload 3 /* bodies */
            iload 18 /* j */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 19 /* body */
        start local 19 // org.graalvm.polyglot.Value body
        35: .line 208
            aload 19 /* body */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 20 /* r */
        start local 20 // org.graalvm.polyglot.Value r
        36: .line 209
            aload 19 /* body */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 21 /* v */
        start local 21 // org.graalvm.polyglot.Value v
        37: .line 210
            aload 21 /* v */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 22 /* vx */
        start local 22 // double vx
        38: aload 21 /* v */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 24 /* vy */
        start local 24 // double vy
        39: aload 21 /* v */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 26 /* vz */
        start local 26 // double vz
        40: .line 211
            aload 20 /* r */
            iconst_0
            dload 0 /* dt */
            dload 22 /* vx */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
        41: .line 212
            aload 20 /* r */
            iconst_1
            dload 0 /* dt */
            dload 24 /* vy */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
        42: .line 213
            aload 20 /* r */
            iconst_2
            dload 0 /* dt */
            dload 26 /* vz */
            dmul
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
        end local 26 // double vz
        end local 24 // double vy
        end local 22 // double vx
        end local 21 // org.graalvm.polyglot.Value v
        end local 20 // org.graalvm.polyglot.Value r
        end local 19 // org.graalvm.polyglot.Value body
        43: .line 205
            iinc 18 /* j */ 1
      StackMap locals:
      StackMap stack:
        44: iload 18 /* j */
            i2l
            aload 3 /* bodies */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            lcmp
            iflt 34
        end local 18 // int j
        45: .line 179
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 17 /* i */
            iload 2 /* n */
            if_icmplt 2
        end local 17 // int i
        47: .line 217
            return
        end local 4 // org.graalvm.polyglot.Value pairs
        end local 3 // org.graalvm.polyglot.Value bodies
        end local 2 // int n
        end local 0 // double dt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   48     0      dt  D
            0   48     2       n  I
            0   48     3  bodies  Lorg/graalvm/polyglot/Value;
            0   48     4   pairs  Lorg/graalvm/polyglot/Value;
           19   31     5      dx  D
           20   31     7      dy  D
           21   31     9      dz  D
           22   31    11     mag  D
           23   31    13     b1m  D
           24   31    15     b2m  D
            1   47    17       i  I
            3   32    18       j  I
            5   30    19   pair1  Lorg/graalvm/polyglot/Value;
            6   30    20    xyz1  Lorg/graalvm/polyglot/Value;
            7   30    21      x1  D
            8   30    23      y1  D
            9   30    25      z1  D
           10   30    27      v1  Lorg/graalvm/polyglot/Value;
           11   30    28      m1  D
           12   30    30   pair2  Lorg/graalvm/polyglot/Value;
           13   30    31    xyz2  Lorg/graalvm/polyglot/Value;
           14   30    32      x2  D
           15   30    34      y2  D
           16   30    36      z2  D
           17   30    38      v2  Lorg/graalvm/polyglot/Value;
           18   30    39      m2  D
           33   45    18       j  I
           35   43    19    body  Lorg/graalvm/polyglot/Value;
           36   43    20       r  Lorg/graalvm/polyglot/Value;
           37   43    21       v  Lorg/graalvm/polyglot/Value;
           38   43    22      vx  D
           39   43    24      vy  D
           40   43    26      vz  D
    MethodParameters:
        Name  Flags
      dt      
      n       
      bodies  
      pairs   

  private static void offset_momentum(org.graalvm.polyglot.Value, org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=19, args_size=2
        start local 0 // org.graalvm.polyglot.Value ref
        start local 1 // org.graalvm.polyglot.Value bodies
         0: .line 220
            dconst_0
            dstore 2 /* px */
        start local 2 // double px
         1: dconst_0
            dstore 4 /* py */
        start local 4 // double py
         2: dconst_0
            dstore 6 /* pz */
        start local 6 // double pz
         3: .line 221
            iconst_0
            istore 8 /* j */
        start local 8 // int j
         4: goto 15
         5: .line 223
      StackMap locals: org.graalvm.polyglot.Value org.graalvm.polyglot.Value double double double int
      StackMap stack:
            aload 1 /* bodies */
            iload 8 /* j */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 9 /* body */
        start local 9 // org.graalvm.polyglot.Value body
         6: .line 224
            aload 9 /* body */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 10 /* v */
        start local 10 // org.graalvm.polyglot.Value v
         7: .line 225
            aload 10 /* v */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 11 /* vx */
        start local 11 // double vx
         8: aload 10 /* v */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 13 /* vy */
        start local 13 // double vy
         9: aload 10 /* v */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 15 /* vz */
        start local 15 // double vz
        10: .line 226
            aload 9 /* body */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 17 /* m */
        start local 17 // double m
        11: .line 227
            dload 2 /* px */
            dload 11 /* vx */
            dload 17 /* m */
            dmul
            dsub
            dstore 2 /* px */
        12: .line 228
            dload 4 /* py */
            dload 13 /* vy */
            dload 17 /* m */
            dmul
            dsub
            dstore 4 /* py */
        13: .line 229
            dload 6 /* pz */
            dload 15 /* vz */
            dload 17 /* m */
            dmul
            dsub
            dstore 6 /* pz */
        end local 17 // double m
        end local 15 // double vz
        end local 13 // double vy
        end local 11 // double vx
        end local 10 // org.graalvm.polyglot.Value v
        end local 9 // org.graalvm.polyglot.Value body
        14: .line 221
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* j */
            i2l
            aload 1 /* bodies */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            lcmp
            iflt 5
        end local 8 // int j
        16: .line 232
            aload 0 /* ref */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            astore 8 /* v */
        start local 8 // org.graalvm.polyglot.Value v
        17: .line 233
            aload 0 /* ref */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
            dstore 9 /* m */
        start local 9 // double m
        18: .line 234
            aload 8 /* v */
            iconst_0
            dload 2 /* px */
            dload 9 /* m */
            ddiv
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setd:(Lorg/graalvm/polyglot/Value;ID)V
        19: .line 235
            aload 8 /* v */
            iconst_1
            dload 4 /* py */
            dload 9 /* m */
            ddiv
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setd:(Lorg/graalvm/polyglot/Value;ID)V
        20: .line 236
            aload 8 /* v */
            iconst_2
            dload 6 /* pz */
            dload 9 /* m */
            ddiv
            invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setd:(Lorg/graalvm/polyglot/Value;ID)V
        21: .line 237
            return
        end local 9 // double m
        end local 8 // org.graalvm.polyglot.Value v
        end local 6 // double pz
        end local 4 // double py
        end local 2 // double px
        end local 1 // org.graalvm.polyglot.Value bodies
        end local 0 // org.graalvm.polyglot.Value ref
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0     ref  Lorg/graalvm/polyglot/Value;
            0   22     1  bodies  Lorg/graalvm/polyglot/Value;
            1   22     2      px  D
            2   22     4      py  D
            3   22     6      pz  D
            4   16     8       j  I
            6   14     9    body  Lorg/graalvm/polyglot/Value;
            7   14    10       v  Lorg/graalvm/polyglot/Value;
            8   14    11      vx  D
            9   14    13      vy  D
           10   14    15      vz  D
           11   14    17       m  D
           17   22     8       v  Lorg/graalvm/polyglot/Value;
           18   22     9       m  D
    MethodParameters:
        Name  Flags
      ref     
      bodies  
}
SourceFile: "PyNbody.java"