Implement log2#8
Merged
Merged
Conversation
There was a problem hiding this comment.
Code Review
This pull request implements the base-2 logarithm (log2) for the Real type, introducing a new Log2 symbolic class and the Real::log2 method. The implementation includes optimizations for rational powers of two and a division shortcut that folds ln(x) / ln(2) into a Log2 certificate. Support for log2 and lg was also added to the expression parser, along with comprehensive tests and benchmarks. A critical issue was identified in the division folding logic where cloning the original Real object incorrectly preserves a stale approximation cache, which could lead to incorrect numerical results.
TimTheBig
commented
May 23, 2026
Author
|
thanks |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This patch implements
log2in the style oflog10