crowlogic / arb4j

arb4j is a Java API for the arbitrary precision ball arithmetic library found at http://arblib.org
Other
1 stars 0 forks source link

expression compiler: revisit visitFrame to sync up the stack map with the instruction set #356

Closed crowlogic closed 5 months ago

crowlogic commented 5 months ago
java.lang.VerifyError: Instruction type does not match stack map
Exception Details:
  Location:
    nzTonTimesProdkαknk1pOvernBangTimesProdkβknk1q.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @70: aload_0
  Reason:
    Current frame's stack size doesn't match stackmap.
  Current Frame:
    bci: @70
    flags: { }
    locals: { 'nzTonTimesProdkαknk1pOvernBangTimesProdkβknk1q', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { 'arb/Real' }
  Stackmap Frame:
    bci: @70
    flags: { }
    locals: { 'nzTonTimesProdkαknk1pOvernBangTimesProdkβknk1q', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { }
  Bytecode:
    0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
    0000010: c000 181d 2ab4 001b b600 212a b400 252b
    0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
    0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
    0000040: 0041 b600 3b57 2ab4 002d 2ab4 0025 2ab4
    0000050: 0034 1d2a b400 44b9 0047 0400 c000 1d1d
    0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
    0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
    0000080: 592b c000 181d 2ab4 005c b600 601d 2ab4
    0000090: 0063 b600 662a b400 6a2b c000 18b5 006c
    00000a0: 2ab4 006f b600 3157 2ab4 0034 2ab4 0037
    00000b0: b600 3b57 2ab4 0072 2ab4 0075 b600 3b57
    00000c0: 2ab4 006f 2ab4 006a 2ab4 0034 1d2a b400
    00000d0: 78b9 0047 0400 c000 1d1d b600 4b57 2ab4
    00000e0: 0034 b600 4f2a b400 72b6 0053 9eff d42a
    00000f0: b400 6f1d 1904 c000 1db6 0059 b0       
  Stackmap Table:
    same_frame(@11)
    same_frame(@70)
    same_locals_1_stack_item_extended(@192,Object[#29])

    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
    at java.base/java.lang.Class.getConstructor0(Class.java:3754)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
    at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1179)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:1167)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:156)
    at arb4j/arb.functions.Function.express(Function.java:161)
    at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSummand(HypergeometricPolynomialTest.java:31)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
    at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
    at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
    at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
    at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
    at junit@4.13.2/org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
crowlogic commented 5 months ago

leading up to the errenous SAME appended to the stackmap frame when it should have been SAME1

Generating n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/n!*∏k➔β[k]₍ₙ₎{k=1…q}
BinaryOperation.generate( this=BinaryOperation[left=$\frac{{{z}^{n}} \cdot {\prod_{k = 1}^{p}{α[k]₍ₙ₎}}}{n!}$, right=$\prod_{k = 1}^{q}{β[k]₍ₙ₎}$, operation=mul, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Real )

BinaryOperation.generate( this=BinaryOperation[left=${{z}^{n}} \cdot {\prod_{k = 1}^{p}{α[k]₍ₙ₎}}$, right=$n!$, operation=div, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )

BinaryOperation.generate( this=BinaryOperation[left=${z}^{n}$, right=$\prod_{k = 1}^{p}{α[k]₍ₙ₎}$, operation=mul, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Real )

BinaryOperation.generate( this=BinaryOperation[left=$z$, right=$n$, operation=pow, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )

Product.assignFieldNames(resultType=class arb.Real) factorFunctionFieldName=factorℝ1 factorValueFieldName=valueℝ1

Product: generateFactorClass( expr=k➔α[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔α[k]₍ₙ₎
BinaryOperation.generate( this=BinaryOperation[left=$α_{k}$, right=$n$, operation=risingFactorial, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )

FunctionCall.generate: this=FunctionCall[name=factorial, arg=n, generatedType=arb.Integer] resultType=class arb.Integer

Product.assignFieldNames(resultType=class arb.Real) factorFunctionFieldName=factorℝ2 factorValueFieldName=valueℝ2

Product: generateFactorClass( expr=k➔β[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔β[k]₍ₙ₎
BinaryOperation.generate( this=BinaryOperation[left=$β_{k}$, right=$n$, operation=risingFactorial, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
crowlogic commented 5 months ago
java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    factorℝ1.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @24: invokevirtual
  Reason:
    Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
  Current Frame:
    bci: @24
    flags: { }
    locals: { 'factorℝ1', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { 'arb/Integer', 'arb/Integer', integer, 'arb/Real' }
  Bytecode:
    0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
    0000010: c000 181d 2ab4 001c b600 222a b400 262b
    0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
    0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
    0000040: 0041 b600 3b57 2ab4 002d 2ab4 0026 2ab4
    0000050: 0034 1d2a b400 44b9 0047 0400 c000 1e1d
    0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
    0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
    0000080: 592b c000 181d 2ab4 005c b600 602a b400
    0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
    00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
    00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
    00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
    00000d0: 1e1d b600 4b57 2ab4 0034 b600 4f2a b400
    00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
    00000f0: b600 761d 1904 c000 1eb6 0079 b0       
  Stackmap Table:
    same_frame(@11)
    same_frame(@70)
    same_locals_1_stack_item_extended(@184,Object[#30])

    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
    at java.base/java.lang.Class.getConstructor0(Class.java:3754)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
    at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1148)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:1136)
    at arb4j/arb.expressions.nodes.nary.NAryOperation.registerFactorSubexpressionInstance(NAryOperation.java:577)
    at arb4j/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:318)
    at arb4j/arb.expressions.nodes.nary.NAryOperation.generate(NAryOperation.java:264)
    at arb4j/arb.expressions.Expression.generateEvaluationMethod(Expression.java:976)
    at arb4j/arb.expressions.Expression.compile(Expression.java:745)
    at arb4j/arb.expressions.Compiler.express(Compiler.java:143)
    at arb4j/arb.expressions.Compiler.express(Compiler.java:156)
    at arb4j/arb.expressions.Compiler.express(Compiler.java:109)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:173)
    at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:635)
    at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:630)
    at arb4j/arb.functions.polynomials.HypergeometricPolynomial.<init>(HypergeometricPolynomial.java:65)
    at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSum(HypergeometricPolynomialTest.java:21)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
    at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
    at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
crowlogic commented 5 months ago
  public arb.Real evaluate(arb.Integer, int, int, arb.Real);
    descriptor: (Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
         0: aload_0
         1: getfield      #14                 // Field isInitialized:Z
         4: ifne          11
         7: aload_0
         8: invokevirtual #18                 // Method initialize:()V
        11: aload_0
        12: getfield      #22                 // Field z:Larb/Integer;
        15: aload_1
        16: checkcast     #24                 // class arb/Integer
        19: iload_3
        20: aload_0
        21: getfield      #28                 // Field ℝ1:Larb/Real;
        24: invokevirtual #34                 // Method arb/Real.pow:(Larb/Integer;ILarb/Real;)Larb/Real;

...

  Reason:
    Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
  Current Frame:
    bci: @24
crowlogic commented 5 months ago
java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    factorℝ1.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @24: invokevirtual
  Reason:
    Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
  Current Frame:
    bci: @24
    flags: { }
    locals: { 'factorℝ1', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { 'arb/Integer', 'arb/Integer', integer, 'arb/Real' }
  Bytecode:
    0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
    0000010: c000 181d 2ab4 001c b600 222a b400 262b
    0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
    0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
    0000040: 0041 b600 3b57 2ab4 002d 2ab4 0026 2ab4
    0000050: 0034 1d2a b400 44b9 0047 0400 c000 1e1d
    0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
    0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
    0000080: 592b c000 181d 2ab4 005c b600 602a b400
    0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
    00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
    00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
    00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
    00000d0: 1e1d b600 4b57 2ab4 0034 b600 4f2a b400
    00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
    00000f0: b600 761d 1904 c000 1eb6 0079 b0       
  Stackmap Table:
    same_frame(@11)
    same_locals_1_stack_item_frame(@70,Object[#30])
    full_frame(@184,{Object[#2],Object[#5],Integer,Integer,Object[#5]},{Object[#30],Object[#24]})

    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
    at java.base/java.lang.Class.getConstructor0(Class.java:3754)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
    at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1148)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:1136)
    at arb4j/arb.expressions.nodes.nary.NAryOperation.registerFactorSubexpressionInstance(NAryOperation.java:577)
    at arb4j/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:318)
    at arb4j/arb.expressions.nodes.nary.NAryOperation.generate(NAryOperation.java:264)
    at arb4j/arb.expressions.Expression.generateEvaluationMethod(Expression.java:976)
    at arb4j/arb.expressions.Expression.compile(Expression.java:745)
    at arb4j/arb.expressions.Compiler.express(Compiler.java:143)
    at arb4j/arb.expressions.Compiler.express(Compiler.java:156)
    at arb4j/arb.expressions.Compiler.express(Compiler.java:109)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:173)
    at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:635)
    at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:630)
    at arb4j/arb.functions.polynomials.HypergeometricPolynomial.<init>(HypergeometricPolynomial.java:65)
    at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSum(HypergeometricPolynomialTest.java:21)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
    at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
    at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
    at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
    at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
    at junit@4.13.2/org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
crowlogic commented 5 months ago
java.lang.VerifyError: Instruction type does not match stack map
Exception Details:
  Location:
    nzⁿTimesProdkαSubknWherekEquals1TopOvernBangTimesProdkβSubknWherekEquals1Toq.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @70: aload_0
  Reason:
    Current frame's stack size doesn't match stackmap.
  Current Frame:
    bci: @70
    flags: { }
    locals: { 'nzⁿTimesProdkαSubknWherekEquals1TopOvernBangTimesProdkβSubknWherekEquals1Toq', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { 'arb/Real' }
  Stackmap Frame:
    bci: @70
    flags: { }
    locals: { 'nzⁿTimesProdkαSubknWherekEquals1TopOvernBangTimesProdkβSubknWherekEquals1Toq', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { }
  Bytecode:
    0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
    0000010: c000 181d 2ab4 001b b600 212a b400 252b
    0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
    0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
    0000040: 0041 b600 3b57 2ab4 002d 2ab4 0025 2ab4
    0000050: 0034 1d2a b400 44b9 0047 0400 c000 1d1d
    0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
    0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
    0000080: 592b c000 181d 2ab4 005c b600 602a b400
    0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
    00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
    00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
    00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
    00000d0: 1d1d b600 4b57 2ab4 0034 b600 4f2a b400
    00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
    00000f0: b600 761d 1904 c000 1db6 0079 b0       
  Stackmap Table:
    same_frame(@11)
    same_frame(@70)
    same_locals_1_stack_item_extended(@184,Object[#29])

    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
    at java.base/java.lang.Class.getConstructor0(Class.java:3754)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
    at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1164)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:1152)
    at arb4j/arb.expressions.Expression.instantiate(Expression.java:164)
    at arb4j/arb.functions.Function.express(Function.java:162)
    at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSummand(HypergeometricPolynomialTest.java:85)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
    at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
    at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
    at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
    at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
    at junit@4.13.2/org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
crowlogic commented 5 months ago
java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    factorℝ1.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @24: invokevirtual
  Reason:
    Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
  Current Frame:
    bci: @24
    flags: { }
    locals: { 'factorℝ1', 'java/lang/Object', integer, integer, 'java/lang/Object' }
    stack: { 'arb/Integer', 'arb/Integer', integer, 'arb/Real' }
  Bytecode:
    0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
    0000010: c000 181d 2ab4 001c b600 222a b400 262b
    0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
    0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
    0000040: 0041 b600 3b57 2ab4 002d 2ab4 0026 2ab4
    0000050: 0034 1d2a b400 44b9 0047 0400 c000 1e1d
    0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
    0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
    0000080: 592b c000 181d 2ab4 005c b600 602a b400
    0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
    00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
    00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
    00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
    00000d0: 1e1d b600 4b57 2ab4 0034 b600 4f2a b400
    00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
    00000f0: b600 761d 1904 c000 1eb6 0079 b0       
  Stackmap Table:
    same_frame(@11)
    same_locals_1_stack_item_frame(@70,Object[#30])
    full_frame(@184,{Object[#2],Object[#5],Integer,Integer,Object[#5]},{Object[#30],Object[#24]})

    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
    at java.base/java.lang.Class.getConstructor0(Class.java:3754)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
    at arb4j@0.88/arb.expressions.Expression.constructNewInstance(Expression.java:549)
    at arb4j@0.88/arb.expressions.Expression.instantiate(Expression.java:1225)
    at arb4j@0.88/arb.expressions.nodes.nary.NAryOperation.registerFactorSubexpressionInstance(NAryOperation.java:676)
    at arb4j@0.88/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:366)
    at arb4j@0.88/arb.expressions.nodes.nary.NAryOperation.generate(NAryOperation.java:305)
    at arb4j@0.88/arb.expressions.Expression.generateEvaluationMethod(Expression.java:990)
    at arb4j@0.88/arb.expressions.Expression.compile(Expression.java:503)
    at arb4j@0.88/arb.expressions.Compiler.express(Compiler.java:143)
    at arb4j@0.88/arb.expressions.Compiler.express(Compiler.java:157)
    at arb4j@0.88/arb.expressions.Compiler.express(Compiler.java:109)
    at arb4j@0.88/arb.expressions.Expression.instantiate(Expression.java:189)
    at arb4j@0.88/arb.functions.real.RealFunction.express(RealFunction.java:635)
    at arb4j@0.88/arb.functions.real.RealFunction.express(RealFunction.java:630)
    at arb4j@0.88/arb.functions.polynomials.HypergeometricPolynomial.<init>(HypergeometricPolynomial.java:53)
    at arb4j@0.88/arb.functions.polynomials.HypergeometricPolynomialTest.testSum(HypergeometricPolynomialTest.java:44)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
    at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
    at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
    at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
    at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
    at junit@4.13.2/org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)