Inverse Trig Domains and Ranges: Why arcsin(sin x) Isn't Always x
Sine, cosine, and tangent each take an angle and return a single number. Running that backwards — given the number, find the angle — sounds like it should just undo the forward function, but it can't, not perfectly, because sine and cosine repeat themselves endlessly, and infinitely many angles share the same sine or cosine. Inverse trig functions resolve that by promising to return exactly one angle, called the principal value, chosen from a fixed, restricted range. Understanding that range is not a technicality — it is the entire content of what these functions do, using the inverse trig calculator for every number below.
The three domains and ranges
| Function | Domain (valid input) | Range (possible output) |
|---|---|---|
| arcsin (sin−1) | [−1, 1] | [−90°, 90°] |
| arccos (cos−1) | [−1, 1] | [0°, 180°] |
| arctan (tan−1) | All real numbers | (−90°, 90°), open interval |
Two things stand out immediately. First, arcsin and arccos are only defined for inputs between −1 and 1, because sine and cosine themselves never produce a value outside that range — there is no angle whose sine is 1.5, so asking for one is a domain error, not a number waiting to be found. Second, arctan's range is an open interval: it can get arbitrarily close to −90° or 90° but never actually reach either one, because no finite input ever makes tangent infinite.
Why these particular ranges, and not some other slice
The ranges in the table above are not arbitrary — each one is the widest possible window in which the original function is one-to-one, meaning no two different angles inside it ever share the same output. Sine is one-to-one across [−90°, 90°] because it climbs steadily from −1 to 1 over that stretch without ever doubling back, which is exactly why arcsin's range is chosen to match it. Cosine, by contrast, is falling rather than rising over that same interval, so its natural one-to-one stretch sits at [0°, 180°] instead, which is why arccos uses a different range from arcsin even though both share the same domain. Tangent repeats every 180° rather than every 360°, and it is one-to-one (and continuous) across (−90°, 90°), the open interval arctan's range matches. Choosing any other one-to-one stretch of each function — sine is equally one-to-one across [90°, 270°], for instance — would work just as well mathematically, but would produce a different, less intuitive-looking inverse; the standard choices are a convention, not a law of nature, though a firmly settled one.
Worked example: arcsin and arccos on ordinary inputs
Feeding 0.5 into arcsin returns 30° (0.5236 radians) — the one angle in arcsin's allowed range of [−90°, 90°] whose sine is 0.5, even though 150° also has a sine of exactly 0.5. Feeding −0.5 into arccos returns 120° (2.0944 radians) — note that arccos of a negative number lands in the second half of its range, between 90° and 180°, since arccos is defined to decrease steadily from 180° at input −1 down to 0° at input 1. The two functions carve up their shared input range of [−1, 1] very differently: arcsin spreads its outputs across a range centred on 0°, while arccos spreads its outputs across a range that starts at 0° and never goes negative.
What happens outside the domain
Ask arcsin for the angle whose sine is 1.5 and there is no answer to give, because sine never exceeds 1 for a real input. The calculator refuses the request outright with a domain error rather than returning a made-up number, which is the mathematically honest behaviour — a function that instead silently clamped 1.5 down to 1 and answered 90° would be quietly lying about what you actually asked for. Any time an intermediate calculation produces something like sin−1(1.02), it is a signal to go back and check the arithmetic, not a value to force through anyway; a ratio like sin θ can never legitimately land outside [−1, 1] in a correctly set-up problem.
Why asin(sin x) ≠ x in general
This is the single most important consequence of the restricted range, and it surprises almost everyone the first time they hit it. Take x = 150°. Evaluating sine directly gives sin 150° = 0.5. Now run that 0.5 back through arcsin, expecting to recover 150° — and it returns 30° instead. Nothing is broken: 30° genuinely is the sine inverse of 0.5, because it is the unique angle in arcsin's allowed range whose sine equals 0.5. The information that the original angle was 150°, not 30°, was already gone the moment sine was applied, since sine cannot distinguish between an angle and its supplement (150° and 30° share the same sine, as do infinitely many other coterminal angles). Composing sin−1 and sin only round-trips back to the original x when x already lives inside arcsin's own range of [−90°, 90°] — outside that window, sin−1(sin x) reliably returns the reference angle dressed with arcsin's sign convention, not x itself. The identical caution applies to cos−1(cos x) outside [0°, 180°] and tan−1(tan x) outside (−90°, 90°). A second concrete case makes the pattern unmistakable: cos 300° = 0.5, but arccos(0.5) returns 60°, not 300°, because 60° is the one angle in arccos's allowed range of [0°, 180°] with a cosine of 0.5 — and 300° and 60° are indeed mirror images of each other across the x-axis, sharing the same cosine for exactly the reason 150° and 30° shared the same sine above.
Arctan is an odd function, and it shows in the numbers
Feeding 1 into arctan returns 45° (0.7854 radians); feeding −1 returns exactly −45° (−0.7854 radians). That mirror-image pair is not a coincidence — arctan inherits tangent's odd symmetry, tan(−θ) = −tan(θ), which means arctan(−x) = −arctan(x) for every input. Because arctan's range is centred on 0° and stretches equally in both directions, this symmetry has nowhere to break down: whatever positive angle a positive input produces, the corresponding negative input produces its exact negative, with no quadrant confusion possible inside such a narrow, symmetric range.
Arctan's open range, pushed to the edge
Arctan never returns exactly −90° or 90°, and pushing the input to extremes makes that concrete rather than abstract. arctan(1,000,000) returns 89.9999°, not 90° — vanishingly close, but still short. arctan(−1,000,000) returns −89.9999°, mirroring it on the other side. No matter how large the input grows, the output keeps approaching 90° without ever touching it, because tangent itself is undefined at exactly 90° (dividing sine by a cosine of zero), so there is no finite input that could ever map to it. This is exactly why the right triangle calculator and the Law of Sines & Cosines Calculator both guard against a leg reaching or exceeding a hypotenuse, or a cosine ratio drifting outside [−1, 1] — those are exactly the situations that would otherwise ask an inverse trig function to return something outside its range.
Beyond arctan: why atan2 exists
Arctan's restricted range creates a genuine practical problem: given a point's x and y coordinates, you often want the angle to that point measured all the way around a full circle, not squeezed into a 180° window. Plain arctan(y/x) cannot tell a point in the first quadrant from the diametrically opposite point in the third quadrant, since dividing y by x throws away the individual signs of y and x and keeps only their ratio — (3, 4) and (−3, −4) both give y/x = 4/3, yet they point in opposite directions. The two-argument function atan2(y, x) fixes this by looking at the signs of y and x separately before choosing which quadrant's angle to return, giving a genuine full-circle answer across the range (−180°, 180°] instead of arctan's half-circle. It is why solving a right triangle from two legs can safely use an angle formula built on both leg values together rather than just their ratio — with both legs constrained to be positive lengths in that particular tool, the extra quadrant information atan2 provides is not strictly needed, but the same two-argument idea is exactly what rescues an angle calculation the moment negative coordinates enter the picture.
Cross-checking against the Trig Values Reference is a useful habit while this is still sinking in: pick any standard angle's sine or cosine from that table, run it back through arcsin or arccos, and see for yourself which angles round-trip cleanly and which return their reference angle instead. Domains and ranges are not fine print — they are the difference between an inverse trig function returning the angle you actually wanted and returning a different, equally valid angle that happens to share the same sine, cosine, or tangent. Every value above came from actually running the calculator rather than an estimate, precisely because a range boundary is exactly the kind of detail that is easy to get subtly wrong from memory alone. Work through your own values on the inverse trig calculator and watch the range restriction in action for yourself, on inputs of your own choosing rather than only the ones worked through above.