Repository navigation
An odd power of the secant is read in the tangent, with the cosine's sign - #1816
Merged
Rafael-SOWNet merged 1 commit intoOct 7, 2026
Conversation
…sign The substitution u = tan(x) read an odd power of the sine or the cosine as its sign times a function of the tangent, and not the secant, the same the other way up. Part of #718. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
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.
Part of #718.
sec(c + d x)^5/(a + b tan(c + d x))^2was declined, andsec^7/(a + b tan)^3and two like it ran past the corpus's five seconds: Rubi's 4.3.1.2 with a generalb. Underu = tan(x),SolveByTangentSubstitutionreads an odd power of the sine or the cosine as its sign times a function of the tangent,cos(x) = sgn(cos(x))/sqrt(1 + u^2), and not the secant, which is the same the other way up. It reads the secant too now:c417571dsec(x)^5/(a + b tan(x))^2sec(x)^7/(a + b tan(x))^3sec(x)/(a + b cot(x))Each answer carries
sgn(cos(x)), constant between the zeros of the cosine.Tests: three rows in
TangentSubstitutionIntegralTest, each differentiated back with the symbols pinned and compared at six points on both signs of the cosine.Measured first on every corpus problem with a secant in its integrand, 5,093 of them, at the corpus's 5-second budget, against master
c18738db:Six problems are answered here and not on master, and none the other way: the five of 4.3.1.2 and 4.4.1.3's
sec(x)/(a + b cot(x)). On the 4,965 both answer the time goes from 1,617 seconds to 1,629.Measured then on the Rubi corpus:
The harness counts no answer wrong in either. The seven problems the builds disagreed on, run again one build at a time: master answers none, this answers all seven. The seventh, 3.2.3's
log(pe (f (a + b x)^p (c + d x)^q)^r)/(a + b x)^5, has no trigonometric function in it; master answered it in 25 seconds in the sample and is past the budget alone, this the other way round.The suite passes on
a867b351, this change onc18738db: 15,136 passed, 13 skipped, none failed. Rebased ontoc417571dwithout a conflict, the tangent substitution's tests and both imaginary-tangent rules' pass again. The allocation gate passes: every gated benchmark allocates what the baseline says. The library builds for every target.🤖 Generated with Claude Code
https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura