Add fast-fail detection for formula generation with excessive initial terms #593
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Formula generation failed slowly (~37 seconds) for A000033 and similar programs using ROL operations on many cells. The program uses
rol $2,8, creating 8 stateful cells. After variant simplification, the formula generator required 15 initial terms, exceeding the limit of 10.Changes
src/form/formula_gen.cpp: Added early failure detection before expensive variant simplificationCHANGELOG.md: Documented enhancementImplementation
Added an early check that rejects programs when base initial terms count exceeds 70% of the limit (7 out of 10). This check occurs before calling the expensive
simplifyFormulaUsingVariantsfunction, providing immediate feedback instead of waiting for the full processing.Threshold Logic
The 70% threshold accounts for the fact that variant simplification typically increases the initial terms count by 30-70%. Programs with ≤7 base terms can proceed to variant simplification, while those with ≥8 base terms are rejected early.
Performance Results
The program continues to be correctly rejected, but users now receive immediate feedback rather than waiting half a minute for an error.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.