Math and trigonometry functions

CSCH

Close: 6 of 33,309 recorded answers differ in the last bits, worst 2 ULP

Everything else matches (33,306 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
ArabicCSCH
BulgarianCSCH
CzechCSCH
DanishCSCH
GermanCSCH
GreekCSCH
English (Australia)CSCH
English (United Kingdom)CSCH
English (United States)CSCH
SpanishCSCH
EstonianCSCH
FinnishKOSEKH
FrenchCSCH
HebrewCSCH
CroatianCSCH
HungarianCSCH
IndonesianCSCH
ItalianCSCH
JapaneseCSCH
KoreanCSCH
LithuanianCSCH
LatvianCSCH
NorwegianCSCH
DutchCOSECH
PolishCSCH
Portuguese (Brazil)CSCH
Portuguese (Portugal)CSCH
RomanianCSCH
RussianCSCH
SlovakCSCH
SlovenianCSCH
Serbian (Latin)CSCH
SwedishCSCH
ThaiCSCH
TurkishCSCH
UkrainianCSCH
VietnameseCSCH
Chinese (Simplified)CSCH
Chinese (Hong Kong)CSCH
Chinese (Traditional)CSCH

Names from Microsoft's support site.

What it does

CSCH(number)

CSCH(number) returns the hyperbolic cosecant.

csch x = 1 / sinh x = 2 / (e^x - e^{-x})

Microsoft's page describes it as the hyperbolic cosecant of an angle specified in radians. That phrasing is worth a note: the argument of a hyperbolic function is not an angle in the circular sense and there are no radians involved — it is a hyperbolic angle, twice the area of the corresponding hyperbolic sector. The wording appears to be inherited from the circular functions' documentation template. It changes nothing about the mathematics.

PropertyStatement
Domainall real x except x = 0
Range(-∞, 0) ∪ (0, ∞) — every nonzero real is attained exactly once
Parityodd: csch(-x) = -csch(x)
Poleone, simple, at x = 0, with residue 1
Laurent series at 0csch x = 1/x - x/6 + 7x³/360 - … (A&S 4.5.66)
Asymptoticscsch x ~ 2e^{-x} as x → +∞: decays to zero, never reaching it
Fundamental identitycoth²x - csch²x = 1
Derivatived/dx csch x = -csch x · coth x
Relation to circularcsch x = -i·csc(ix)
Monotonestrictly decreasing on (-∞, 0) and on (0, ∞)

The shape is a single hyperbola-like curve on each side of the origin: unbounded at 0, decaying exponentially to 0 at ±∞. Unlike its sibling COTH, which flattens onto ±1, CSCH flattens onto 0 — so its large-argument behaviour is underflow, not overflow, and that is the whole difference in their numerical stories.

The practical thresholds: csch x falls below the smallest normal double once x is above about 710, and below the smallest subnormal at about 745. The correct answer there is 0, and 0 is representable, so nothing goes wrong.

Arguments

ArgumentMeaningConstraint (as documented)
numberThe hyperbolic angle. Required.ABS(number) < 2^27

As on COTH, the constraint has no numerical motivation: csch needs no argument reduction, and its correct value at 2^27 is 0. The bound reads like a documentation template applied across the 2013 trigonometric batch. That reading is a hypothesis and is on the probe list.

The non_finite=allow value is, by contrast, entirely consistent with the mathematics here: csch of a large argument underflows to zero, which is finite, so no non-finite result arises from the value — only, potentially, from the pole.

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, never zero mathematically but zero by underflow for large arguments.

  • CSCH(0) — mathematically a pole. Microsoft's page states the magnitude constraint and the non-numeric condition and says nothing about zero. #DIV/0! follows by analogy with COT, whose page does state it, but nothing establishes it here.
  • Large ABS(x) — the true value underflows to 0. Whether Excel returns 0 or something else is unchecked; 0 is the mathematically correct rounded answer.
  • Sign — preserved: CSCH of a negative argument is negative, including in the underflow region, where the correct answer is negative zero if signed zeros are preserved and 0 otherwise. That distinction is invisible in most contexts and visible in 1/CSCH(x).
  • Never zero for moderate arguments — csch has no zeros, so a 0 returned for an argument below the underflow threshold would be a defect.
  • Near zero — csch x ≈ 1/x, so CSCH of a tiny argument is huge, overflowing only in the subnormal range.

Errors

As documented on Microsoft's CSCH page:

ErrorCondition
#NUM!ABS(number) is not less than 2^27
#VALUE!number is non-numeric

The zero case is not documented. Nothing else is documented.

How to implement

Numerical notes

CSCH is 1/SINH, and every hard question about it is really a question about sinh.

The cancellation, and the remedy. Written as (e^x - e^{-x})/2, sinh x cancels catastrophically for small x: the two exponentials are both close to 1, and their difference is close to 2x, so the leading digits are lost. This is the textbook example of subtractive cancellation (A&S chapter 4.5; every numerical-analysis course). The standard remedy is expm1: with t = expm1(x),

sinh x = ( t + t/(t+1) ) / 2

which never forms the difference of two near-equal quantities. fdlibm's s_sinh.c and Cephes' sinh.c both branch this way, using a polynomial in x² for the smallest arguments and the expm1 form up to moderate size. Excel has no EXPM1 on the worksheet surface, so a user who writes (EXP(x)-EXP(-x))/2 by hand will get the cancellation no matter how good SINH and CSCH are; the worksheet remedy is the series x + x³/6 + x⁵/120.

For CSCH specifically, the reciprocal reverses which end is dangerous.

  • Near zero, sinh is small and its relative error is what propagates, so a stable sinh gives a stable csch. Better still, use the Laurent series 1/x - x/6 + 7x³/360 (A&S 4.5.66) directly below about 2^-13: it avoids the division entirely and gives the deviation from 1/x without cancellation.
  • Underflow tail: below the smallest subnormal the answer is 0, gradually then abruptly. An implementation using 2·EXP(-x) reaches that boundary smoothly; one using 1/SINH(x) reaches it at whatever point SINH stopped being finite.

The one-line summary an implementer needs: never compute csch as the reciprocal of a value that can overflow, and never compute sinh as a difference of exponentials.

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.

CSCH · 1 lines · calc-func/src/catalogue/math.rs on GitHub
15 csch "CSCH" (1, 1) [V "number"] |s, a, sv| { unary(s, a, k::csch::csch_kernel) }
csch_kernel · 9 lines · calc-func/src/ported/csch.rs on GitHub
pub fn csch_kernel(n: f64) -> Result<f64, WorksheetErrorCode> {
    let sinh = crate::ported::sinh::sinh_kernel(n);
    if sinh == 0.0 {
        return Err(WorksheetErrorCode::Div0);
    }
    // Live Excel 16.0 b20326: CSCH(x)=1/SINH(x) 5/5; follows the SINH kernel.
    let value = crate::ported::excel_numeric::excel_x87_recip(sinh);
    Ok(if value.abs() < f64::MIN_POSITIVE { 0.0 } else { value })
}

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 recorded36
20430Windows, 64-bit, CPU not recorded33,306
  • XC-CSCH-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

36 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,306 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

  • SINH — the reciprocal, and the surface whose accuracy CSCH inherits. SINH has the classic cancellation problem near zero; see below.
  • SECH — the other hyperbolic reciprocal that decays to zero, but bounded above by 1 and with no pole. SECH is the well-behaved one; CSCH is not.
  • COTH — the sibling from the same 2013 batch, sharing the pole at the origin, the documented 2^27 constraint, and the arg_domain_guard=none axis value. The two pages diverge from their documentation in the same way and should be read together.
  • COSH — the identity coth²x - csch²x = 1 ties this surface to the hyperbolic set; csch x = 1/sinh x and sinh is built from exp.
  • ASINH — there is no ACSCH on the worksheet surface; ASINH(1/x) is the substitute, and it is well conditioned, which makes it a good round-trip probe.
  • CSC — the circular partner, csch x = -i·csc(ix). Same 1/x leading term; opposite behaviour at infinity.
  • IMCSCH — the complex version.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents