Bytecode Analysis for script: spectralnorm

        /*
 * The Computer Language Shootout
 * http://shootout.alioth.debian.org/
 *
 * contributed by Jochen Hinrichsen
 */

def approximate(n) {
    // create unit vector
    def u = [1.0D] * n

    // 20 steps of the power method
    def v = [0.0D] * n

    for (i in 1..10) {
        MultiplyAtAv(n, u, v)
        MultiplyAtAv(n, v, u)
    }

    // B=AtA         A multiplied by A transposed
    // v.Bv / (v.v)  eigenvalue of v
    double vBv = vv = 0.0D
    for (i in 0..<n) {
        vBv += u[i]*v[i]
        vv  += v[i]*v[i]
    }

    return Math.sqrt(vBv / vv)
}

/* return element i,j of infinite matrix A */
def A(i, j) {
    return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
}

/* multiply vector v by matrix A */
def MultiplyAv(n, v, Av) {
    for (i in 0..<n) {
        Av[i] = 0.0D
        for (j in 0..<n) Av[i] += A(i,j) * v[j]
    }
}

/* multiply vector v by matrix A transposed */
def MultiplyAtv(n, v, Atv) {
    for (i in 0..<n) {
        Atv[i] = 0.0D
        for (j in 0..<n) Atv[i] += A(j,i) * v[j]
    }
}

/* multiply vector v by matrix A and then by matrix A transposed */
def MultiplyAtAv(n, v, AtAv) {
    double[] u = new double[n]
    MultiplyAv(n, v, u)
    MultiplyAtv(n, u, AtAv)
}

def n = (args.length == 0 ? 100 : args[0].toInteger())
def nf = java.text.NumberFormat.getInstance()
nf.setMaximumFractionDigits(9)
nf.setMinimumFractionDigits(9)
nf.setGroupingUsed(false)
println(nf.format(approximate(n)))

      
Groovyc Indy Static
Lines Removed 14 14 0
Total Lines - Before 968 496 0
Percentage of Lines Removed 1.4 2.8 Error

Benchmarks

For parameter: 1

Groovyc Indy Static
Benchmark Average - Before 469 553 N/A
Benchmark Average - After 470 546 N/A
Benchmark Std Dev - Before 8.91 13.22 N/A
Benchmark Std Dev - After 10.87 12.26 N/A

BEFORE

Groovyc (Legacy)

          Compiled from "spectralnorm.groovy"
