Skip to main content
Log in

Mojo struct

FloatLiteral

@register_passable(trivial) struct FloatLiteral

Mojo floating point literal type.

Aliases

  • fp_type = !kgen.float_literal:
  • nan = #kgen.float_literal<nan>:
  • infinity = #kgen.float_literal<inf>:
  • negative_infinity = #kgen.float_literal<neg_inf>:
  • negative_zero = #kgen.float_literal<neg_zero>:

Fields

  • value (!kgen.float_literal): The underlying storage for the floating point value.

Implemented traits

Absable, AnyType, Boolable, CeilDivable, Ceilable, CollectionElement, Comparable, Copyable, EqualityComparable, Floatable, Floorable, ImplicitlyBoolable, Intable, Movable, Roundable, Stringable, Truncable, UnknownDestructibility

Methods

__init__

__init__(out self, value: !kgen.float_literal)

Create a FloatLiteral value from a kgen.float_literal value.

Args:

  • value (!kgen.float_literal): The float value.

__init__(out self, value: IntLiteral)

Convert an IntLiteral to a FloatLiteral value.

Args:

  • value (IntLiteral): The IntLiteral value.

__bool__

__bool__(self) -> Bool

A FloatLiteral value is true if it is non-zero.

Returns:

True if non-zero.

__neg__

__neg__(self) -> Self

Return the negation of the FloatLiteral value.

Returns:

The negated FloatLiteral value.

__lt__

__lt__(self, rhs: Self) -> Bool

Less than comparison.

Args:

  • rhs (Self): The value to compare.

Returns:

True if this value is less than rhs.

__le__

__le__(self, rhs: Self) -> Bool

Less than or equal to comparison.

Args:

  • rhs (Self): The value to compare.

Returns:

True if this value is less than or equal to rhs.

__eq__

__eq__(self, rhs: Self) -> Bool

Compare for equality.

Args:

  • rhs (Self): The value to compare.

Returns:

True if they are equal.

__ne__

__ne__(self, rhs: Self) -> Bool

Compare for inequality.

Args:

  • rhs (Self): The value to compare.

Returns:

True if they are not equal.

__gt__

__gt__(self, rhs: Self) -> Bool

Greater than comparison.

Args:

  • rhs (Self): The value to compare.

Returns:

True if this value is greater than rhs.

__ge__

__ge__(self, rhs: Self) -> Bool

Greater than or equal to comparison.

Args:

  • rhs (Self): The value to compare.

Returns:

True if this value is greater than or equal to rhs.

__add__

__add__(self, rhs: Self) -> Self

Add two FloatLiterals.

Args:

  • rhs (Self): The value to add.

Returns:

The sum of the two values.

__sub__

__sub__(self, rhs: Self) -> Self

Subtract two FloatLiterals.

Args:

  • rhs (Self): The value to subtract.

Returns:

The difference of the two values.

__mul__

__mul__(self, rhs: Self) -> Self

Multiply two FloatLiterals.

Args:

  • rhs (Self): The value to multiply.

Returns:

The product of the two values.

__truediv__

__truediv__(self, rhs: Self) -> Self

Divide two FloatLiterals.

Args:

  • rhs (Self): The value to divide.

Returns:

The quotient of the two values.

__floordiv__

__floordiv__(self, rhs: Self) -> Self

Returns self divided by rhs, rounded down to the nearest integer.

Args:

  • rhs (Self): The divisor value.

Returns:

floor(self / rhs) value.

__mod__

__mod__(self, rhs: Self) -> Self

Return the remainder of self divided by rhs.

Args:

  • rhs (Self): The value to divide on.

Returns:

The remainder of dividing self by rhs.

__radd__

__radd__(self, rhs: Self) -> Self

Reversed addition operator.

Args:

  • rhs (Self): The value to add.

Returns:

The sum of this and the given value.

__rsub__

__rsub__(self, rhs: Self) -> Self

Reversed subtraction operator.

Args:

  • rhs (Self): The value to subtract from.

Returns:

The result of subtracting this from the given value.

