scalar.frexpf
← scalar dialect
Decompose input exactly into a fraction and a signed i32 exponent such that input = fraction * 2^exponent. For finite nonzero inputs, the fraction has the input's sign and magnitude in [0.5, 1). Signed zero, infinity, and NaN inputs retain their floating-point value with exponent zero. Subnormal inputs are normalized.
Operation contract
| Property |
Value |
| Semantic phase |
executable |
| Traits |
Pure, SafeToSpeculate |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
input |
float |
required |
— |
| Result |
fraction |
float |
required |
Signed fraction, with magnitude in [0.5, 1) for finite nonzero inputs. |
| Result |
exponent |
i32 |
required |
Binary exponent; zero for zero, infinity, and NaN inputs. |
Verification constraints
SameType(input, fraction)
Examples
%fraction, %exponent = scalar.frexpf %input : f64, i32