feat(const_eval): impl. fma

This commit is contained in:
Erich Gubler
2024-01-26 12:13:43 -05:00
committed by Teodor Tanasoaia
parent 7b274fc161
commit 19f5e4d5e4
2 changed files with 9 additions and 0 deletions

View File

@@ -75,6 +75,7 @@ Bottom level categories:
- `exp`
- `exp2`
- `floor`
- `fma`
- Eager release of GPU resources comes from device.trackers. By @bradwerth in [#5075](https://github.com/gfx-rs/wgpu/pull/5075)
- `wgpu-types`'s `trace` and `replay` features have been replaced by the `serde` feature. By @KirmesBude in [#5149](https://github.com/gfx-rs/wgpu/pull/5149)
- `wgpu-core`'s `serial-pass` feature has been removed. Use `serde` instead. By @KirmesBude in [#5149](https://github.com/gfx-rs/wgpu/pull/5149)

View File

@@ -916,6 +916,14 @@ impl<'a> ConstantEvaluator<'a> {
crate::MathFunction::Floor => {
component_wise_float!(self, span, [arg], |e| { Ok([e.floor()]) })
}
crate::MathFunction::Fma => {
component_wise_float!(
self,
span,
[arg, arg1.unwrap(), arg2.unwrap()],
|e1, e2, e3| { Ok([e1.mul_add(e2, e3)]) }
)
}
crate::MathFunction::Round => {
// TODO: Use `f{32,64}.round_ties_even()` when available on stable. This polyfill
// is shamelessly [~~stolen from~~ inspired by `ndarray-image`][polyfill source],