Excel 16.0 build 19929
Windows, bitness not recorded, CPU not recorded
18 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.
Math and trigonometry functions
Matches all 21,613 recorded answers
Recorded: 21,610 in the answer bank and 3 workbook cells. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | ASIN |
| Bulgarian | ASIN |
| Czech | ASIN |
| Danish | ARCSIN |
| German | ARCSIN |
| Greek | ASIN |
| English (Australia) | ASIN |
| English (United Kingdom) | ASIN |
| English (United States) | ASIN |
| Spanish | ASENO |
| Estonian | ASIN |
| Finnish | ASIN |
| French | ASIN |
| Hebrew | ASIN |
| Croatian | ASIN |
| Hungarian | ARCSIN |
| Indonesian | ASIN |
| Italian | ARCSEN |
| Japanese | ASIN |
| Korean | ASIN |
| Lithuanian | ASIN |
| Latvian | ASIN |
| Norwegian | ASIN |
| Dutch | BOOGSIN |
| Polish | ASIN |
| Portuguese (Brazil) | ASEN |
| Portuguese (Portugal) | ASEN |
| Romanian | ASIN |
| Russian | ASIN |
| Slovak | ASIN |
| Slovenian | ASIN |
| Serbian (Latin) | ASIN |
| Swedish | ASIN |
| Thai | ASIN |
| Turkish | ASİN |
| Ukrainian | ASIN |
| Vietnamese | ASIN |
| Chinese (Simplified) | ASIN |
| Chinese (Hong Kong) | ASIN |
| Chinese (Traditional) | ASIN |
Names from Microsoft's support site.
ASIN(number)
ASIN(number) is the principal inverse sine: the angle in radians whose sine is number.
asin: [-1, 1] -> [-pi/2, pi/2], sin(asin x) = x
[-1, 1]. Outside it no real angle has that sine.[-pi/2, pi/2], the principal branch. Microsoft's Learn reference states this range
explicitly.asin(-x) = -asin(x), exactly. An implementation should compute on |x| and
restore the sign, which makes the identity hold to the last bit for free.-pi/2 at x = -1 through 0 at the origin to
pi/2 at x = 1.d/dx asin x = 1 / sqrt(1 - x^2) — finite in the interior, infinite at both
endpoints. Vertical tangents at x = ±1.asin x = x + x^3/6 + 3x^5/40 + 15x^7/336 + ..., converging on |x| < 1 but slowly near the
endpoints. For small x, asin x -> x with leading correction x^3/6, so subnormal arguments
pass through unchanged.x = 1 - t, asin(x) = pi/2 - sqrt(2t)(1 + t/12 + ...). The
square-root approach to the endpoint is the same phenomenon as in ACOS, but here it appears as
a correction to a value near pi/2 rather than as the value itself — which changes everything
about the numerics.asin(x) + acos(x) = pi/2 exactly.asin(x) = atan(x / sqrt(1 - x^2)) on the open interval, and
asin(x) = atan2(x, sqrt(1-x^2)) in Excel's x-first order. The atan2 form is the one that
survives the endpoints.(-infinity, -1] and [1, +infinity), the same
cuts as acos — the real domain is exactly their complement on the real axis.Abramowitz & Stegun cover the inverse circular functions in chapter 4 section 4.4.
| Argument | Meaning | Default |
|---|---|---|
number | The sine of the angle you want. Required. | — |
Microsoft's Learn reference describes it as "the sine of the angle that you want; must be from -1 to 1".
The misunderstood point is the unit of the result: radians. The Learn reference gives the standard
remedy — multiply by 180/PI(), or use DEGREES.
Returns Number — an angle in radians in [-pi/2, pi/2].
-1 and 1 are in the domain and return -pi/2 and pi/2. Closed interval;
an implementation testing |x| < 1 gets both wrong, and they are the two arguments users pass
most often.ACOS, this
matters because the natural producer of an ASIN argument is a ratio that ought to be at most
one and, after rounding, sometimes is not. Clamp before calling.asin(x) = x to within rounding for arguments that small.ASIN's error behaviour is the mirror of ACOS's, and the mirror is the point: they are hard in
opposite places, which is why neither can be built naively on the other.
Where ASIN is easy. Near zero the function is essentially the identity, and any decent
approximation gets full relative accuracy. Near the endpoints the value is near ±pi/2, which is
comfortably far from zero, so the relative accuracy of the answer is not destroyed by the
square-root singularity — the singularity is in the derivative, not in the value. This is exactly
where ACOS is hard, because there the answer is near zero.
Where ASIN is hard. The absolute accuracy near the endpoints still depends on computing
sqrt(1 - x^2) well, and that is a subtraction of nearly equal quantities:
1 - x*x. The product rounds first, and near |x| = 1 that rounding is a
full ulp of 1, which is much larger than the quantity being kept.(1 - x)(1 + x). Both factors are exact for doubles near the endpoints (Sterbenz for
the first, exactness of the sum for the second), and the product loses only its own final
rounding.The standard branch structure, as in Cody & Waite and fdlibm's e_asin.c:
|x| <= 1/2, evaluate a minimax rational approximation to asin directly. The argument is
comfortably away from the singularity and the polynomial does all the work.1/2 < |x| <= 1, reduce with the half-angle identity
asin(x) = pi/2 - 2*asin(sqrt((1-x)/2)). The inner argument is at most 1/2, so branch 1
evaluates it; the outer subtraction is safe because both terms are of order one and the answer
is of order one.Note the asymmetry with ACOS: ASIN can afford the pi/2 - ... subtraction at the endpoints and
ACOS cannot, because ASIN's answer there is large and ACOS's is small. Two functions, one
identity, opposite verdicts. This is the single most useful thing to understand about the pair.
Intrinsic information loss. The same caution as on the ACOS page applies from the other side:
if x arrived as the result of a computation, the accuracy of asin(x) near the endpoints is
limited by how accurately x itself represents the intended sine, and the derivative blows up
there. No implementation can recover information the argument does not carry. Numerical geometry
code that needs a small angle accurately should get it from ATAN2 of a cross product, not from
ASIN of a ratio.
Self-tests without an oracle. ASIN(x) + ASIN(-x) must be exactly zero if the sign is handled
by symmetry. ASIN(x) + ACOS(x) - PI()/2 across the domain exposes the branch split of both
functions at once. SIN(ASIN(x)) - x is a cheap round trip whose residual profile shows where the
square root is being computed badly.
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
ASIN · 1 lines · calc-func/src/catalogue/math.rs on GitHub5 asin "ASIN" (1, 1) [V "number"] |s, a, sv| { unary(s, a, k::asin::asin_kernel) }
unary catalogue/mathasin_kernel ported/asinatan_with ported/excel_numericatan_reduced_with ported/excel_numericbinary_with ported/excel_numericexcel_x87_sub ported/excel_numericexcel_x87_mul ported/excel_numericexcel_x87_div ported/excel_numericexcel_atan_reduced ported/excel_numericexcel_sqrt_staged ported/excel_numericpack_raw ported/excel_numeric/soft87zero ported/excel_numeric/soft87inf ported/excel_numeric/soft87pack ported/excel_numeric/soft87ext_pi ported/excel_numeric/soft87ext_one ported/excel_numeric/soft87atan ported/excel_numeric/x87atan_reduced ported/excel_numeric/x87mul ported/excel_numeric/x87sub ported/excel_numeric/x87div ported/excel_numeric/x87No implementation has been published with a Handbook test suite for this function.
The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.
| Excel 16.0 build | Platform and CPU | Captured inputs |
|---|---|---|
| 19929 | Windows, bitness not recorded, CPU not recorded | 18 |
| 20430 | Windows, 64-bit, CPU not recorded | 21,610 |
Agreement on these compared inputs does not establish agreement on unmeasured inputs.
Recorded environments and comparison details.
Windows, bitness not recorded, CPU not recorded
18 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.
Windows, 64-bit, CPU not recorded
21,610 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.
ACOS — the complementary partner, ASIN(x) + ACOS(x) = PI()/2. Same domain, mirrored
range, opposite monotonicity. The pair is not interchangeable by a sign flip.ATAN — the unrestricted-domain member of the trio. ASIN(x) = ATAN(x/SQRT(1-x^2)) inside
the open interval, and that identity is the usual way ASIN gets implemented on top of ATAN
when only one of the two is available.ATAN2 — ASIN(x) = ATAN2(SQRT(1-x^2), x) in Excel's x-first order, and this is the form
that behaves at the endpoints where the plain ATAN identity divides by something approaching
zero.SIN — the forward function. SIN(ASIN(x)) = x to rounding across the domain;
ASIN(SIN(t)) folds t into [-pi/2, pi/2].ASINH — the hyperbolic namesake, defined on all reals. Where ASIN is bounded in both
domain and range, ASINH is bounded in neither; they share a name and nothing else.DEGREES — the usual consumer.1/SIN(x), which is CSC; and with ACSC, which Excel does not have.No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents