Math and trigonometry functions

SINH

Close: 130 of 33,553 recorded answers differ in the last bits, worst 1 ULP

Everything else matches (33,550 in the answer bank and 3 workbook cells). Last-bit means a finite number within 16 ULP of Excel's. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicSINH
BulgarianSINH
CzechSINH
DanishSINH
GermanSINH
GreekSINH
English (Australia)SINH
English (United Kingdom)SINH
English (United States)SINH
SpanishSENOH
EstonianSINH
FinnishSINH
FrenchSINH
HebrewSINH
CroatianSINH
HungarianSINH
IndonesianSINH
ItalianSINH
JapaneseSINH
KoreanSINH
LithuanianSINH
LatvianSINH
NorwegianSINH
DutchSINH
PolishSINH
Portuguese (Brazil)SINH
Portuguese (Portugal)SENH
RomanianSINH
RussianSINH
SlovakSINH
SlovenianSINH
Serbian (Latin)SINH
SwedishSINH
ThaiSINH
TurkishSİNH işlevi
UkrainianSINH
VietnameseSINH
Chinese (Simplified)SINH
Chinese (Hong Kong)SINH
Chinese (Traditional)SINH

Names from Microsoft's support site.

What it does

SINH(number)

SINH(number) is the hyperbolic sine:

sinh x  =  (e^x - e^(-x)) / 2  =  x + x^3/3! + x^5/5! + x^7/7! + ...
  • Domain: all real numbers. sinh is entire; no poles, no branch cuts.
  • Range: all real numbers. Unlike its circular sibling, sinh is unbounded and strictly increasing, hence a bijection from R onto R — which is why ASINH is defined everywhere with no branch selection.
  • Parity: odd. sinh(-x) = -sinh(x).
  • Not periodic over the reals (it has period 2*pi*i in the complex plane, which is the same statement as sin(ix) = i sinh(x)).
  • Limiting behaviour: sinh x / x -> 1 as x -> 0, with leading correction x^3/6. As x -> +infinity, sinh x ~ e^x / 2; the term e^(-x)/2 becomes negligible well before it underflows.
  • Fundamental identity: cosh^2 x - sinh^2 x = 1 — the hyperbola, in the same role the Pythagorean identity plays for the circle. Addition formula: sinh(x + y) = sinh x cosh y + cosh x sinh y.

Abramowitz & Stegun treat the hyperbolic functions in chapter 4 section 4.5; the relations sinh x = -i sin(ix) and sin x = -i sinh(ix) are the bridge to section 4.3.

Microsoft's page gives the signature, describes the argument as "any real number", and states that the formula for the hyperbolic sine is the one shown — the formula itself appears on that page only as an image, so it is not quotable from the article text. The definition above is the standard one and is stated here from the mathematical literature, not from the article.

Arguments

ArgumentMeaningDefault
numberAny real number. Required.—

There are no units here. SINH takes a number, not an angle, and the RADIANS apparatus that attaches to SIN is meaningless for it. That is the position most often misunderstood: readers arriving from SIN sometimes convert degrees first, which is simply wrong.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

Quirks

Result and edge cases

Returns Number.

The characteristic edge is overflow. Because sinh x ~ e^x/2, the result exceeds the binary64 range at a moderate argument — somewhere just past the point where e^x itself overflows, shifted by the halving. Beyond that point the mathematical value exists and is finite; it is only the representation that fails.

Small arguments round-trip: below the point where x^3/6 is negligible against x, the correctly rounded sinh x is x, so subnormals pass through unchanged.

How to implement

Numerical notes

SINH has two hazards, at opposite ends of its domain, and one identity that fixes each.

Near zero: cancellation. The naive formula (exp(x) - exp(-x))/2 subtracts two numbers that both approach 1 as x -> 0. The difference is 2x to leading order, so the subtraction discards approximately as many significant bits as |x| has leading zeros in its exponent — total loss for small x. Relative accuracy is destroyed exactly where the function is smoothest.

The two standard remedies:

  1. Use expm1. With u = expm1(x) (that is, e^x - 1 computed without the cancellation), sinh x = (u + u/(1+u)) / 2. This form is the one Cody & Waite and the modern libms use in the middle band, because expm1 is itself constructed to be accurate near zero.
  2. Use the series for very small |x|: sinh x = x (1 + x^2/6 + x^4/120 + ...), truncated as soon as the next term falls below the rounding of the leading x.

Any implementation that uses the closed exponential form all the way down to zero has a relative-error profile that grows without bound as the argument shrinks. This is a straightforwardly detectable defect and it is worth probing for.

Near the top: overflow in the intermediate. The naive form computes e^x first, so it overflows one halving earlier than the true result does — there is a band of arguments whose sinh is representable but whose e^x is not. The standard remedy is the scaled exponential: compute e^(x - k*ln2) and apply the power of two afterwards by exponent manipulation, so the intermediate never leaves range. fdlibm's sinh and Cody & Waite both do a version of this. Whether an implementation recovers that band is a clean, single-probe test.

Symmetry. sinh is odd, so an implementation should compute on |x| and re-apply the sign, which halves the branch count and guarantees exact antisymmetry. An implementation that does not can return values for x and -x that are not exact negatives of each other — a small defect, but one that breaks any downstream code relying on the parity identity.

A note on what "correct" means here. For arguments where the result overflows, an implementation has three defensible outputs: an infinity, an overflow error, or a saturated finite value. EV-MATH-0008 records that Excel's convention is the error. That is a representation policy, not a numerical claim, and the Handbook keeps the two apart.

Rust code

Show the CalcFunc source of this function

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.

SINH · 3 lines · calc-func/src/catalogue/math.rs on GitHub
19 sinh "SINH" (1, 1) [V "number"] |s, a, sv| {
    raw(s, a, ExcelRealPolicy::FINITE, k::sinh::sinh_kernel)
}

Kernels shared with other functions

Argument and result plumbing

  • num catalogue/kit
  • out catalogue/kit

No implementation has been published with a Handbook test suite for this function.

Version differences

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 buildPlatform and CPUCaptured inputs
19929Windows, bitness not recorded, CPU not recorded41
20430Windows, 64-bit, CPU not recorded33,550
  • XC-SINH-001: build 19929 versus build 20430; 2 same-input pairs, 0 differing answers. Compared axes: excel-build. Numeric answers were compared by their recorded binary64 bits; other answers by typed value.

Agreement on these compared inputs does not establish agreement on unmeasured inputs.

Recorded environments and comparison details.

Excel 16.0 build 19929

Windows, bitness not recorded, CPU not recorded

41 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.

Excel 16.0 build 20430

Windows, 64-bit, CPU not recorded

33,550 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.

Alternatives

Relationships

  • COSH — the even primary; COSH and SINH differ by the sign in the numerator, and COSH never approaches zero, which makes it the numerically easy one.
  • TANH — SINH/COSH, bounded in (-1, 1). Computing TANH as that quotient is a mistake for large arguments (see the TANH page).
  • ASINH — the inverse, defined on all of R as ln(x + sqrt(x^2 + 1)). That closed form is where the interesting cancellation in this family lives; see the ASINH page.
  • SIN — the circular sibling, via sinh x = -i sin(ix). Bounded versus unbounded is the practical difference and it is the whole reason their edge cases have nothing in common.
  • EXP — the substrate of every reasonable implementation, and a co-subject of EV-MATH-0008.
  • Confused with: SIN, by name similarity, and by readers who assume a degrees convention applies.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents