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
@Rafael-SOWNet
Rafael-SOWNet deleted the name-an-inverse-sine-of-a-sine-linear-on-each-interval branch October 29, 2026 00:44
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