public class spectralnorm extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public spectralnorm();
    Code:
       0: aload_0
       1: invokespecial #13                 // Method groovy/lang/Script."<init>":()V
       4: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       7: astore_1
       8: return

  public spectralnorm(groovy.lang.Binding);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_0
       5: aload_1
       6: invokespecial #22                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       9: return

  public static void main(java.lang.String...);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #27                 // int 0
       7: aaload
       8: ldc           #29                 // class org/codehaus/groovy/runtime/InvokerHelper
      10: ldc           #2                  // class spectralnorm
      12: aload_0
      13: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      18: pop
      19: return

  public java.lang.Object run();
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #40                 // int 1
       7: aaload
       8: aload_1
       9: ldc           #41                 // int 2
      11: aaload
      12: aload_0
      13: invokeinterface #45,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      18: invokeinterface #48,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      23: iconst_0
      24: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      27: invokestatic  #60                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      30: ifeq          41
      33: bipush        100
      35: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      38: goto          73
      41: aload_1
      42: ldc           #61                 // int 3
      44: aaload
      45: aload_1
      46: ldc           #62                 // int 4
      48: aaload
      49: aload_1
      50: ldc           #63                 // int 5
      52: aaload
      53: aload_0
      54: invokeinterface #45,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      59: iconst_0
      60: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      63: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      68: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      73: astore_2
      74: aload_2
      75: pop
      76: aload_1
      77: ldc           #69                 // int 6
      79: aaload
      80: ldc           #71                 // class java/text/NumberFormat
      82: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      87: astore_3
      88: aload_3
      89: pop
      90: aload_1
      91: ldc           #72                 // int 7
      93: aaload
      94: aload_3
      95: bipush        9
      97: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     100: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     105: pop
     106: aload_1
     107: ldc           #73                 // int 8
     109: aaload
     110: aload_3
     111: bipush        9
     113: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     116: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     121: pop
     122: aload_1
     123: ldc           #74                 // int 9
     125: aaload
     126: aload_3
     127: iconst_0
     128: invokestatic  #79                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     131: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     136: pop
     137: aload_1
     138: ldc           #80                 // int 10
     140: aaload
     141: aload_0
     142: aload_1
     143: ldc           #81                 // int 11
     145: aaload
     146: aload_3
     147: aload_1
     148: ldc           #82                 // int 12
     150: aaload
     151: aload_0
     152: aload_2
     153: invokeinterface #86,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     158: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     163: invokeinterface #86,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     168: areturn
     169: aconst_null
     170: areturn

  public java.lang.Object approximate(java.lang.Object);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_2
       5: ldc           #91                 // int 13
       7: aaload
       8: iconst_1
       9: anewarray     #93                 // class java/lang/Object
      12: dup
      13: iconst_0
      14: dconst_1
      15: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      18: aastore
      19: invokestatic  #102                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      22: aload_1
      23: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      28: astore_3
      29: aload_3
      30: pop
      31: aload_2
      32: ldc           #103                // int 14
      34: aaload
      35: iconst_1
      36: anewarray     #93                 // class java/lang/Object
      39: dup
      40: iconst_0
      41: dconst_0
      42: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      45: aastore
      46: invokestatic  #102                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      49: aload_1
      50: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      55: astore        4
      57: aload         4
      59: pop
      60: aconst_null
      61: astore        5
      63: aload_2
      64: ldc           #104                // int 15
      66: aaload
      67: iconst_1
      68: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      71: bipush        10
      73: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      76: ldc           #40                 // int 1
      78: invokestatic  #108                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      81: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      86: ldc           #110                // class java/util/Iterator
      88: invokestatic  #114                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      91: checkcast     #110                // class java/util/Iterator
      94: astore        6
      96: aload         6
      98: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     103: ifeq          148
     106: aload         6
     108: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     113: astore        5
     115: aload_2
     116: ldc           #122                // int 16
     118: aaload
     119: aload_0
     120: aload_1
     121: aload_3
     122: aload         4
     124: invokeinterface #125,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     129: pop
     130: aload_2
     131: ldc           #126                // int 17
     133: aaload
     134: aload_0
     135: aload_1
     136: aload         4
     138: aload_3
     139: invokeinterface #125,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     144: pop
     145: goto          96
     148: dconst_0
     149: dstore        7
     151: dload         7
     153: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     156: ldc           #2                  // class spectralnorm
     158: aload_0
     159: ldc           #128                // String vv
     161: checkcast     #130                // class java/lang/String
     164: invokestatic  #134                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     167: dload         7
     169: dstore        9
     171: dload         9
     173: pop2
     174: aconst_null
     175: astore        11
     177: aload_2
     178: ldc           #135                // int 18
     180: aaload
     181: iconst_0
     182: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     185: aload_1
     186: ldc           #27                 // int 0
     188: invokestatic  #108                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     191: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     196: ldc           #110                // class java/util/Iterator
     198: invokestatic  #114                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     201: checkcast     #110                // class java/util/Iterator
     204: astore        12
     206: aload         12
     208: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     213: ifeq          350
     216: aload         12
     218: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     223: astore        11
     225: aload_2
     226: ldc           #136                // int 19
     228: aaload
     229: dload         9
     231: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     234: aload_2
     235: ldc           #137                // int 20
     237: aaload
     238: aload_2
     239: ldc           #138                // int 21
     241: aaload
     242: aload_3
     243: aload         11
     245: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     250: aload_2
     251: ldc           #139                // int 22
     253: aaload
     254: aload         4
     256: aload         11
     258: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     263: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     268: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     273: dup
     274: invokestatic  #145                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     277: dstore        9
     279: pop
     280: aload_2
     281: ldc           #146                // int 23
     283: aaload
     284: aload_2
     285: ldc           #147                // int 24
     287: aaload
     288: aload_0
     289: invokeinterface #45,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     294: aload_2
     295: ldc           #148                // int 25
     297: aaload
     298: aload_2
     299: ldc           #149                // int 26
     301: aaload
     302: aload         4
     304: aload         11
     306: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     311: aload_2
     312: ldc           #150                // int 27
     314: aaload
     315: aload         4
     317: aload         11
     319: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     324: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     329: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     334: dup
     335: ldc           #2                  // class spectralnorm
     337: aload_0
     338: ldc           #128                // String vv
     340: checkcast     #130                // class java/lang/String
     343: invokestatic  #134                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     346: pop
     347: goto          206
     350: aload_2
     351: ldc           #151                // int 28
     353: aaload
     354: ldc           #153                // class java/lang/Math
     356: aload_2
     357: ldc           #154                // int 29
     359: aaload
     360: dload         9
     362: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     365: aload_2
     366: ldc           #155                // int 30
     368: aaload
     369: aload_0
     370: invokeinterface #45,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     375: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     380: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     385: areturn
     386: aconst_null
     387: areturn

  public java.lang.Object A(java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_3
       4: aload_3
       5: ldc           #162                // int 31
       7: aaload
       8: dconst_1
       9: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      12: aload_3
      13: ldc           #163                // int 32
      15: aaload
      16: aload_3
      17: ldc           #164                // int 33
      19: aaload
      20: aload_3
      21: ldc           #165                // int 34
      23: aaload
      24: aload_3
      25: ldc           #166                // int 35
      27: aaload
      28: aload_3
      29: ldc           #167                // int 36
      31: aaload
      32: aload_1
      33: aload_2
      34: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      39: aload_3
      40: ldc           #168                // int 37
      42: aaload
      43: aload_3
      44: ldc           #169                // int 38
      46: aaload
      47: aload_1
      48: aload_2
      49: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      54: dconst_1
      55: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      58: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      63: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      68: ldc2_w        #170                // double 2.0d
      71: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      74: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      79: aload_1
      80: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      85: dconst_1
      86: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      89: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      94: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      99: areturn
     100: aconst_null
     101: areturn

  public java.lang.Object MultiplyAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aconst_null
       6: astore        5
       8: aload         4
      10: ldc           #174                // int 39
      12: aaload
      13: iconst_0
      14: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: aload_1
      18: ldc           #27                 // int 0
      20: invokestatic  #108                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      23: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      28: ldc           #110                // class java/util/Iterator
      30: invokestatic  #114                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      33: checkcast     #110                // class java/util/Iterator
      36: astore        6
      38: aload         6
      40: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      45: ifeq          228
      48: aload         6
      50: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      55: astore        5
      57: dconst_0
      58: dstore        7
      60: aload         4
      62: ldc           #175                // int 40
      64: aaload
      65: aload_3
      66: aload         5
      68: dload         7
      70: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      73: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      78: pop
      79: dload         7
      81: pop2
      82: aconst_null
      83: astore        9
      85: aload         4
      87: ldc           #176                // int 41
      89: aaload
      90: iconst_0
      91: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      94: aload_1
      95: ldc           #27                 // int 0
      97: invokestatic  #108                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     100: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     105: ldc           #110                // class java/util/Iterator
     107: invokestatic  #114                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     110: checkcast     #110                // class java/util/Iterator
     113: astore        10
     115: aload         10
     117: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     122: ifeq          225
     125: aload         10
     127: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     132: astore        9
     134: aload         4
     136: ldc           #177                // int 42
     138: aaload
     139: aload_3
     140: dup
     141: astore        11
     143: aload         5
     145: dup
     146: astore        12
     148: aload         4
     150: ldc           #178                // int 43
     152: aaload
     153: aload         4
     155: ldc           #179                // int 44
     157: aaload
     158: aload         11
     160: aload         12
     162: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     167: aload         4
     169: ldc           #180                // int 45
     171: aaload
     172: aload         4
     174: ldc           #181                // int 46
     176: aaload
     177: aload_0
     178: aload         5
     180: aload         9
     182: invokeinterface #184,  4          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     187: aload         4
     189: ldc           #185                // int 47
     191: aaload
     192: aload_2
     193: aload         9
     195: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     200: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     205: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     210: dup
     211: astore        13
     213: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     218: pop
     219: aload         13
     221: pop
     222: goto          115
     225: goto          38
     228: aconst_null
     229: areturn
     230: aconst_null
     231: areturn

  public java.lang.Object MultiplyAtv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aconst_null
       6: astore        5
       8: aload         4
      10: ldc           #188                // int 48
      12: aaload
      13: iconst_0
      14: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: aload_1
      18: ldc           #27                 // int 0
      20: invokestatic  #108                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      23: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      28: ldc           #110                // class java/util/Iterator
      30: invokestatic  #114                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      33: checkcast     #110                // class java/util/Iterator
      36: astore        6
      38: aload         6
      40: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      45: ifeq          228
      48: aload         6
      50: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      55: astore        5
      57: dconst_0
      58: dstore        7
      60: aload         4
      62: ldc           #189                // int 49
      64: aaload
      65: aload_3
      66: aload         5
      68: dload         7
      70: invokestatic  #98                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      73: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      78: pop
      79: dload         7
      81: pop2
      82: aconst_null
      83: astore        9
      85: aload         4
      87: ldc           #190                // int 50
      89: aaload
      90: iconst_0
      91: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      94: aload_1
      95: ldc           #27                 // int 0
      97: invokestatic  #108                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     100: invokeinterface #68,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     105: ldc           #110                // class java/util/Iterator
     107: invokestatic  #114                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     110: checkcast     #110                // class java/util/Iterator
     113: astore        10
     115: aload         10
     117: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     122: ifeq          225
     125: aload         10
     127: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     132: astore        9
     134: aload         4
     136: ldc           #191                // int 51
     138: aaload
     139: aload_3
     140: dup
     141: astore        11
     143: aload         5
     145: dup
     146: astore        12
     148: aload         4
     150: ldc           #192                // int 52
     152: aaload
     153: aload         4
     155: ldc           #193                // int 53
     157: aaload
     158: aload         11
     160: aload         12
     162: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     167: aload         4
     169: ldc           #194                // int 54
     171: aaload
     172: aload         4
     174: ldc           #195                // int 55
     176: aaload
     177: aload_0
     178: aload         9
     180: aload         5
     182: invokeinterface #184,  4          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     187: aload         4
     189: ldc           #196                // int 56
     191: aaload
     192: aload_2
     193: aload         9
     195: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     200: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     205: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     210: dup
     211: astore        13
     213: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     218: pop
     219: aload         13
     221: pop
     222: goto          115
     225: goto          38
     228: aconst_null
     229: areturn
     230: aconst_null
     231: areturn

  public java.lang.Object MultiplyAtAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aload_1
       6: invokestatic  #202                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
       9: multianewarray #204,  1           // class "[D"
      13: astore        5
      15: aload         5
      17: pop
      18: aload         4
      20: ldc           #205                // int 57
      22: aaload
      23: aload_0
      24: aload_1
      25: aload_2
      26: aload         5
      28: invokeinterface #125,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      33: pop
      34: aload         4
      36: ldc           #206                // int 58
      38: aaload
      39: aload_0
      40: aload_1
      41: aload         5
      43: aload_3
      44: invokeinterface #125,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      49: areturn
      50: aconst_null
      51: areturn

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #213                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class spectralnorm
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #217                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #219                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #213                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #225                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #219                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #228                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Invoke Dynamic

          Compiled from "spectralnorm.groovy"
public class spectralnorm extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public spectralnorm();
    Code:
       0: aload_0
       1: invokespecial #13                 // Method groovy/lang/Script."<init>":()V
       4: return

  public spectralnorm(groovy.lang.Binding);
    Code:
       0: aload_0
       1: aload_1
       2: invokespecial #18                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       5: return

  public static void main(java.lang.String...);
    Code:
       0: ldc           #24                 // class org/codehaus/groovy/runtime/InvokerHelper
       2: ldc           #2                  // class spectralnorm
       4: aload_0
       5: invokedynamic #38,  0             // InvokeDynamic #0:invoke:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)Ljava/lang/Object;
      10: pop
      11: return

  public java.lang.Object run();
    Code:
       0: aload_0
       1: invokedynamic #48,  0             // InvokeDynamic #1:getProperty:(Lspectralnorm;)Ljava/lang/Object;
       6: invokedynamic #53,  0             // InvokeDynamic #2:getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      11: iconst_0
      12: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      15: invokestatic  #65                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      18: ifeq          29
      21: bipush        100
      23: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      26: goto          46
      29: aload_0
      30: invokedynamic #48,  0             // InvokeDynamic #1:getProperty:(Lspectralnorm;)Ljava/lang/Object;
      35: iconst_0
      36: invokedynamic #70,  0             // InvokeDynamic #3:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      41: invokedynamic #74,  0             // InvokeDynamic #4:invoke:(Ljava/lang/Object;)Ljava/lang/Object;
      46: astore_1
      47: aload_1
      48: pop
      49: ldc           #76                 // class java/text/NumberFormat
      51: invokedynamic #81,  0             // InvokeDynamic #5:invoke:(Ljava/lang/Class;)Ljava/lang/Object;
      56: astore_2
      57: aload_2
      58: pop
      59: aload_2
      60: bipush        9
      62: invokedynamic #84,  0             // InvokeDynamic #6:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      67: pop
      68: aload_2
      69: bipush        9
      71: invokedynamic #87,  0             // InvokeDynamic #7:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      76: pop
      77: aload_2
      78: iconst_0
      79: invokedynamic #92,  0             // InvokeDynamic #8:invoke:(Ljava/lang/Object;Z)Ljava/lang/Object;
      84: pop
      85: aload_0
      86: aload_2
      87: aload_0
      88: aload_1
      89: invokedynamic #98,  0             // InvokeDynamic #9:invoke:(Lspectralnorm;Ljava/lang/Object;)Ljava/lang/Object;
      94: invokedynamic #103,  0            // InvokeDynamic #10:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      99: invokedynamic #106,  0            // InvokeDynamic #11:invoke:(Lspectralnorm;Ljava/lang/Object;)Ljava/lang/Object;
     104: areturn
     105: nop
     106: athrow

  public java.lang.Object approximate(java.lang.Object);
    Code:
       0: iconst_1
       1: anewarray     #111                // class java/lang/Object
       4: dup
       5: iconst_0
       6: dconst_1
       7: invokestatic  #118                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      10: aastore
      11: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      14: aload_1
      15: invokedynamic #127,  0            // InvokeDynamic #12:invoke:(Ljava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
      20: astore_2
      21: aload_2
      22: pop
      23: iconst_1
      24: anewarray     #111                // class java/lang/Object
      27: dup
      28: iconst_0
      29: dconst_0
      30: invokestatic  #118                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      33: aastore
      34: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      37: aload_1
      38: invokedynamic #127,  0            // InvokeDynamic #12:invoke:(Ljava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
      43: astore_3
      44: aload_3
      45: pop
      46: aconst_null
      47: astore        4
      49: iconst_1
      50: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      53: bipush        10
      55: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      58: ldc           #128                // int 1
      60: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      63: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      68: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      73: astore        5
      75: aload         5
      77: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      82: ifeq          117
      85: aload         5
      87: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      92: astore        4
      94: aload_0
      95: aload_1
      96: aload_2
      97: aload_3
      98: invokedynamic #157,  0            // InvokeDynamic #15:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     103: pop
     104: aload_0
     105: aload_1
     106: aload_3
     107: aload_2
     108: invokedynamic #157,  0            // InvokeDynamic #15:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     113: pop
     114: goto          75
     117: dconst_0
     118: dstore        6
     120: dload         6
     122: invokestatic  #118                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     125: ldc           #2                  // class spectralnorm
     127: aload_0
     128: ldc           #159                // String vv
     130: checkcast     #161                // class java/lang/String
     133: invokestatic  #165                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     136: dload         6
     138: dstore        8
     140: dload         8
     142: pop2
     143: aconst_null
     144: astore        10
     146: iconst_0
     147: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     150: aload_1
     151: ldc           #34                 // int 0
     153: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     156: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     161: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     166: astore        11
     168: aload         11
     170: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     175: ifeq          270
     178: aload         11
     180: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     185: astore        10
     187: dload         8
     189: aload_2
     190: aload         10
     192: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     197: aload_3
     198: aload         10
     200: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     205: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     210: invokedynamic #172,  0            // InvokeDynamic #16:invoke:(DLjava/lang/Object;)Ljava/lang/Object;
     215: dup
     216: invokestatic  #178                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     219: dstore        8
     221: pop
     222: aload_0
     223: invokedynamic #179,  0            // InvokeDynamic #17:getProperty:(Lspectralnorm;)Ljava/lang/Object;
     228: aload_3
     229: aload         10
     231: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     236: aload_3
     237: aload         10
     239: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     244: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     249: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     254: dup
     255: ldc           #2                  // class spectralnorm
     257: aload_0
     258: ldc           #159                // String vv
     260: checkcast     #161                // class java/lang/String
     263: invokestatic  #165                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     266: pop
     267: goto          168
     270: ldc           #182                // class java/lang/Math
     272: dload         8
     274: aload_0
     275: invokedynamic #179,  0            // InvokeDynamic #17:getProperty:(Lspectralnorm;)Ljava/lang/Object;
     280: invokedynamic #185,  0            // InvokeDynamic #18:invoke:(DLjava/lang/Object;)Ljava/lang/Object;
     285: invokedynamic #190,  0            // InvokeDynamic #19:invoke:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
     290: areturn
     291: nop
     292: athrow

  public java.lang.Object A(java.lang.Object, java.lang.Object);
    Code:
       0: dconst_1
       1: aload_1
       2: aload_2
       3: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
       8: aload_1
       9: aload_2
      10: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      15: dconst_1
      16: invokedynamic #199,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
      21: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      26: ldc2_w        #200                // double 2.0d
      29: invokedynamic #202,  0            // InvokeDynamic #18:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
      34: aload_1
      35: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      40: dconst_1
      41: invokedynamic #199,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
      46: invokedynamic #185,  0            // InvokeDynamic #18:invoke:(DLjava/lang/Object;)Ljava/lang/Object;
      51: areturn
      52: nop
      53: athrow

  public java.lang.Object MultiplyAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aconst_null
       1: astore        4
       3: iconst_0
       4: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       7: aload_1
       8: ldc           #34                 // int 0
      10: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      13: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      18: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      23: astore        5
      25: aload         5
      27: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      32: ifeq          169
      35: aload         5
      37: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      42: astore        4
      44: dconst_0
      45: dstore        6
      47: aload_3
      48: aload         4
      50: dload         6
      52: invokedynamic #210,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;D)Ljava/lang/Object;
      57: pop
      58: dload         6
      60: pop2
      61: aconst_null
      62: astore        8
      64: iconst_0
      65: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      68: aload_1
      69: ldc           #34                 // int 0
      71: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      74: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      79: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      84: astore        9
      86: aload         9
      88: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      93: ifeq          166
      96: aload         9
      98: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     103: astore        8
     105: aload_3
     106: dup
     107: astore        10
     109: aload         4
     111: dup
     112: astore        11
     114: aload         10
     116: aload         11
     118: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     123: aload_0
     124: aload         4
     126: aload         8
     128: invokedynamic #214,  0            // InvokeDynamic #21:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     133: aload_2
     134: aload         8
     136: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     141: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     146: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     151: dup
     152: astore        12
     154: invokedynamic #216,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     159: pop
     160: aload         12
     162: pop
     163: goto          86
     166: goto          25
     169: aconst_null
     170: areturn
     171: nop
     172: athrow

  public java.lang.Object MultiplyAtv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aconst_null
       1: astore        4
       3: iconst_0
       4: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       7: aload_1
       8: ldc           #34                 // int 0
      10: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      13: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      18: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      23: astore        5
      25: aload         5
      27: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      32: ifeq          169
      35: aload         5
      37: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      42: astore        4
      44: dconst_0
      45: dstore        6
      47: aload_3
      48: aload         4
      50: dload         6
      52: invokedynamic #210,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;D)Ljava/lang/Object;
      57: pop
      58: dload         6
      60: pop2
      61: aconst_null
      62: astore        8
      64: iconst_0
      65: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      68: aload_1
      69: ldc           #34                 // int 0
      71: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      74: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      79: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      84: astore        9
      86: aload         9
      88: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      93: ifeq          166
      96: aload         9
      98: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     103: astore        8
     105: aload_3
     106: dup
     107: astore        10
     109: aload         4
     111: dup
     112: astore        11
     114: aload         10
     116: aload         11
     118: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     123: aload_0
     124: aload         8
     126: aload         4
     128: invokedynamic #214,  0            // InvokeDynamic #21:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     133: aload_2
     134: aload         8
     136: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     141: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     146: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     151: dup
     152: astore        12
     154: invokedynamic #216,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     159: pop
     160: aload         12
     162: pop
     163: goto          86
     166: goto          25
     169: aconst_null
     170: areturn
     171: nop
     172: athrow

  public java.lang.Object MultiplyAtAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aload_1
       1: invokestatic  #223                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
       4: multianewarray #225,  1           // class "[D"
       8: astore        4
      10: aload         4
      12: pop
      13: aload_0
      14: aload_1
      15: aload_2
      16: aload         4
      18: invokedynamic #229,  0            // InvokeDynamic #22:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;[D)Ljava/lang/Object;
      23: pop
      24: aload_0
      25: aload_1
      26: aload         4
      28: aload_3
      29: invokedynamic #233,  0            // InvokeDynamic #23:invoke:(Lspectralnorm;Ljava/lang/Object;[DLjava/lang/Object;)Ljava/lang/Object;
      34: areturn
      35: nop
      36: athrow

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #240                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class spectralnorm
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #244                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #246                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #240                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #252                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #246                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #255                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Static Compilation

          org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 59: [Static type checking] - The variable [args] is undeclared.
 @ line 59, column 10.
   def n = (args.length == 0 ? 100 : args[0].toInteger())
            ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 59: [Static type checking] - The variable [args] is undeclared.
 @ line 59, column 35.
   def n = (args.length == 0 ? 100 : args[0].toInteger())
                                     ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 10: [Static type checking] - Cannot find matching method java.util.List#multiply(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 10, column 20.
       def u = [1.0D] * n
                      ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 13: [Static type checking] - Cannot find matching method java.util.List#multiply(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 13, column 20.
       def v = [0.0D] * n
                      ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 22: [Static type checking] - The variable [vv] is undeclared.
 @ line 22, column 18.
       double vBv = vv = 0.0D
                    ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 24: [Static type checking] - Cannot find matching method java.util.List#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 24, column 16.
           vBv += u[i]*v[i]
                  ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 24: [Static type checking] - Cannot find matching method java.util.List#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 24, column 21.
           vBv += u[i]*v[i]
                       ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 24: [Static type checking] - Cannot find matching method java.util.List#multiply(java.util.List <java.lang.Double>). Please check if the declared type is right and if the method exists.
 @ line 24, column 20.
           vBv += u[i]*v[i]
                      ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 24: [Static type checking] - Cannot find matching method double#plus(java.util.List <java.lang.Double>). Please check if the declared type is right and if the method exists.
 @ line 24, column 9.
           vBv += u[i]*v[i]
           ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 25: [Static type checking] - The variable [vv] is undeclared.
 @ line 25, column 9.
           vv  += v[i]*v[i]
           ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 25: [Static type checking] - Cannot find matching method java.util.List#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 25, column 16.
           vv  += v[i]*v[i]
                  ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 25: [Static type checking] - Cannot find matching method java.util.List#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 25, column 21.
           vv  += v[i]*v[i]
                       ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 25: [Static type checking] - Cannot find matching method java.util.List#multiply(java.util.List <java.lang.Double>). Please check if the declared type is right and if the method exists.
 @ line 25, column 20.
           vv  += v[i]*v[i]
                      ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 28: [Static type checking] - The variable [vv] is undeclared.
 @ line 28, column 28.
       return Math.sqrt(vBv / vv)
                              ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 28: [Static type checking] - Cannot find matching method double#div(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 28, column 22.
       return Math.sqrt(vBv / vv)
                        ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#plus(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 33, column 20.
       return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
                      ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#plus(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 33, column 31.
       return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
                                 ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#plus(double). Please check if the declared type is right and if the method exists.
 @ line 33, column 28.
       return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
                              ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#multiply(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 33, column 26.
       return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
                            ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#div(double). Please check if the declared type is right and if the method exists.
 @ line 33, column 43.
   .0D / ((i+j) * (i + j + 1.0D) / 2.0D  + 
                                 ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#plus(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 33, column 51.
   i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D
                                 ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method java.lang.Object#plus(double). Please check if the declared type is right and if the method exists.
 @ line 33, column 19.
       return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
                     ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 33: [Static type checking] - Cannot find matching method double#div(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 33, column 17.
       return 1.0D / ((i+j) * (i + j + 1.0D) / 2.0D  + i + 1.0D)
                   ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 39: [Static type checking] - Cannot find matching method java.lang.Object#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 39, column 9.
           Av[i] = 0.0D
           ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 40: [Static type checking] - Cannot find matching method java.lang.Object#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 40, column 26.
           for (j in 0..<n) Av[i] += A(i,j) * v[j]
                            ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 40: [Static type checking] - Cannot find matching method java.lang.Object#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 40, column 44.
   j in 0..<n) Av[i] += A(i,j) * v[j]
                                 ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 40: [Static type checking] - Cannot find matching method java.lang.Object#multiply(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 40, column 42.
    (j in 0..<n) Av[i] += A(i,j) * v[j]
                                 ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 47: [Static type checking] - Cannot find matching method java.lang.Object#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 47, column 9.
           Atv[i] = 0.0D
           ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 48: [Static type checking] - Cannot find matching method java.lang.Object#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 48, column 26.
           for (j in 0..<n) Atv[i] += A(j,i) * v[j]
                            ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/spectralnorm.groovy: 48: [Static type checking] - Cannot find matching method java.lang.Object#getAt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 48, column 45.
    in 0..<n) Atv[i] += A(j,i) * v[j]
                                 ^

