Skip to content

Treat Fraction as a real value in mixed arithmetic operations with complex #119838

Description

@serhiy-storchaka

In arithmetic operations, if one of operands is a Fraction, and the other operand is a complex or a numbers.Complex, the fraction is implicitly converted to a complex. Third-party types implementing the numbers.Complex interface can distinguish between real and complex operands. In future we can support the mixed real-complex arithmetic also for the builtin complex type. A fraction is a real value, so it makes sense to convert it to float instead of complex in such cases.

Linked PRs

Activity

  1. added a commit that references this issue on May 31, 2024
  2. skirpichev commented on May 31, 2024

    @skirpichev
    Member

    In future we can support the mixed real-complex arithmetic also for the builtin complex type.

    Then this change will make sense. Right now it contradicts to coercion rules for int/floats op complex.

    PS: But thank you for reminding me that I should fix also the "complex op Fraction" case in my pr:)

    Edit: After looking on the code, sorry - false alert.

  3. mdickinson commented on Jun 2, 2024

    @mdickinson
    Member

    A fraction is a real value, so it makes sense to convert it to float instead of complex in such cases.

    +1

  4. added a commit that references this issue on Jun 3, 2024
  5. added a commit that references this issue on Jun 3, 2024
  6. added a commit that references this issue on Jun 5, 2024
  7. added a commit that references this issue on Jul 11, 2024
  8. added a commit that references this issue on Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions