fn cosh32(x: f32) f32
fn cosh32(x: f32) f32 { const u = @as(u32, @bitCast(x)); const ux = u & 0x7FFFFFFF; const ax = @as(f32, @bitCast(ux)); // |x| < log(2) if (ux < 0x3F317217) { if (ux < 0x3F800000 - (12 << 23)) { math.raiseOverflow(); return 1.0; } const t = math.expm1(ax); return 1 + t * t / (2 * (1 + t)); } // |x| < log(FLT_MAX) if (ux < 0x42B17217) { const t = @exp(ax); return 0.5 * (t + 1 / t); } // |x| > log(FLT_MAX) or nan return expo2(ax); }