torch.frexp — PyTorch 2.5 documentation (original) (raw)

torch.frexp(input, *, out=None) -> (Tensor mantissa, Tensor exponent)

Decomposes input into mantissa and exponent tensors such that input=mantissa×2exponent\text{input} = \text{mantissa} \times 2^{\text{exponent}}.

The range of mantissa is the open interval (-1, 1).

Supports float inputs.

Parameters

input (Tensor) – the input tensor

Keyword Arguments

out (tuple, optional) – the output tensors

Example:

x = torch.arange(9.) mantissa, exponent = torch.frexp(x) mantissa tensor([0.0000, 0.5000, 0.5000, 0.7500, 0.5000, 0.6250, 0.7500, 0.8750, 0.5000]) exponent tensor([0, 1, 2, 2, 3, 3, 3, 3, 4], dtype=torch.int32) torch.ldexp(mantissa, exponent) tensor([0., 1., 2., 3., 4., 5., 6., 7., 8.])