__rmul__

__rmul__(self, rhs: Self) -> Self

Reversed multiplication operator.

Args:

  • rhs (Self): The value to multiply.

Returns:

The product of the given number and this.

__rtruediv__

__rtruediv__(self, rhs: Self) -> Self

Reversed division.

Args:

  • rhs (Self): The value to be divided by this.

Returns:

The result of dividing the given value by this.

__rfloordiv__

__rfloordiv__(self, rhs: Self) -> Self

Returns rhs divided by self, rounded down to the nearest integer.

Args:

  • rhs (Self): The value to be divided by self.

Returns:

floor(rhs / self) value.

__iadd__

__iadd__(mut self, rhs: Self)

In-place addition operator.

Args:

  • rhs (Self): The value to add.

__isub__

__isub__(mut self, rhs: Self)

In-place subtraction operator.

Args:

  • rhs (Self): The value to subtract.

__imul__

__imul__(mut self, rhs: Self)

In-place multiplication operator.

Args:

  • rhs (Self): The value to multiply.

__itruediv__

__itruediv__(mut self, rhs: Self)

In-place division.

Args:

  • rhs (Self): The value to divide.

is_nan

is_nan(self) -> Bool

Return whether the FloatLiteral is nan.

Since nan == nan is False, this provides a way to check for nan-ness.

Returns:

True, if the value is nan, False otherwise.

is_neg_zero

is_neg_zero(self) -> Bool

Return whether the FloatLiteral is negative zero.

Since FloatLiteral.negative_zero == 0.0 is True, this provides a way to check if the FloatLiteral is negative zero.

Returns:

True, if the value is negative zero, False otherwise.

__str__

__str__(self) -> String

Get the float as a string.

Returns:

A string representation.

__int_literal__

__int_literal__(self) -> IntLiteral

Casts the floating point value to an IntLiteral. If there is a fractional component, then the value is truncated towards zero.

Eg. (4.5).__int_literal__() returns 4, and (-3.7).__int_literal__() returns -3.

Returns:

The value as an integer.

__int__

__int__(self) -> Int

Converts the FloatLiteral value to an Int. If there is a fractional component, then the value is truncated towards zero.

Eg. (4.5).__int__() returns 4, and (-3.7).__int__() returns -3.

Returns:

The value as an integer.

__float__

__float__(self) -> SIMD[float64, 1]

Converts the FloatLiteral to a concrete Float64.

Returns:

The Float value.

__as_bool__

__as_bool__(self) -> Bool

A FloatLiteral value is true if it is non-zero.

Returns:

True if non-zero.

__abs__

__abs__(self) -> Self

Return the absolute value of the FloatLiteral.

Returns:

The absolute value.

__floor__

__floor__(self) -> Self

Return the floor value of the FloatLiteral.

Returns:

The floor value.

__ceil__

__ceil__(self) -> Self

Return the ceiling value of the FloatLiteral.

Returns:

The ceiling value.

__trunc__

__trunc__(self) -> Self

Truncates the floating point literal. If there is a fractional component, then the value is truncated towards zero.

For example, (4.5).__trunc__() returns 4.0, and (-3.7).__trunc__() returns -3.0.

Returns:

The truncated FloatLiteral value.

__round__

__round__(self) -> Self

Return the rounded value of the FloatLiteral.

Returns:

The rounded value.

__round__(self, ndigits: Int) -> Self

Return the rounded value of the FloatLiteral.

Args:

  • ndigits (Int): The number of digits to round to. Defaults to 0.

Returns:

The rounded value.

__divmod__

__divmod__(self, rhs: Self) -> Tuple[FloatLiteral, FloatLiteral]

Return a tuple with the quotient and the remainder of self divided by rhs.

Args:

  • rhs (Self): The value to divide on.

Returns:

A tuple with the dividend and the remainder.

__ceildiv__

__ceildiv__(self, denominator: Self) -> Self

Return the rounded-up result of dividing self by denominator.

Args:

  • denominator (Self): The denominator.

Returns:

The ceiling of dividing numerator by denominator.