Closed crowlogic closed 5 months ago
Generating z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
Sum.assignFieldNames(resultType=class arb.Real) factorFunctionFieldName=factorℝ1 factorValueFieldName=valueℝ1
Sum: generateFactorClass( expr=n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}),resultType=class arb.Real)
Generating n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
BinaryOperation.generate( this=z^n*Πα[k]₍ₙ₎{k=1…p}/n!*Πβ[k]₍ₙ₎{k=1…q}, resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Real )
BinaryOperation.generate( this=z^n*Πα[k]₍ₙ₎{k=1…p}, resultType=class arb.Real, left.type=class arb.Integer, right.type=class arb.Real )
BinaryOperation.generate( this=z^n, resultType=class arb.Integer, left.type=class arb.Integer, right.type=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=α_{k}⋰n, resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
BinaryOperation.generate( this=n!*Πβ[k]₍ₙ₎{k=1…q}, resultType=class arb.Real, left.type=class arb.Integer, right.type=class arb.Real )
FunctionCall.generate: this=n! resultType=class arb.Integer
Product.assignFieldNames(resultType=class arb.Real) factorFunctionFieldName=factorℝ3 factorValueFieldName=valueℝ3
Product: generateFactorClass( expr=k➔β[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔β[k]₍ₙ₎
BinaryOperation.generate( this=β_{k}⋰n, resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
Exception in thread "main" java.lang.NoSuchFieldError: Class factorℝ1 does not have member field 'arb.Integer z'
at factorℝ1.evaluate(Unknown Source)
at arb4j@0.88/arb.functions.Function.evaluate(Function.java:111)
at F.evaluate(Unknown Source)
at arb4j@0.88/arb.functions.polynomials.HypergeometricPolynomial.main(HypergeometricPolynomial.java:39)
Generating z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
Summation.assignFieldNames(resultType=class arb.Real,
factorFunctionFieldName=factorℝ1,
factorValueFieldName=valueℝ1)
Summation.generateFactorClass( expr=n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}),resultType=class arb.Real)
Generating n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
BinaryOperation.generate( this=(((z)^(n))*(Πα[k]₍ₙ₎{k=1…p}))/((n!)*(Πβ[k]₍ₙ₎{k=1…q})),
left.type=class arb.Real,
operation=div,
right.type=class arb.Real,
resultType=class arb.Real )
BinaryOperation.generate( this=((z)^(n))*(Πα[k]₍ₙ₎{k=1…p}),
left.type=class arb.Integer,
operation=mul,
right.type=class arb.Real,
resultType=class arb.Real )
BinaryOperation.generate( this=(z)^(n),
left.type=class arb.Integer,
operation=pow,
right.type=class arb.Integer,
resultType=class arb.Integer )
NaryMultiplication.assignFieldNames(resultType=class arb.Real,
factorFunctionFieldName=factorℝ2,
factorValueFieldName=valueℝ2)
NaryMultiplication.generateFactorClass( expr=k➔α[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔α[k]₍ₙ₎
BinaryOperation.generate( this=(α_{k})⋰(n),
left.type=class arb.Real,
operation=ascendingFactorial,
right.type=class arb.Integer,
resultType=class arb.Real )
getField(functionClass=factorℝ1,
fieldName=k,
fieldTypeSignature=Larb/Integer;
getField(functionClass=factorℝ1,
fieldName=k,
fieldTypeSignature=Larb/Integer;
BinaryOperation.generate( this=(n!)*(Πβ[k]₍ₙ₎{k=1…q}),
left.type=class arb.Integer,
operation=mul,
right.type=class arb.Real,
resultType=class arb.Real )
FunctionCall.generate: this=n! resultType=class arb.Integer
NaryMultiplication.assignFieldNames(resultType=class arb.Real,
factorFunctionFieldName=factorℝ3,
factorValueFieldName=valueℝ3)
NaryMultiplication.generateFactorClass( expr=k➔β[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔β[k]₍ₙ₎
BinaryOperation.generate( this=(β_{k})⋰(n),
left.type=class arb.Real,
operation=ascendingFactorial,
right.type=class arb.Integer,
resultType=class arb.Real )
getField(functionClass=factorℝ1,
fieldName=k,
fieldTypeSignature=Larb/Integer;
getField(functionClass=factorℝ1,
fieldName=k,
fieldTypeSignature=Larb/Integer;
getField(functionClass=F,
fieldName=n,
fieldTypeSignature=Larb/Integer;
getField(functionClass=F,
fieldName=n,
fieldTypeSignature=Larb/Integer;
Exception in thread "main" java.lang.NoSuchFieldError: Class factorℝ1 does not have member field 'arb.Integer z'
at factorℝ1.evaluate(Unknown Source)
at arb4j@0.88/arb.functions.Function.evaluate(Function.java:111)
at F.evaluate(Unknown Source)
at arb4j@0.88/arb.functions.polynomials.HypergeometricPolynomial.main(HypergeometricPolynomial.java:39)
need to find out why its trying to get the 'z' field as an Integer instead of Real
// access flags 0x1
// signature (Larb/Integer;IILarb/Real;)Larb/Real;
// declaration: arb.Real evaluate(arb.Integer, int, int, arb.Real)
public evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object;
L0
ALOAD 0
GETFIELD factorℝ1.isInitialized : Z
IFNE L1
ALOAD 0
INVOKEVIRTUAL factorℝ1.initialize ()V
L1
FRAME SAME
ALOAD 0
GETFIELD factorℝ1.z : Larb/Integer;
BinaryOperation.generate( this=(z^n)*Πα[k]₍ₙ₎{k=1…p},
left=z^n,
left.type=class arb.Integer,
operation=mul,
right=Πα[k]₍ₙ₎{k=1…p},
right.type=class arb.Real,
resultType=class arb.Real )
BinaryOperation.generate( this=z^n,
left=z,
left.type=class arb.Integer,
operation=pow,
right=n,
right.type=class arb.Integer,
resultType=class arb.Integer )
its due to this method in the Variable class
@Override
public Class<?> type()
{
return isIndeterminant ? expression.rangeType : reference.type();
}
java.lang.AssertionError: why is z an integer? #357
at arb4j/arb.expressions.nodes.Variable.resolveReference(Variable.java:292)
at arb4j/arb.expressions.nodes.Variable.<init>(Variable.java:129)
at arb4j/arb.expressions.Expression.newVariable(Expression.java:1234)
at arb4j/arb.expressions.Expression.resolveFunctionOrVariableReference(Expression.java:1402)
at arb4j/arb.expressions.Expression.evaluate(Expression.java:571)
at arb4j/arb.expressions.Expression.exponentiate(Expression.java:687)
at arb4j/arb.expressions.Expression.exponentiateMultiplyAndDivide(Expression.java:723)
at arb4j/arb.expressions.Expression.resolve(Expression.java:527)
at arb4j/arb.expressions.Expression.parseRoot(Expression.java:679)
at arb4j/arb.expressions.Compiler.express(Compiler.java:143)
at arb4j/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:311)
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:68)
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)
isIndependentVariableOfParentExpression=true
Variable.resolveInheritedVariableReference( name=z
reference=z
parentExpressionsIndependentVariableNode=z
thisExpressionsindependentVariableNode=n
type=class arb.Integer
parentExpressionsDomain=class arb.Real)
Set reference type of z to class arb.Real
Generating z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
Summation.assignFieldNames(resultType=class arb.Real,
factorFunctionFieldName=factorℝ1,
factorValueFieldName=valueℝ1)
Summation.generateFactorClass( expr=n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}),resultType=class arb.Real)
Set reference type of n to class arb.Integer
z indeterminant=false
isIndependent=false
isIndependentVariableOfParentExpression=true
Variable.resolveInheritedVariableReference( name=z
reference=z
parentExpressionsIndependentVariableNode=z
thisExpressionsindependentVariableNode=n
type=class arb.Integer
parentExpressionsDomain=class arb.Real
parentExpressionsRange=class arb.Real
expressionDomain=class arb.Integer
expressionRange=class arb.Real)
z indeterminant=false
isIndependent=false
isIndependentVariableOfParentExpression=true
java.lang.AssertionError: why is z an integer? #357 its using this expressions domain type rather than the containing/parent expressions domain type apparently which is the crux of the issue
at arb4j/arb.expressions.nodes.Variable.resolveInheritedVariableReference(Variable.java:340)
at arb4j/arb.expressions.nodes.Variable.resolveReference(Variable.java:296)
at arb4j/arb.expressions.nodes.Variable.<init>(Variable.java:142)
at arb4j/arb.expressions.Expression.newVariable(Expression.java:1234)
at arb4j/arb.expressions.Expression.resolveFunctionOrVariableReference(Expression.java:1402)
at arb4j/arb.expressions.Expression.evaluate(Expression.java:571)
at arb4j/arb.expressions.Expression.exponentiate(Expression.java:687)
at arb4j/arb.expressions.Expression.exponentiateMultiplyAndDivide(Expression.java:723)
at arb4j/arb.expressions.Expression.resolve(Expression.java:527)
at arb4j/arb.expressions.Expression.parseRoot(Expression.java:679)
at arb4j/arb.expressions.Compiler.express(Compiler.java:143)
at arb4j/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:311)
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)
Exception in thread "main" java.lang.NoSuchFieldError: Class factorℝ1 does not have member field 'arb.Integer z'