A logarithm of x is matched to a logarithm of a multiple of x below the bar - #1644
Merged
Rafael-SOWNet merged 1 commit intoOct 1, 2026
Merged
Conversation
…he bar By parts on li(b x)/x takes the antiderivative of 1/x, and with ln(x) the remainder was b ln(x)/ln(b x), which nothing read. ln(b x) is as much an antiderivative of 1/x, and taken so, the logarithm the derivative of li(b x) divides by cancels: li(b x)/x is li(b x) ln(b x) - b x, which is Rubi's answer. The constant of integration is matched to a logarithm of a multiple of x below the bar now, as it is matched to a polynomial divisor. Measured on the Rubi corpus, master at 16203aa and this change on it, run side by side: family 8 380 -> 381 of 420 (li(b x)/x); family 3 at twenty a file 172 and 173 of 180, family 0 1756 of 1814, and families 1, 2 and 4 to 7 at five a file 771 and 770 of 867. 0 wrong everywhere. Run alone, the three that moved are li(b x)/x, answered here and not on master, and 3.2.3 #30 and 6.7.1 #180, answered on both in 19 to 24 s: their side-by-side difference was load. The unit tests pass, 14,262, and the performance gate passes on c6f7a34c, which is this change on 16203aa: allocation is what the baseline says on all 19 gated benchmarks. SpecialFunctionsByPartsTest checks li(b x)/x at positive points, where li(b x) is real. Part of #1501. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
By parts on
li(b x)/xtakes the antiderivative of1/x. Withln(x), the remainder wasb ln(x)/ln(b x), which nothing read.ln(b x)is as much an antiderivative of1/x, and taken so, the logarithm the derivative ofli(b x)divides by cancels:li(b x)/xisli(b x) ln(b x) - b x, which is Rubi's answer. The constant of integration is now matched to a logarithm of a multiple ofxbelow the bar, as it is matched to a polynomial divisor.Measured
"li(b*x)/x".Integrate("x")li * b * x + C, withlia variableli(b * x) * ln(b * x) - b * x + C16203aa6and this change on it, run side by side, 0 wrong everywhere:li(b x)/x.li(b x)/x, answered here and not on master;c6f7a34c, which is this change on16203aa6. Allocation matches the baseline on all 19 gated benchmarks.SpecialFunctionsByPartsTestchecksli(b x)/xat positive points, whereli(b x)is real.Part of #1501.
🤖 Generated with Claude Code