Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing the bug in issue #563 #564

Merged
merged 6 commits into from
Jan 18, 2024
Merged

Fixing the bug in issue #563 #564

merged 6 commits into from
Jan 18, 2024

Conversation

PBrdng
Copy link
Collaborator

@PBrdng PBrdng commented Jan 17, 2024

This fixes the bug in #563.

@oskarhenriksson
Copy link
Contributor

oskarhenriksson commented Jan 17, 2024

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]...)?

@PBrdng
Copy link
Collaborator Author

PBrdng commented Jan 18, 2024

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.

@PBrdng PBrdng merged commit e286068 into main Jan 18, 2024
6 checks passed
@PBrdng PBrdng deleted the certification_reality_bugfix branch January 18, 2024 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants