pub trait XXXXAddYYYYToZZZZ: Sized {
    fn xxxx_add_yyyy_to_zzzz(
        x_3: Self,
        x_2: Self,
        x_1: Self,
        x_0: Self,
        y_3: Self,
        y_2: Self,
        y_1: Self,
        y_0: Self
    ) -> (Self, Self, Self, Self); }
Expand description

Adds two numbers, each composed of four Self values, returning the sum as a quadruple of Self values.

The more significant number always comes first. Addition is wrapping, and overflow is not indicated.

Required Methods

Implementations on Foreign Types

Adds two numbers, each composed of four Self values, returning the sum as a quadruple of Self values.

The more significant value always comes first. Addition is wrapping, and overflow is not indicated.

$$ f(x_3, x_2, x_1, x_0, y_2, y_2, y_1, y_0) = (z_3, z_2, z_1, z_0), $$ where $W$ is Self::WIDTH,

$x_3, x_2, x_1, x_0, y_3, y_2, y_1, y_0, z_3, z_2, z_1, z_0 < 2^W$, and $$ (2^{3W}x_3 + 2^{2W}x_2 + 2^Wx_1 + x_0) + (2^{3W}y_3 + 2^{2W}y_2 + 2^Wy_1 + y_0) \equiv 2^{3W}z_3 + 2^{2W}z_2 + 2^Wz_1 + z_0 \mod 2^{4W}. $$

Worst-case complexity

Constant time and additional memory.

Examples

See here.

This is equivalent to add_ssssaaaaaaaa from longlong.h, FLINT 2.7.1, where (s3, s2, s1, s0) is returned.

Adds two numbers, each composed of four Self values, returning the sum as a quadruple of Self values.

The more significant value always comes first. Addition is wrapping, and overflow is not indicated.

$$ f(x_3, x_2, x_1, x_0, y_2, y_2, y_1, y_0) = (z_3, z_2, z_1, z_0), $$ where $W$ is Self::WIDTH,

$x_3, x_2, x_1, x_0, y_3, y_2, y_1, y_0, z_3, z_2, z_1, z_0 < 2^W$, and $$ (2^{3W}x_3 + 2^{2W}x_2 + 2^Wx_1 + x_0) + (2^{3W}y_3 + 2^{2W}y_2 + 2^Wy_1 + y_0) \equiv 2^{3W}z_3 + 2^{2W}z_2 + 2^Wz_1 + z_0 \mod 2^{4W}. $$

Worst-case complexity

Constant time and additional memory.

Examples

See here.

This is equivalent to add_ssssaaaaaaaa from longlong.h, FLINT 2.7.1, where (s3, s2, s1, s0) is returned.

Adds two numbers, each composed of four Self values, returning the sum as a quadruple of Self values.

The more significant value always comes first. Addition is wrapping, and overflow is not indicated.

$$ f(x_3, x_2, x_1, x_0, y_2, y_2, y_1, y_0) = (z_3, z_2, z_1, z_0), $$ where $W$ is Self::WIDTH,

$x_3, x_2, x_1, x_0, y_3, y_2, y_1, y_0, z_3, z_2, z_1, z_0 < 2^W$, and $$ (2^{3W}x_3 + 2^{2W}x_2 + 2^Wx_1 + x_0) + (2^{3W}y_3 + 2^{2W}y_2 + 2^Wy_1 + y_0) \equiv 2^{3W}z_3 + 2^{2W}z_2 + 2^Wz_1 + z_0 \mod 2^{4W}. $$

Worst-case complexity

Constant time and additional memory.

Examples

See here.

This is equivalent to add_ssssaaaaaaaa from longlong.h, FLINT 2.7.1, where (s3, s2, s1, s0) is returned.

Adds two numbers, each composed of four Self values, returning the sum as a quadruple of Self values.

The more significant value always comes first. Addition is wrapping, and overflow is not indicated.

$$ f(x_3, x_2, x_1, x_0, y_2, y_2, y_1, y_0) = (z_3, z_2, z_1, z_0), $$ where $W$ is Self::WIDTH,

$x_3, x_2, x_1, x_0, y_3, y_2, y_1, y_0, z_3, z_2, z_1, z_0 < 2^W$, and $$ (2^{3W}x_3 + 2^{2W}x_2 + 2^Wx_1 + x_0) + (2^{3W}y_3 + 2^{2W}y_2 + 2^Wy_1 + y_0) \equiv 2^{3W}z_3 + 2^{2W}z_2 + 2^Wz_1 + z_0 \mod 2^{4W}. $$

Worst-case complexity

Constant time and additional memory.

Examples

See here.

This is equivalent to add_ssssaaaaaaaa from longlong.h, FLINT 2.7.1, where (s3, s2, s1, s0) is returned.

Adds two numbers, each composed of four Self values, returning the sum as a quadruple of Self values.

The more significant value always comes first. Addition is wrapping, and overflow is not indicated.

$$ f(x_3, x_2, x_1, x_0, y_2, y_2, y_1, y_0) = (z_3, z_2, z_1, z_0), $$ where $W$ is Self::WIDTH,

$x_3, x_2, x_1, x_0, y_3, y_2, y_1, y_0, z_3, z_2, z_1, z_0 < 2^W$, and $$ (2^{3W}x_3 + 2^{2W}x_2 + 2^Wx_1 + x_0) + (2^{3W}y_3 + 2^{2W}y_2 + 2^Wy_1 + y_0) \equiv 2^{3W}z_3 + 2^{2W}z_2 + 2^Wz_1 + z_0 \mod 2^{4W}. $$

Worst-case complexity

Constant time and additional memory.

Examples

See here.

This is equivalent to add_ssssaaaaaaaa from longlong.h, FLINT 2.7.1, where (s3, s2, s1, s0) is returned.

Adds two numbers, each composed of four usize values, returning the sum as a quadruple of usize values.

The more significant value always comes first. Addition is wrapping, and overflow is not indicated.

$$ f(x_3, x_2, x_1, x_0, y_2, y_2, y_1, y_0) = (z_3, z_2, z_1, z_0), $$ where $W$ is Self::WIDTH,

$x_3, x_2, x_1, x_0, y_3, y_2, y_1, y_0, z_3, z_2, z_1, z_0 < 2^W$, and $$ (2^{3W}x_3 + 2^{2W}x_2 + 2^Wx_1 + x_0) + (2^{3W}y_3 + 2^{2W}y_2 + 2^Wy_1 + y_0) \equiv 2^{3W}z_3 + 2^{2W}z_2 + 2^Wz_1 + z_0 \mod 2^{4W}. $$

Worst-case complexity

Constant time and additional memory.

Examples

See here.

This is equivalent to add_ssssaaaaaaaa from longlong.h, FLINT 2.7.1, where (s3, s2, s1, s0) is returned.

Implementors