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§
Sourcefn mul_add_assign(&mut self, a: A, b: B)
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.
Sourcefn mul_sub_assign(&mut self, a: A, b: B)
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.
Sourcefn nmul_add_assign(&mut self, a: A, b: B)
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.
Sourcefn nmul_sub_assign(&mut self, a: A, b: B)
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.
Sourcefn mul_adde_assign(&mut self, a: A, b: B)
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.
Sourcefn mul_sube_assign(&mut self, a: A, b: B)
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.
Sourcefn nmul_adde_assign(&mut self, a: A, b: B)
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.
Sourcefn nmul_sube_assign(&mut self, a: A, b: B)
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".