IMARCCOSH Function in Gnumeric: Syntax, Examples and Branch Cuts
Calculate the inverse complex hyperbolic cosine in Gnumeric, including modeled responses and principal branches.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =IMARCCOSH("1+2i") finds the principal inverse complex hyperbolic cosine, approximately 1.528570919+1.143717740i.
Availability and version history
- Introduced: 1.1.6, according to the official release history. This was a development-series release.
- Availability: Supported in Gnumeric 1.12.62, based on the function-specific registration.
- Scope: Desktop; the fn-complex function module must be included and enabled.
- Checked: October 14, 2026. Source and independently calculated examples checked; Gnumeric 1.12.62 was not run.
What IMARCCOSH does
IMARCCOSH returns the principal complex inverse of hyperbolic cosine. It operates on the whole complex value, not by applying the real inverse separately to each coefficient. The forward relation is cosh(w)=z; selecting one inverse branch is necessary because the forward function is not one-to-one. Function reference.
Syntax and inputs
=IMARCCOSH(z)
z is one required complex number: a quoted complex string, a cell holding one, or the result of COMPLEX(real,imaginary). There is no second argument or default value. For example:
=IMARCCOSH("1+2i")
=IMARCCOSH(COMPLEX(1,2))
=IMARCCOSH(A2)
Quote a literal such as "1+2i"; do not enter a bare 1+2i expression. COMPLEX accepts an optional i/j suffix. The examples use comma separators inside multi-argument functions; local formula conventions can differ.
Worked examples
Enter each column-A formula in the stated row, then enter its column-B formula. Results are mathematical reference values rounded to nine decimal places. Any residual column measures the reference calculation’s forward reconstruction.
| Input cell | Formula entered in A | Function formula in B | Independently calculated inverse | Independent forward residual |
|---|---|---|---|---|
| A2 | =COMPLEX(2,0) |
=IMARCCOSH(A2) |
1.316957897 |
2.22e-16 |
| A3 | =COMPLEX(3,0) |
=IMARCCOSH(A3) |
1.762747174 |
4.44e-16 |
| A4 | =COMPLEX(1,2) |
=IMARCCOSH(A4) |
1.528570919+1.143717740i |
4.44e-16 |
| A5 | =COMPLEX(2,1) |
=IMARCCOSH(A5) |
1.469351744+0.507356303i |
2.22e-16 |
| A6 | =COMPLEX(0.5,0.25) |
=IMARCCOSH(A6) |
0.281396056+1.069187474i |
1.11e-16 |
| A7 | =COMPLEX(-0.5,0.25) |
=IMARCCOSH(A7) |
0.281396056+2.072405180i |
2.78e-16 |
| A8 | =COMPLEX(3,4) |
=IMARCCOSH(A8) |
2.305509031+0.936812461i |
4.44e-16 |
| A9 | =COMPLEX(0,0.5) |
=IMARCCOSH(A9) |
0.481211825+1.570796327i |
6.85e-17 |
Use =IMREAL(B2) and =IMAGINARY(B2) to compare coefficients. A different i/j suffix or display precision does not by itself change the complex value.
Principal branch and sensitive inputs
The branch cut is on the real axis below 1. Real inputs below 1 generally require a complex answer. The formula Log(z+sqrt(z−1)sqrt(z+1)) depends on compatible principal branches; its derivative is sensitive near ±1. Documented branch behavior.
Compare COMPLEX(1,0.000001) and COMPLEX(1,-0.000001) near the branch point. Compare real and imaginary coefficients, not just formatted strings. Exact-cut signed-zero conventions and extreme-input behavior need checking in your installed version.
The forward check IMCOSH(IMARCCOSH(z))≈z is useful for finite nonsingular inputs. Reversing that composition need not recover an arbitrary original argument: the inverse returns the principal branch.
Advanced example: reconstruct a modeled response
For a transfer model H=cosh(γL), IMARCCOSH(H) gives one candidate γL. Depending on the justified model, its real part can represent attenuation and its imaginary part phase. Cosh is even and periodic in the imaginary direction, so physical boundary conditions must select among equivalent branches.
Use A4’s 1+2i sample from the table. In C4 enter =IMCOSH(B4) to reconstruct the input, and in D4 enter =IMABS(IMSUB(C4,A4)) for the residual. The independent reference reconstruction is within 1e−12 of the input; your numerical tolerance should reflect the model and input scale.
=IMCOSH(IMARCCOSH(A4))
=IMABS(IMSUB(IMCOSH(IMARCCOSH(A4)),A4))
Input errors and practical checks
The 1.12.62 complex parser maps malformed complex text to #NUM!, whereas the web manual’s generic invalid-input note says #VALUE!. The pinned parser rejects other unsupported types with #VALUE!; coercion before that helper can affect blanks or Booleans. Use an explicit complex string or COMPLEX result when diagnosing an input problem.
Near the branch points described above, a small input change can produce a large inverse change. The example rows avoid exact-cut ambiguity; retain that distinction when checking a branch-sensitive model.