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

testSum2 should not be declaring z as the input node to z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}) since it should be known already known at that point the input is n #394

Closed crowlogic closed 3 months ago

crowlogic commented 3 months ago
new class arb.expressions.nodes.Variable at pos -1

Variable(#1147258851).resolveReference(reference=z) expression=z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
Variable.Declaring z as the input node to z->z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
parseRoot z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
new class arb.expressions.nodes.nary.Summation at pos 3
new class arb.expressions.nodes.LiteralConstant at pos 53
new class arb.expressions.nodes.Variable at pos 55

Variable(#413601558).resolveReference(reference=N) expression=z->z➔Σn➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}){n=0…N}
Declaring N as a contextual variable of type class arb.Integer
Expression(#1658926803).compile() className=zΣnzⁿtimesprodkαsubknwherekequals1topoveropennbangtimesprodkβsubknwherekequals1toqclosewherenequals0toN
Expression(#1658926803) 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=z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q}),resultType=class arb.Real)

parseRoot z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
new class arb.expressions.nodes.Variable at pos 1

Variable(#558187323).resolveReference(reference=z) expression=z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Variable.Declaring z as the input node to z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
new class arb.expressions.nodes.Variable at pos 3

Variable(#453523494).resolveReference(reference=n) expression=z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Variable.resolveReference( thisOrAnyAscendentExpressionHasPolynomialRange=false
, anyAscendentInputIsEqualTo=false
, noExistingVar=true
, thisIsntThisExpressionsInputNode=true) expression.inputNode=z
new class arb.expressions.nodes.binary.Exponentiation at pos 3
new class arb.expressions.nodes.nary.NaryMultiplication at pos 5
new class arb.expressions.nodes.LiteralConstant at pos 18
new class arb.expressions.nodes.Variable at pos 20

Variable(#1210898719).resolveReference(reference=p) expression=z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Declaring p as a contextual variable of type class arb.Integer
new class arb.expressions.nodes.binary.Multiplication at pos 21
new class arb.expressions.nodes.Variable at pos 24

Variable(#2104028992).resolveReference(reference=n) expression=z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Variable.resolveReference( thisOrAnyAscendentExpressionHasPolynomialRange=false
, anyAscendentInputIsEqualTo=false
, noExistingVar=true
, thisIsntThisExpressionsInputNode=true) expression.inputNode=z
new class arb.expressions.nodes.unary.Factorialization at pos 25

Variable(#2104028992).resolveReference(reference=n) expression=z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Variable.resolveReference( thisOrAnyAscendentExpressionHasPolynomialRange=false
, anyAscendentInputIsEqualTo=false
, noExistingVar=true
, thisIsntThisExpressionsInputNode=true) expression.inputNode=z
new class arb.expressions.nodes.nary.NaryMultiplication at pos 27
new class arb.expressions.nodes.LiteralConstant at pos 40
new class arb.expressions.nodes.Variable at pos 42

Variable(#632587706).resolveReference(reference=q) expression=z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Declaring q as a contextual variable of type class arb.Integer
new class arb.expressions.nodes.binary.Multiplication at pos 43
new class arb.expressions.nodes.binary.Division at pos 44

Expression(#726950788).defineClass(expression=z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
,className=factorℝ1
, context=Context(#1567885839)[functions=FunctionMappings(#558569884)[map={}] ,
 variables=Variables(#550752602)[[p, q, α, β, k, N, n]]
, intermediateVariableCounters={factorℝ=2, valueℝ=2}])

Expression(#726950788).compile() className=factorℝ1
Expression(#726950788) Generating z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})

Variable(#453523494).resolveReference(reference=n) expression=z->z^n*∏k➔α[k]₍ₙ₎{k=1…p}/(n!*∏k➔β[k]₍ₙ₎{k=1…q})
Variable.resolveReference( thisOrAnyAscendentExpressionHasPolynomialRange=false
, anyAscendentInputIsEqualTo=false
, noExistingVar=true
, thisIsntThisExpressionsInputNode=true) expression.inputNode=z
crowlogic commented 3 months ago

The shark is jumped at ```java Summation.generateFactorClass



fuuuuuuuuuuuuuuuuckkkkkkkkkkkkkkkkkkkkkkkkkkk
crowlogic commented 3 months ago

the first sum needs to detect that arrow instead of skipping over it , and designate it as the input node so that subsequent variable type resolutions do not have the chance to be mistakenly assigned as the input to the expression representing the summand