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, ExplicitlyCopyable, Floatable, Floorable, GreaterThanComparable, GreaterThanOrEqualComparable, ImplicitlyBoolable, Intable, LessThanComparable, LessThanOrEqualComparable, Movable, Roundable, Stringable, Truncable, UnknownDestructibility

Methods

__init__

@implicit __init__(value: !kgen.float_literal) -> Self

Create a FloatLiteral value from a kgen.float_literal value.

Args:

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

@implicit __init__(value: IntLiteral) -> Self

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.