Skip to content

Tracking Issue for signed bigint helper methods #151989

@nickkuk

Description

@nickkuk

Feature gate: #![feature(signed_bigint_helpers)]

This issue continues discussion #85532 with the following methods on signed integers:

  • carrying_add
  • borrowing_sub
  • carrying_mul
  • carrying_mul_unsigned
  • carrying_mul_add
  • carrying_mul_unsigned_add
// On signed integers iN with unsigned uN counterparts:

/// `self + rhs + carry` (full adder)
fn carrying_add(self, rhs: Self, carry: bool) -> (Self, bool);

/// `self - rhs - carry` (full "subtractor")
fn borrowing_sub(self, rhs: Self, carry: bool) -> (Self, bool);

/// `self * rhs + carry`
fn carrying_mul(self, rhs: Self, carry: Self) -> (uN, Self);

/// `self * rhs + carry`
fn carrying_mul_unsigned(self, rhs: uN, carry: uN) -> (uN, Self);

/// `self * rhs + carry + add`
fn carrying_mul_add(self, rhs: Self, carry: Self, add: Self) -> (uN, Self);

/// `self * rhs + carry + add`
fn carrying_mul_unsigned_add(self, rhs: uN, carry: uN, add: Self) -> (uN, Self);

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCT-libsRelevant to the library team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions