High Throughput Hyperbolic Sine & Cosine
- Updated2025-01-28
- 8 minute(s) read
Computes the hyperbolic sine and cosine of x. The value of x must be in the range [–1, 1).
This function supports only scalar values of the fixed-point data type.

Dialog Box Options
| Option | Description |
|---|---|
| General |
Specifies general information about this function.
|
| CORDIC Details |
Specifies options for the COordinate Rotation DIgital Computer (CORDIC) algorithm this function uses.
|
| Configuration Feedback |
Displays information about how this function executes. This information is based on the configuration options you specify. |
Inputs/Outputs
x
—
Specifies the input to this function. x must be in the range [–1, 1]. Specifies whether the next data point has arrived for processing. Wire output valid of an upstream node to input valid to transfer data from the upstream node to this Express VI. To display this handshaking terminal, select Inside single-cycle Timed Loop in the configuration dialog box. Specifies whether downstream nodes are ready for this Express VI to return a new value. The default is TRUE. Use a Feedback Node to wire ready for input of a downstream node to ready for output of the current node. Note If ready for output is FALSE during a given cycle, output valid returns FALSE during that cycle.
To display ready for output, select Inside single-cycle Timed Loop in the configuration dialog box.
sinh(x)
—
Returns the hyperbolic sine of x.
cosh(x)
—
Returns the hyperbolic cosine of x. Returns TRUE if this Express VI has computed a result that downstream nodes can use. Use output valid for handshaking with other FPGA VIs and functions. To display output valid, select Inside single-cycle Timed Loop in the configuration dialog box. Returns TRUE if this Express VI is ready to accept new input data. Use a Feedback Node to wire ready for input to ready for output of an upstream node. Note If ready for input returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this Express VI during the following cycle. LabVIEW discards this data even if input valid is TRUE during the following cycle.
To display ready for input, select Inside single-cycle Timed Loop in the configuration dialog box. |
Computing sinh(x) and cosh(x) When x is Outside the Valid Range
x must be in the range [–1, 1). To compute sinh(x) and cosh(x) when x is outside this range, find an integer q and a real number r, where r is in the range [0, ln(2)), such that x = q × ln(2) + r. You then can make the following computations:
- 2^(q – 1)[cosh(r) + sinh(r) – 2^(–2q)(cosh(r) – sinh(r))], which is equivalent to sinh(x).
- 2^(q – 1)[cosh(r) + sinh(r) + 2^(–2q)(cosh(r) – sinh(r))], which is equivalent to cosh(x).
Because r is in the valid range of [–1, 1), you can use this function to compute sinh(r) and cosh(r).
Input Terminal Coercion
The CORDIC algorithm represents x internally as a fixed-point number with a 1-bit integer word length. The word length of x must be less than or equal to 64 bits, which means the fractional word length must be less than or equal to 63 bits. If you wire a value to x that has a fractional word length greater than 63 bits, this function rounds off the lower bits to achieve a fractional word length of 63 bits. For example, if you wire a fixed-point data type with a configuration of <+/–,60,–5> to x, this function coerces the configuration to be <+/–,58,–5>.
If you wire a fixed-point data type to x with a fractional word length greater than 63 bits and an integer word length less than –62 bits, this function coerces the configuration to be <+/–,1,–62> if the data type is signed. If the data type is unsigned, the coerced configuration is <+,1,–62>.
x
—
sinh(x)
—