30 errors


        

AFTER

Groovyc (Legacy)

          Compiled from "spectralnorm.groovy"
public class spectralnorm extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public spectralnorm();
    Code:
       0: aload_0
       1: invokespecial #15                 // Method groovy/lang/Script."<init>":()V
       4: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       7: astore_1
       8: return

  public spectralnorm(groovy.lang.Binding);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_0
       5: aload_1
       6: invokespecial #24                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       9: return

  public static void main(java.lang.String...);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #29                 // int 0
       7: aaload
       8: ldc           #31                 // class org/codehaus/groovy/runtime/InvokerHelper
      10: ldc           #2                  // class spectralnorm
      12: aload_0
      13: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      18: pop
      19: return

  public java.lang.Object run();
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #42                 // int 1
       7: aaload
       8: aload_1
       9: ldc           #43                 // int 2
      11: aaload
      12: aload_0
      13: invokeinterface #47,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      18: invokeinterface #50,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      23: iconst_0
      24: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      27: invokestatic  #62                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      30: ifeq          41
      33: bipush        100
      35: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      38: goto          73
      41: aload_1
      42: ldc           #63                 // int 3
      44: aaload
      45: aload_1
      46: ldc           #64                 // int 4
      48: aaload
      49: aload_1
      50: ldc           #65                 // int 5
      52: aaload
      53: aload_0
      54: invokeinterface #47,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      59: iconst_0
      60: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      63: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      68: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      73: astore_2
      74: aload_1
      75: ldc           #71                 // int 6
      77: aaload
      78: ldc           #73                 // class java/text/NumberFormat
      80: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      85: astore_3
      86: aload_1
      87: ldc           #74                 // int 7
      89: aaload
      90: aload_3
      91: bipush        9
      93: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      96: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     101: pop
     102: aload_1
     103: ldc           #75                 // int 8
     105: aaload
     106: aload_3
     107: bipush        9
     109: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     112: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     117: pop
     118: aload_1
     119: ldc           #76                 // int 9
     121: aaload
     122: aload_3
     123: iconst_0
     124: invokestatic  #81                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     127: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     132: pop
     133: aload_1
     134: ldc           #82                 // int 10
     136: aaload
     137: aload_0
     138: aload_1
     139: ldc           #83                 // int 11
     141: aaload
     142: aload_3
     143: aload_1
     144: ldc           #84                 // int 12
     146: aaload
     147: aload_0
     148: aload_2
     149: invokeinterface #88,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     154: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     159: invokeinterface #88,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     164: areturn
     165: aconst_null
     166: areturn

  public java.lang.Object approximate(java.lang.Object);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_2
       5: ldc           #93                 // int 13
       7: aaload
       8: iconst_1
       9: anewarray     #95                 // class java/lang/Object
      12: dup
      13: iconst_0
      14: dconst_1
      15: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      18: aastore
      19: invokestatic  #104                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      22: aload_1
      23: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      28: astore_3
      29: aload_2
      30: ldc           #105                // int 14
      32: aaload
      33: iconst_1
      34: anewarray     #95                 // class java/lang/Object
      37: dup
      38: iconst_0
      39: dconst_0
      40: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      43: aastore
      44: invokestatic  #104                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      47: aload_1
      48: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      53: astore        4
      55: aconst_null
      56: astore        5
      58: aload_2
      59: ldc           #106                // int 15
      61: aaload
      62: iconst_1
      63: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      66: bipush        10
      68: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      71: ldc           #42                 // int 1
      73: invokestatic  #110                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      76: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      81: ldc           #112                // class java/util/Iterator
      83: invokestatic  #116                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      86: checkcast     #112                // class java/util/Iterator
      89: astore        6
      91: aload         6
      93: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      98: ifeq          143
     101: aload         6
     103: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     108: astore        5
     110: aload_2
     111: ldc           #124                // int 16
     113: aaload
     114: aload_0
     115: aload_1
     116: aload_3
     117: aload         4
     119: invokeinterface #127,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     124: pop
     125: aload_2
     126: ldc           #128                // int 17
     128: aaload
     129: aload_0
     130: aload_1
     131: aload         4
     133: aload_3
     134: invokeinterface #127,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     139: pop
     140: goto          91
     143: dconst_0
     144: dstore        7
     146: dload         7
     148: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     151: ldc           #2                  // class spectralnorm
     153: aload_0
     154: ldc           #130                // String vv
     156: checkcast     #132                // class java/lang/String
     159: invokestatic  #136                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     162: dload         7
     164: dstore        9
     166: dload         9
     168: pop2
     169: aconst_null
     170: astore        11
     172: aload_2
     173: ldc           #137                // int 18
     175: aaload
     176: iconst_0
     177: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     180: aload_1
     181: ldc           #29                 // int 0
     183: invokestatic  #110                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     186: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     191: ldc           #112                // class java/util/Iterator
     193: invokestatic  #116                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     196: checkcast     #112                // class java/util/Iterator
     199: astore        12
     201: aload         12
     203: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     208: ifeq          345
     211: aload         12
     213: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     218: astore        11
     220: aload_2
     221: ldc           #138                // int 19
     223: aaload
     224: dload         9
     226: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     229: aload_2
     230: ldc           #139                // int 20
     232: aaload
     233: aload_2
     234: ldc           #140                // int 21
     236: aaload
     237: aload_3
     238: aload         11
     240: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     245: aload_2
     246: ldc           #141                // int 22
     248: aaload
     249: aload         4
     251: aload         11
     253: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     258: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     263: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     268: dup
     269: invokestatic  #147                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     272: dstore        9
     274: pop
     275: aload_2
     276: ldc           #148                // int 23
     278: aaload
     279: aload_2
     280: ldc           #149                // int 24
     282: aaload
     283: aload_0
     284: invokeinterface #47,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     289: aload_2
     290: ldc           #150                // int 25
     292: aaload
     293: aload_2
     294: ldc           #151                // int 26
     296: aaload
     297: aload         4
     299: aload         11
     301: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     306: aload_2
     307: ldc           #152                // int 27
     309: aaload
     310: aload         4
     312: aload         11
     314: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     319: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     324: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     329: dup
     330: ldc           #2                  // class spectralnorm
     332: aload_0
     333: ldc           #130                // String vv
     335: checkcast     #132                // class java/lang/String
     338: invokestatic  #136                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     341: pop
     342: goto          201
     345: aload_2
     346: ldc           #153                // int 28
     348: aaload
     349: ldc           #155                // class java/lang/Math
     351: aload_2
     352: ldc           #156                // int 29
     354: aaload
     355: dload         9
     357: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     360: aload_2
     361: ldc           #157                // int 30
     363: aaload
     364: aload_0
     365: invokeinterface #47,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     370: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     375: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     380: areturn
     381: aconst_null
     382: areturn

  public java.lang.Object A(java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_3
       4: aload_3
       5: ldc           #164                // int 31
       7: aaload
       8: dconst_1
       9: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      12: aload_3
      13: ldc           #165                // int 32
      15: aaload
      16: aload_3
      17: ldc           #166                // int 33
      19: aaload
      20: aload_3
      21: ldc           #167                // int 34
      23: aaload
      24: aload_3
      25: ldc           #168                // int 35
      27: aaload
      28: aload_3
      29: ldc           #169                // int 36
      31: aaload
      32: aload_1
      33: aload_2
      34: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      39: aload_3
      40: ldc           #170                // int 37
      42: aaload
      43: aload_3
      44: ldc           #171                // int 38
      46: aaload
      47: aload_1
      48: aload_2
      49: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      54: dconst_1
      55: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      58: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      63: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      68: ldc2_w        #172                // double 2.0d
      71: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      74: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      79: aload_1
      80: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      85: dconst_1
      86: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      89: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      94: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      99: areturn
     100: aconst_null
     101: areturn

  public java.lang.Object MultiplyAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aconst_null
       6: astore        5
       8: aload         4
      10: ldc           #176                // int 39
      12: aaload
      13: iconst_0
      14: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: aload_1
      18: ldc           #29                 // int 0
      20: invokestatic  #110                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      23: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      28: ldc           #112                // class java/util/Iterator
      30: invokestatic  #116                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      33: checkcast     #112                // class java/util/Iterator
      36: astore        6
      38: aload         6
      40: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      45: ifeq          225
      48: aload         6
      50: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      55: astore        5
      57: dconst_0
      58: dstore        7
      60: aload         4
      62: ldc           #177                // int 40
      64: aaload
      65: aload_3
      66: aload         5
      68: dload         7
      70: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      73: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      78: pop
      79: dload         7
      81: pop2
      82: aconst_null
      83: astore        9
      85: aload         4
      87: ldc           #178                // int 41
      89: aaload
      90: iconst_0
      91: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      94: aload_1
      95: ldc           #29                 // int 0
      97: invokestatic  #110                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     100: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     105: ldc           #112                // class java/util/Iterator
     107: invokestatic  #116                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     110: checkcast     #112                // class java/util/Iterator
     113: astore        10
     115: aload         10
     117: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     122: ifeq          222
     125: aload         10
     127: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     132: astore        9
     134: aload         4
     136: ldc           #179                // int 42
     138: aaload
     139: aload_3
     140: dup
     141: astore        11
     143: aload         5
     145: dup
     146: astore        12
     148: aload         4
     150: ldc           #180                // int 43
     152: aaload
     153: aload         4
     155: ldc           #181                // int 44
     157: aaload
     158: aload         11
     160: aload         12
     162: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     167: aload         4
     169: ldc           #182                // int 45
     171: aaload
     172: aload         4
     174: ldc           #183                // int 46
     176: aaload
     177: aload_0
     178: aload         5
     180: aload         9
     182: invokeinterface #186,  4          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     187: aload         4
     189: ldc           #187                // int 47
     191: aaload
     192: aload_2
     193: aload         9
     195: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     200: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     205: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     210: dup
     211: astore        13
     213: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     218: pop
     219: goto          115
     222: goto          38
     225: aconst_null
     226: areturn
     227: aconst_null
     228: areturn

  public java.lang.Object MultiplyAtv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aconst_null
       6: astore        5
       8: aload         4
      10: ldc           #190                // int 48
      12: aaload
      13: iconst_0
      14: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: aload_1
      18: ldc           #29                 // int 0
      20: invokestatic  #110                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      23: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
      28: ldc           #112                // class java/util/Iterator
      30: invokestatic  #116                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      33: checkcast     #112                // class java/util/Iterator
      36: astore        6
      38: aload         6
      40: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      45: ifeq          225
      48: aload         6
      50: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      55: astore        5
      57: dconst_0
      58: dstore        7
      60: aload         4
      62: ldc           #191                // int 49
      64: aaload
      65: aload_3
      66: aload         5
      68: dload         7
      70: invokestatic  #100                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      73: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      78: pop
      79: dload         7
      81: pop2
      82: aconst_null
      83: astore        9
      85: aload         4
      87: ldc           #192                // int 50
      89: aaload
      90: iconst_0
      91: invokestatic  #56                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      94: aload_1
      95: ldc           #29                 // int 0
      97: invokestatic  #110                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     100: invokeinterface #70,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     105: ldc           #112                // class java/util/Iterator
     107: invokestatic  #116                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     110: checkcast     #112                // class java/util/Iterator
     113: astore        10
     115: aload         10
     117: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     122: ifeq          222
     125: aload         10
     127: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     132: astore        9
     134: aload         4
     136: ldc           #193                // int 51
     138: aaload
     139: aload_3
     140: dup
     141: astore        11
     143: aload         5
     145: dup
     146: astore        12
     148: aload         4
     150: ldc           #194                // int 52
     152: aaload
     153: aload         4
     155: ldc           #195                // int 53
     157: aaload
     158: aload         11
     160: aload         12
     162: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     167: aload         4
     169: ldc           #196                // int 54
     171: aaload
     172: aload         4
     174: ldc           #197                // int 55
     176: aaload
     177: aload_0
     178: aload         9
     180: aload         5
     182: invokeinterface #186,  4          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     187: aload         4
     189: ldc           #198                // int 56
     191: aaload
     192: aload_2
     193: aload         9
     195: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     200: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     205: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     210: dup
     211: astore        13
     213: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     218: pop
     219: goto          115
     222: goto          38
     225: aconst_null
     226: areturn
     227: aconst_null
     228: areturn

  public java.lang.Object MultiplyAtAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aload_1
       6: invokestatic  #204                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
       9: multianewarray #206,  1           // class "[D"
      13: astore        5
      15: aload         4
      17: ldc           #207                // int 57
      19: aaload
      20: aload_0
      21: aload_1
      22: aload_2
      23: aload         5
      25: invokeinterface #127,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      30: pop
      31: aload         4
      33: ldc           #208                // int 58
      35: aaload
      36: aload_0
      37: aload_1
      38: aload         5
      40: aload_3
      41: invokeinterface #127,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      46: areturn
      47: aconst_null
      48: areturn

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #215                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class spectralnorm
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #219                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #221                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #215                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #227                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #221                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #230                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Invoke Dynamic

          Compiled from "spectralnorm.groovy"
public class spectralnorm extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public spectralnorm();
    Code:
       0: aload_0
       1: invokespecial #13                 // Method groovy/lang/Script."<init>":()V
       4: return

  public spectralnorm(groovy.lang.Binding);
    Code:
       0: aload_0
       1: aload_1
       2: invokespecial #18                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       5: return

  public static void main(java.lang.String...);
    Code:
       0: ldc           #24                 // class org/codehaus/groovy/runtime/InvokerHelper
       2: ldc           #2                  // class spectralnorm
       4: aload_0
       5: invokedynamic #38,  0             // InvokeDynamic #0:invoke:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)Ljava/lang/Object;
      10: pop
      11: return

  public java.lang.Object run();
    Code:
       0: aload_0
       1: invokedynamic #48,  0             // InvokeDynamic #1:getProperty:(Lspectralnorm;)Ljava/lang/Object;
       6: invokedynamic #53,  0             // InvokeDynamic #2:getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      11: iconst_0
      12: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      15: invokestatic  #65                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      18: ifeq          29
      21: bipush        100
      23: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      26: goto          46
      29: aload_0
      30: invokedynamic #48,  0             // InvokeDynamic #1:getProperty:(Lspectralnorm;)Ljava/lang/Object;
      35: iconst_0
      36: invokedynamic #70,  0             // InvokeDynamic #3:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      41: invokedynamic #74,  0             // InvokeDynamic #4:invoke:(Ljava/lang/Object;)Ljava/lang/Object;
      46: astore_1
      47: ldc           #78                 // class java/text/NumberFormat
      49: invokedynamic #83,  0             // InvokeDynamic #5:invoke:(Ljava/lang/Class;)Ljava/lang/Object;
      54: astore_2
      55: aload_2
      56: bipush        9
      58: invokedynamic #86,  0             // InvokeDynamic #6:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      63: pop
      64: aload_2
      65: bipush        9
      67: invokedynamic #89,  0             // InvokeDynamic #7:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      72: pop
      73: aload_2
      74: iconst_0
      75: invokedynamic #94,  0             // InvokeDynamic #8:invoke:(Ljava/lang/Object;Z)Ljava/lang/Object;
      80: pop
      81: aload_0
      82: aload_2
      83: aload_0
      84: aload_1
      85: invokedynamic #100,  0            // InvokeDynamic #9:invoke:(Lspectralnorm;Ljava/lang/Object;)Ljava/lang/Object;
      90: invokedynamic #105,  0            // InvokeDynamic #10:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      95: invokedynamic #108,  0            // InvokeDynamic #11:invoke:(Lspectralnorm;Ljava/lang/Object;)Ljava/lang/Object;
     100: areturn
     101: nop
     102: athrow

  public java.lang.Object approximate(java.lang.Object);
    Code:
       0: iconst_1
       1: anewarray     #76                 // class java/lang/Object
       4: dup
       5: iconst_0
       6: dconst_1
       7: invokestatic  #118                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      10: aastore
      11: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      14: aload_1
      15: invokedynamic #127,  0            // InvokeDynamic #12:invoke:(Ljava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
      20: astore_2
      21: iconst_1
      22: anewarray     #76                 // class java/lang/Object
      25: dup
      26: iconst_0
      27: dconst_0
      28: invokestatic  #118                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
      31: aastore
      32: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      35: aload_1
      36: invokedynamic #127,  0            // InvokeDynamic #12:invoke:(Ljava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
      41: astore_3
      42: aconst_null
      43: astore        4
      45: iconst_1
      46: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      49: bipush        10
      51: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      54: ldc           #128                // int 1
      56: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      59: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      64: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      69: astore        5
      71: aload         5
      73: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      78: ifeq          113
      81: aload         5
      83: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      88: astore        4
      90: aload_0
      91: aload_1
      92: aload_2
      93: aload_3
      94: invokedynamic #157,  0            // InvokeDynamic #15:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      99: pop
     100: aload_0
     101: aload_1
     102: aload_3
     103: aload_2
     104: invokedynamic #157,  0            // InvokeDynamic #15:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     109: pop
     110: goto          71
     113: dconst_0
     114: dstore        6
     116: dload         6
     118: invokestatic  #118                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     121: ldc           #2                  // class spectralnorm
     123: aload_0
     124: ldc           #159                // String vv
     126: checkcast     #161                // class java/lang/String
     129: invokestatic  #165                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     132: dload         6
     134: dstore        8
     136: dload         8
     138: pop2
     139: aconst_null
     140: astore        10
     142: iconst_0
     143: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     146: aload_1
     147: ldc           #34                 // int 0
     149: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     152: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     157: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     162: astore        11
     164: aload         11
     166: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     171: ifeq          266
     174: aload         11
     176: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     181: astore        10
     183: dload         8
     185: aload_2
     186: aload         10
     188: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     193: aload_3
     194: aload         10
     196: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     201: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     206: invokedynamic #172,  0            // InvokeDynamic #16:invoke:(DLjava/lang/Object;)Ljava/lang/Object;
     211: dup
     212: invokestatic  #178                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     215: dstore        8
     217: pop
     218: aload_0
     219: invokedynamic #179,  0            // InvokeDynamic #17:getProperty:(Lspectralnorm;)Ljava/lang/Object;
     224: aload_3
     225: aload         10
     227: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     232: aload_3
     233: aload         10
     235: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     240: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     245: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     250: dup
     251: ldc           #2                  // class spectralnorm
     253: aload_0
     254: ldc           #159                // String vv
     256: checkcast     #161                // class java/lang/String
     259: invokestatic  #165                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.setGroovyObjectProperty:(Ljava/lang/Object;Ljava/lang/Class;Lgroovy/lang/GroovyObject;Ljava/lang/String;)V
     262: pop
     263: goto          164
     266: ldc           #182                // class java/lang/Math
     268: dload         8
     270: aload_0
     271: invokedynamic #179,  0            // InvokeDynamic #17:getProperty:(Lspectralnorm;)Ljava/lang/Object;
     276: invokedynamic #185,  0            // InvokeDynamic #18:invoke:(DLjava/lang/Object;)Ljava/lang/Object;
     281: invokedynamic #190,  0            // InvokeDynamic #19:invoke:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
     286: areturn
     287: nop
     288: athrow

  public java.lang.Object A(java.lang.Object, java.lang.Object);
    Code:
       0: dconst_1
       1: aload_1
       2: aload_2
       3: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
       8: aload_1
       9: aload_2
      10: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      15: dconst_1
      16: invokedynamic #199,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
      21: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      26: ldc2_w        #200                // double 2.0d
      29: invokedynamic #202,  0            // InvokeDynamic #18:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
      34: aload_1
      35: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      40: dconst_1
      41: invokedynamic #199,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
      46: invokedynamic #185,  0            // InvokeDynamic #18:invoke:(DLjava/lang/Object;)Ljava/lang/Object;
      51: areturn
      52: nop
      53: athrow

  public java.lang.Object MultiplyAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aconst_null
       1: astore        4
       3: iconst_0
       4: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       7: aload_1
       8: ldc           #34                 // int 0
      10: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      13: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      18: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      23: astore        5
      25: aload         5
      27: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      32: ifeq          166
      35: aload         5
      37: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      42: astore        4
      44: dconst_0
      45: dstore        6
      47: aload_3
      48: aload         4
      50: dload         6
      52: invokedynamic #210,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;D)Ljava/lang/Object;
      57: pop
      58: dload         6
      60: pop2
      61: aconst_null
      62: astore        8
      64: iconst_0
      65: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      68: aload_1
      69: ldc           #34                 // int 0
      71: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      74: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      79: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      84: astore        9
      86: aload         9
      88: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      93: ifeq          163
      96: aload         9
      98: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     103: astore        8
     105: aload_3
     106: dup
     107: astore        10
     109: aload         4
     111: dup
     112: astore        11
     114: aload         10
     116: aload         11
     118: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     123: aload_0
     124: aload         4
     126: aload         8
     128: invokedynamic #214,  0            // InvokeDynamic #21:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     133: aload_2
     134: aload         8
     136: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     141: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     146: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     151: dup
     152: astore        12
     154: invokedynamic #216,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     159: pop
     160: goto          86
     163: goto          25
     166: aconst_null
     167: areturn
     168: nop
     169: athrow

  public java.lang.Object MultiplyAtv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aconst_null
       1: astore        4
       3: iconst_0
       4: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       7: aload_1
       8: ldc           #34                 // int 0
      10: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      13: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      18: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      23: astore        5
      25: aload         5
      27: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      32: ifeq          166
      35: aload         5
      37: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      42: astore        4
      44: dconst_0
      45: dstore        6
      47: aload_3
      48: aload         4
      50: dload         6
      52: invokedynamic #210,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;D)Ljava/lang/Object;
      57: pop
      58: dload         6
      60: pop2
      61: aconst_null
      62: astore        8
      64: iconst_0
      65: invokestatic  #59                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      68: aload_1
      69: ldc           #34                 // int 0
      71: invokestatic  #132                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      74: invokedynamic #137,  0            // InvokeDynamic #13:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      79: invokedynamic #143,  0            // InvokeDynamic #14:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      84: astore        9
      86: aload         9
      88: invokeinterface #149,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      93: ifeq          163
      96: aload         9
      98: invokeinterface #152,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     103: astore        8
     105: aload_3
     106: dup
     107: astore        10
     109: aload         4
     111: dup
     112: astore        11
     114: aload         10
     116: aload         11
     118: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     123: aload_0
     124: aload         8
     126: aload         4
     128: invokedynamic #214,  0            // InvokeDynamic #21:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     133: aload_2
     134: aload         8
     136: invokedynamic #166,  0            // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     141: invokedynamic #167,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     146: invokedynamic #180,  0            // InvokeDynamic #16:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     151: dup
     152: astore        12
     154: invokedynamic #216,  0            // InvokeDynamic #20:invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     159: pop
     160: goto          86
     163: goto          25
     166: aconst_null
     167: areturn
     168: nop
     169: athrow

  public java.lang.Object MultiplyAtAv(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aload_1
       1: invokestatic  #223                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
       4: multianewarray #225,  1           // class "[D"
       8: astore        4
      10: aload_0
      11: aload_1
      12: aload_2
      13: aload         4
      15: invokedynamic #229,  0            // InvokeDynamic #22:invoke:(Lspectralnorm;Ljava/lang/Object;Ljava/lang/Object;[D)Ljava/lang/Object;
      20: pop
      21: aload_0
      22: aload_1
      23: aload         4
      25: aload_3
      26: invokedynamic #233,  0            // InvokeDynamic #23:invoke:(Lspectralnorm;Ljava/lang/Object;[DLjava/lang/Object;)Ljava/lang/Object;
      31: areturn
      32: nop
      33: athrow

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #240                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class spectralnorm
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #244                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #246                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #240                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #252                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #246                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #255                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Static Compilation