letmut ui: u32 = x.to_bits(); let hfsq: f32; let f: f32; let s: f32; let z: f32; let r: f32; let w: f32; let t1: f32; let t2: f32; let dk: f32; letmut hi: f32; let lo: f32; letmut ix: u32; letmut k: i32;
ix = ui;
k = 0; if ix < 0x00800000 || (ix >> 31) > 0 { /* x < 2**-126 */ if ix << 1 == 0 { return -1. / (x * x); /* log(+-0)=-inf */
} if (ix >> 31) > 0 { return (x - x) / 0.0; /* log(-#) = NaN */
} /* subnormal number, scale up x */
k -= 25;
x *= x1p25f;
ui = x.to_bits();
ix = ui;
} elseif ix >= 0x7f800000 { return x;
} elseif ix == 0x3f800000 { return0.;
}
/* reduce x into [sqrt(2)/2, sqrt(2)] */
ix += 0x3f800000 - 0x3f3504f3;
k += (ix >> 23) as i32 - 0x7f;
ix = (ix & 0x007fffff) + 0x3f3504f3;
ui = ix;
x = f32::from_bits(ui);
f = x - 1.0;
s = f / (2.0 + f);
z = s * s;
w = z * z;
t1 = w * (LG2 + w * LG4);
t2 = z * (LG1 + w * LG3);
r = t2 + t1;
hfsq = 0.5 * f * f;
hi = f - hfsq;
ui = hi.to_bits();
ui &= 0xfffff000;
hi = f32::from_bits(ui);
lo = f - hi - hfsq + s * (hfsq + r);
dk = k as f32;
dk * LOG10_2LO + (lo + hi) * IVLN10LO + lo * IVLN10HI + hi * IVLN10HI + dk * LOG10_2HI
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-21)
¤
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.