#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] pub(crate) fn k_tanf(x: f64, odd: bool) -> f32 { let z = x * x; /* *Splitupthepolynomialintosmallindependenttermstogive *opportunitiesforparallelevaluation.Thechosensplittingis *micro-optimizedforAthlons(XP,X64).Itcosts2multiplications *relativetoHorner'smethodonsequentialmachines. * *Weaddthesmalltermsfromlowestdegreeupforefficiencyon *non-sequentialmachines(thelowestdegreetermstendtobeready *earlier).Apartfromthis,wedon'tcareaboutorderof *operations,anddon'tneedtotocaresincewehaveprecisionto *spare.However,thechosensplittingisgoodforaccuracytoo, *andwouldgiveresultsasaccurateasHorner'smethodifthe *smalltermswereaddedfromhighestdegreedown.
*/ letmut r = T[4] + z * T[5]; let t = T[2] + z * T[3]; let w = z * z; let s = z * x; let u = T[0] + z * T[1];
r = (x + s * u) + (s * w) * (t + w * r);
(if odd { -1. / r } else { r }) as f32
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 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.