Open kaandocal opened 2 years ago
Seems related:
using DynamicPolynomials
@ncpolyvar x1
@polyvar x2
promote_type(typeof(x1), typeof(x2)) # stack overflow
Thanks for reporting these. I would find the root cause of what outputed Polynomial{true,Any}
. The coefficient type of a polynomial is not supposed to be Any
, e.g., we should be able to call zero
on it.
Of course, a StackOverflow
is still a but, even if the users does not provide the exptected types.
I think in my case I was accidentally adding commuting and noncommuting polynomial variables,
using DynamicPolynomials
@polyvar x
@ncpolyvar y
x + y
Perhaps it's not the same issue as Polynomial{true,Any}
.
The following causes a StackOverflowError:
Here
Any
can be replaced by various types. Output:What happens is that
promote_rule(Any, Polynomial{true,Any})
returnsAny
andpromote_rule(Polynomial{true,Any}, Any)
returnsPolynomial{true,Any}
, andpromote_result
keeps calling itself with the exact same type arguments...This originally came up trying to run MomentClosure.jl with SymbolicUtils version >= 0.12 (
expand
ing some polynomial expressions). I'm currently trying to figure out the intended semantics behind this and trying to find a fix but I thought it might be useful to point it out :)