Available in versions: Dev (3.19) | Latest (3.18) | 3.17

This is experimental functionality, and as such subject to change. Use at your own risk!

This documentation is for the unreleased development version of jOOQ. Click on the above version links to get this documentation for a supported version of jOOQ.

# Hyperbolic functions

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

Some dialects may not support all hyperbolic functions, or they are derived from other, much more complex maths expressions.

Using Settings.transformPatternsHyperbolicFunctions, the following transformations can be achieved:

```-- With Settings.transformPatternsTrigonometricFunctions active, this:
SELECT
(EXP(x) - EXP(-x)) / 2
(EXP(2 * x) - 1) / (2 * EXP(x))
(1 - EXP(-2 * x)) / (2 * EXP(-x))
(EXP(x) + EXP(-x)) / 2
(EXP(2 * x) + 1) / (2 * EXP(x))
(1 + EXP(-2 * x)) / (2 * EXP(-x))
SINH(x) / COSH(x)
1 / COTH(x)
(EXP(x) - EXP(-x)) / (EXP(x) + EXP(-x))
(EXP(2 * x) - 1) / (EXP(2 * x) + 1)
COSH(x) / SINH(x)
1 / TANH(x)
(EXP(x) + EXP(-x)) / (EXP(x) - EXP(-x))
(EXP(2 * x) + 1) / (EXP(2 * x) - 1)
FROM tab;

-- ... is transformed into the equivalent expression:
SELECT
SINH(x), -- (EXP(x) - EXP(-x)) / 2,
SINH(x), -- (EXP(2 * x) - 1) / (2 * EXP(x)),
SINH(x), -- (1 - EXP(-2 * x)) / (2 * EXP(-x)),
COSH(x), -- (EXP(x) + EXP(-x)) / 2,
COSH(x), -- (EXP(2 * x) + 1) / (2 * EXP(x)),
COSH(x), -- (1 + EXP(-2 * x)) / (2 * EXP(-x)),
TANH(x), -- SINH(x) / COSH(x),
TANH(x), -- 1 / COTH(x),
TANH(x), -- (EXP(x) - EXP(-x)) / (EXP(x) + EXP(-x)),
TANH(x), -- (EXP(2 * x) - 1) / (EXP(2 * x) + 1),
COTH(x), -- COSH(x) / SINH(x),
COTH(x), -- 1 / TANH(x),
COTH(x), -- (EXP(x) + EXP(-x)) / (EXP(x) - EXP(-x)),
COTH(x)  -- (EXP(2 * x) + 1) / (EXP(2 * x) - 1)
FROM tab;```

These transformations in particular may not appear to be complete, as many other intermediary steps may be required to achieve the above documented starting expressions. More work might be implemented in the future.

### Feedback 