# How to compute the inverse hyperbolic sine in PyTorch?

The torch.asinh() method computes the inverse hyperbolic sine of each element of the input tensor. It supports both real and complex-valued inputs. It supports any dimension of the input tensor.

### Syntax

torch.asinh(input)

where input is the input tensor.

### Output

It returns a tensor inverse hyperbolic sine of each element.

### Steps

To compute the inverse hyperbolic sine of each element in the input tensor, you could follow the steps given below −

• Import the required library. In all the following examples, the required Python library is torch. Make sure you have already installed it.

import torch
• Create a torch tensor and print it.

input = torch.randn(3,4)
print("Input Tensor:", input)
• Compute the inverse hyperbolic sine of each element in the input tensor using torch.asinh(input). Here input is the input tensor .

inv_hsi = torch.asinh(input)
• Display the computed tensor with inverse hyperbolic sine values.

print("Inverse Hyperbolic Sine Tensor:", inv_hsin)

Now, let's take a couple of examples to demonstrate how to compute the inverse hyperbolic sine.

## Example 1

# Import the required library
import torch

# define an input tensor
input = torch.tensor([1.2, 3., 4., 4.2, -3.2])

# print the above defined tensor
print("Input Tensor:", input)

# compute the inverse hyperbolic sine
inv_hsin = torch.asinh(input)

# print the above computed tensor
print("Inverse Hyperbolic Sine Tensor:", inv_hsin)
print("............................")

# define a complex input tensor
input = torch.tensor([1.2+2j, 3.+4.j, 4.2-3.2j])

# print the above defined tensor
print("Input Tensor:", input)

# compute the inverse hyperbolic sine
inv_hsin = torch.asinh(input)

# print the above computed tensor
print("Inverse Hyperbolic Sine Tensor:", inv_hsin)

## Output

Input Tensor:
tensor([ 1.2000, 3.0000, 4.0000, 4.2000, -3.2000])
Inverse Hyperbolic Sine Tensor:
tensor([ 1.0160, 1.8184, 2.0947, 2.1421, -1.8799])
............................
Input Tensor:
tensor([1.2000+2.0000j, 3.0000+4.0000j, 4.2000-3.2000j])
Inverse Hyperbolic Sine Tensor:
tensor([1.5205+0.9873j, 2.2999+0.9176j, 2.3596-0.6425j])

In the above program, we computed the inverse hyperbolic sine of each element of the both real and complex-valued input tensors.

## Example 2

# Import the required library
import torch

# define an input tensor
input = torch.randn(4,4)

# print the above defined tensor
print("Input Tensor:", input)

# compute the inverse hyperbolic sine
inv_hsin = torch.asinh(input)

# print the above computed tensor
print("Inverse Hyperbolic Sine Tensor:", inv_hsin)
print("............................")

# define a complex input tensor
real = torch.randn(2,3)
imag = torch.randn(2,3)
input = torch.complex(real, imag)

# print the above defined tensor
print("Input Tensor:", input)

# compute the inverse hyperbolic sine
inv_hsin = torch.asinh(input)

# print the above computed tensor
print("Inverse Hyperbolic Sine Tensor:", inv_hsin)

## Output

Input Tensor:
tensor([[ 0.4057, -1.8063, -0.5133, 0.3540],
[-0.7180, -1.0896, 0.1832, 1.9867],
[-0.6352, -0.1913, -0.0541, -0.3637],
[-0.6229, 0.5518, -0.8876, 2.8466]])
Inverse Hyperbolic Sine Tensor:
tensor([[ 0.3953, -1.3535, -0.4931, 0.3470],
[-0.6673, -0.9433, 0.1822, 1.4377],
[-0.5988, -0.1901, -0.0541, -0.3561],
[-0.5884, 0.5270, -0.7996, 1.7688]])
............................
Input Tensor:
tensor([[-0.7072+0.6690j, 0.2434-1.0732j, 1.2196-0.7483j],
[-1.2849+0.1874j, -0.7717+1.3786j, 0.6163-0.0782j]])
Inverse Hyperbolic Sine Tensor:
tensor([[-0.7525+0.5421j, 0.5764-1.1596j, 1.1148-0.4592j],
[-1.0744+0.1149j, -1.1086+0.9624j, 0.5839-0.0666j]])

Note − In the above example, we have taken input tensors of randomly generated numbers. You may notice getting different elements.