Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# Native float operations

These `float` operations have fast, optimized implementations. Other floating point operations use generic implementations that are often slower.

## Construction

- Float literal

- `float(x: int)`

- `float(x: i64)`

- `float(x: i32)`

- `float(x: i16)`

- `float(x: u8)`

- `float(x: str)`

- `float(x: float)` (no-op)

## Operators

- Arithmetic (`+`, `-`, `*`, `/`, `//`, `%`)

- Comparisons (`==`, `!=`, `<`, etc.)

- Augmented assignment (`x += y`, etc.)

## Functions

- `int(f)`

- `i64(f)` (convert to 64-bit signed integer)

- `i32(f)` (convert to 32-bit signed integer)

- `i16(f)` (convert to 16-bit signed integer)

- `u8(f)` (convert to 8-bit unsigned integer)

- `abs(f)`

- `math.sin(f)`

- `math.cos(f)`

- `math.tan(f)`

- `math.sqrt(f)`

- `math.exp(f)`

- `math.log(f)`

- `math.floor(f)`

- `math.ceil(f)`

- `math.fabs(f)`

- `math.pow(x, y)`

- `math.copysign(x, y)`

- `math.isinf(f)`

- `math.isnan(f)`