/// Ceil (f32) /// /// Finds the nearest integer greater than or equal to `x`. #[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] pubfn ceilf(x: f32) -> f32 { // On wasm32 we know that LLVM's intrinsic will compile to an optimized // `f32.ceil` native instruction, so we can leverage this for both code size // and speed.
llvm_intrinsically_optimized! { #[cfg(target_arch = "wasm32")] { returnunsafe { ::core::intrinsics::ceilf32(x) }
}
} letmut ui = x.to_bits(); let e = (((ui >> 23) & 0xff).wrapping_sub(0x7f)) as i32;
if e >= 23 { return x;
} if e >= 0 { let m = 0x007fffff >> e; if (ui & m) == 0 { return x;
}
force_eval!(x + f32::from_bits(0x7b800000)); if ui >> 31 == 0 {
ui += m;
}
ui &= !m;
} else {
force_eval!(x + f32::from_bits(0x7b800000)); if ui >> 31 != 0 { return -0.0;
} elseif ui << 1 != 0 { return1.0;
}
}
f32::from_bits(ui)
}
/// The spec: https://en.cppreference.com/w/cpp/numeric/math/ceil #[test] fn spec_tests() { // Not Asserted: that the current rounding mode has no effect.
assert!(ceilf(NAN).is_nan()); for f in [0.0, -0.0, INFINITY, NEG_INFINITY].iter().copied() {
assert_eq!(ceilf(f), f);
}
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-18)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.