Closed PBrdng closed 8 months ago
Thanks for fixing this so quickly!
Just out of curiosity: It seems like the proposed way to check whether a system has real coefficients is to evaluate it as a random real point and check whether the image is real. This should give the correct answer with probability 1, but I guess that it, in principle, opens up the possibility that a system is incorrectly classified as real, and that further down the line, a non-real solution incorrectly gets classified as a real as in #563?
Is there an advantage of this probabilistic approach compared to (the perhaps naive approach of) going through all coefficients and checking that they are real, via something like all(isreal,vcat(support_coefficients(F.system)[2]...)
?
Thanks for fixing this so quickly!
Just out of curiosity: It seems like the proposed way to check whether a system has real coefficients is to evaluate it as a random real point and check whether the image is real. This should give the correct answer with probability 1, but I guess that it, in principle, opens up the possibility that a system is incorrectly classified as real, and that further down the line, a non-real solution incorrectly gets classified as a real as in #563?
Is there an advantage of this probabilistic approach compared to (the perhaps naive approach of) going through all coefficients and checking that they are real, via something like
all(isreal,vcat(support_coefficients(F.system)[2]...)
?
Because certify
takes as input an AbstractSystem
. This can be any straight-line-program. In particular, computing the coefficients can be computationally demanding.
This fixes the bug in #563.