Skip to content

Name an inverse sine of a sine of a linear as linear on each interval - #2048

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
name-an-inverse-sine-of-a-sine-linear-on-each-interval
Oct 22, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
name-an-inverse-sine-of-a-sine-linear-on-each-interval

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #233.

  • An inverse sine of a sine of a linear, named as linear on each interval. Rubi's 5.1.5 x/asin(sin(x)) was declined. On each interval where cos(L) keeps its sign, asin(sin(L)) for L = a + k x is s k x + c, with s = cos(L)/sqrt(cos(L)^2) and c constant there. acos(cos(L)) is the same with the sign of sin(L).
  • The change. SolveByNamingAnInverseSineOfASineLinearOnEachInterval names the inverse sine so, with s and c as symbols. The integrand is then a rational function of x. Its answer is written back, using s^2 = 1: a whole power of s is 1 or s, and a division by s is a multiplication. A sum equal to s k x + c is the inverse sine again, decided in lowest terms over the symbols, so the logarithm holds asin(sin(x)) and not s x + (asin(sin(x)) - s x). The answer is the generic case's on every interval, as SolveByNamingALogarithmLinearInTheVariable's is.
  • Dispatched last, so a polynomial beside the inverse sine keeps the answer parts already gives it.
  • 2.5.0 answered 1/asin(sin(x)) wrongly, as ln(asin(sin(x))), which is wrong wherever cos(x) < 0. Master declined it before this change. The BREAKING-CHANGES entry records both.
Input master ef4150e this branch
5.1.5:619 x/asin(sin(x)) declined 111 characters
1/asin(sin(x)) declined 50 characters, ln(asin(sin(x))) cos(x)/sqrt(cos(x)^2)
asin(sin(x))/x declined 222 characters
x/acos(cos(a + b x)) declined, 2.0 s 171 characters, 0.25 s

Each is checked at -2.3, -0.9, 0.4, 1.3, 2.2 and 2.9, on both sides of a zero of the cosine.

Chain against master ef4150e:

  • The pocket of every 5.1 and 5.2 row, 773 of them, went from 772 to 773 solved.
  • Every family's sample is unchanged.
  • The one row that moved is 5.1.5:619, run alone: declined on master, solved here.
  • 6,377 rows were compared for allocation, and none grew past 1.3x and 300 MB.

The library builds for netstandard2.0, net8.0 and net10.0. The suite is left to CI. The BREAKING-CHANGES lengths were measured on the branch, and the 2.5.0 column on a v2.5.0 build.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rubi's 5.1.5 x/asin(sin(x)) was declined. On each interval where cos(L) keeps
its sign, asin(sin(L)) for L = a + k x is s k x + c, with s = cos(L)/sqrt(cos(L)^2)
and c constant there; acos(cos(L)) is the same with the sign of sin(L). Named so
with s and c as symbols, the integrand is a rational function of x, and its
answer is written back: a whole power of s is 1 or s, a division by s is a
multiplication, and a sum equal to s k x + c, decided in lowest terms over the
symbols, is the inverse sine again, so that the logarithm holds asin(sin(x))
and not s x + (asin(sin(x)) - s x). Dispatched last, so that a polynomial
beside the inverse sine keeps the answer parts gives it.

Part of #233.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet

Copy link
Copy Markdown
Member Author

Rebased onto e006a79 (#2045) with one conflict in BREAKING-CHANGES.md, two entries at one anchor; both kept, #2045's first. The library builds for netstandard2.0, net8.0 and net10.0.

@Rafael-SOWNet
Rafael-SOWNet force-pushed the name-an-inverse-sine-of-a-sine-linear-on-each-interval branch from 1d0fe9b to 35259e3 Compare October 22, 2026 03:23
@Rafael-SOWNet
Rafael-SOWNet merged commit 7d1081e into master Oct 22, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant