Skip to main content

MulAddAssignExt

Trait MulAddAssignExt 

Source
pub trait MulAddAssignExt<A = Self, B = Self>: MulAddExt<A, B> {
    // Required methods
    fn mul_add_assign(&mut self, a: A, b: B);
    fn mul_sub_assign(&mut self, a: A, b: B);
    fn nmul_add_assign(&mut self, a: A, b: B);
    fn nmul_sub_assign(&mut self, a: A, b: B);
    fn mul_adde_assign(&mut self, a: A, b: B);
    fn mul_sube_assign(&mut self, a: A, b: B);
    fn nmul_adde_assign(&mut self, a: A, b: B);
    fn nmul_sube_assign(&mut self, a: A, b: B);
}
Expand description

Provides assignment variants of the fused multiply-add operations from MulAddExt.

Unlike regular assignment traits, this does require MulAddExt as a supertrait, so we can access the associated HAS_TRUE_FMA constant.

Required Methods§

Source

fn mul_add_assign(&mut self, a: A, b: B)

Guaranteed fused-multiply-add operation.

If the target architecture does not support native FMA, this will use either compensated arithmetic or slow scalar evaluation to ensure correctness.

Source

fn mul_sub_assign(&mut self, a: A, b: B)

Guaranteed fused-multiply-subtract operation.

If the target architecture does not support native FMA, this will use either compensated arithmetic or slow scalar evaluation to ensure correctness.

Source

fn nmul_add_assign(&mut self, a: A, b: B)

Guaranteed fused-negated-multiply-add operation.

If the target architecture does not support native FMA, this will use either compensated arithmetic or slow scalar evaluation to ensure correctness.

Source

fn nmul_sub_assign(&mut self, a: A, b: B)

Guaranteed fused-negated-multiply-subtract operation.

If the target architecture does not support native FMA, this will use either compensated arithmetic or slow scalar evaluation to ensure correctness.

Source

fn mul_adde_assign(&mut self, a: A, b: B)

Fused-multiply-add operation where possible. May gracefully degrade to separate multiply and add if the target architecture does not support native FMA.

Source

fn mul_sube_assign(&mut self, a: A, b: B)

Fused-multiply-subtract operation where possible. May gracefully degrade to separate multiply and subtract if the target architecture does not support native FMA.

Source

fn nmul_adde_assign(&mut self, a: A, b: B)

Fused-negated-multiply-add operation where possible. May gracefully degrade to separate multiply and add if the target architecture does not support native FMA.

Source

fn nmul_sube_assign(&mut self, a: A, b: B)

Fused-negated-multiply-subtract operation where possible. May gracefully degrade to separate multiply and subtract if the target architecture does not support native FMA.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§