The asinh() function computes the inverse hyperbolic sine of a number. If you know a value x and want the hyperbolic angle t such that sinh(t) = x, asinh(x) gives you that answer—and unlike acosh(), it accepts any real number.
01
Inverse sinh
Undo sinh().
02
math.h
Link with -lm.
03
All reals
Any x works.
04
asinh(0)
Returns 0.
05
Odd function
asinh(−x).
06
vs asin
Hyperbolic.
Fundamentals
Definition and Usage
Hyperbolic sine is defined as sinh(t) = (et − e−t) / 2. The inverse asinh(x) answers: “What value of t produces this sinh output?”
Mathematically: asinh(x) = ln(x + √(x² + 1)). Because x² + 1 is always positive, asinh is defined for every real x—negative, zero, or positive.
💡
Beginner Tip
asinh() is an odd function: asinh(−x) = −asinh(x). Negative inputs are perfectly valid and return negative results.
Result grows slowly for large |x| (approximately ln(2|x|) when |x| is large).
Headers and linking
#include <math.h>
Compile: gcc asinh.c -std=c11 -o asinh -lm
Cheat Sheet
⚡ Quick Reference
Call
Meaning
Result (approx.)
asinh(0)
sinh(0) = 0
0
asinh(1)
sinh(t) = 1
0.8814
asinh(2)
sinh(t) = 2
1.4436
asinh(-2)
Odd symmetry
-1.4436
ln(x + sqrt(x*x+1))
Formula
Same as asinh(x)
Inverse
asinh(x)
Angle from sinh
Forward
sinh(t)
Sinh from t
Symmetry
asinh(-x)
= -asinh(x)
Verify
sinh(asinh(x))
= x
Hands-On
Examples Gallery
Compile every example with gcc file.c -std=c11 -o out -lm. Hyperbolic functions accept the full range of real inputs.
📚 Getting Started
Compute inverse hyperbolic sine and print the result.
Example 1 — Basic Inverse Hyperbolic Sine
Find t such that sinh(t) = 2.
C
#include <stdio.h>
#include <math.h>
int main(void) {
double x = 2.0;
double result = asinh(x);
printf("The inverse hyperbolic sine of %.2f is %.6f\n", x, result);
return 0;
}
📤 Output:
The inverse hyperbolic sine of 2.00 is 1.443635
How It Works
asinh(2) returns about 1.444 because sinh(1.444) ≈ 2. The reference rounded to 1.44; six decimal places show the precise value.
Example 2 — Zero and Negative Inputs
asinh accepts any real number and is an odd function.
Not the same as asin() (circular inverse sine, domain [−1, 1]).
Link with -lm when using GCC/Clang on Unix-like systems.
Use asinhf or asinhl for float or long double data.
Performance
⚡ Optimization
asinh() is implemented in the platform math library and is already optimized. Cache results when the same value is computed repeatedly. For float pipelines, use asinhf() to avoid promotion to double.
Wrap Up
Conclusion
asinh() inverts hyperbolic sine for any real input. Include <math.h>, link -lm, and pair it with sinh() when solving hyperbolic equations.
Continue with atan() for inverse circular tangent, or explore sinh() for the forward hyperbolic sine.
Hand-code the log formula unless you have a special need
Expect complex results—asinh always returns real
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about asinh()
Inverse hyperbolic sine in C, explained simply.
5
Core concepts
📐01
Inverse sinh
Undo sinh().
Basics
🌎02
All reals
Any x.
Domain
🔢03
asinh(0) = 0
Identity.
Edge
🔄04
Odd function
Sign flips.
Symmetry
📈05
vs asin
Hyperbolic.
Compare
❓ Frequently Asked Questions
asinh() returns the inverse hyperbolic sine of x. If sinh(t) = x, then asinh(x) = t. For example, asinh(2) is about 1.444 because sinh(1.444) ≈ 2.
Include <math.h> and link with -lm on many systems: gcc program.c -o program -lm. The function is declared as double asinh(double x).
Any real number. Unlike acosh(), there is no lower bound—asinh accepts negative values, zero, and positive values. asinh(0) returns 0.
No. asin() is inverse circular sine (domain [-1, 1]). asinh() is inverse hyperbolic sine (domain all reals). They solve different mathematical problems.
They are inverses: sinh(asinh(x)) equals x for every real x, and asinh(sinh(t)) equals t for every real t.
asinh(x) = ln(x + sqrt(x*x + 1)). The C library implements this accurately; you rarely code the formula by hand.
Did you know?
The prefix “arc” in older math texts became “a” in C function names: asin is arc-sine, asinh is arc-hyperbolic-sine. The “h” marks the hyperbolic variant—a naming pattern shared by sinh, cosh, tanh, and their inverses.