====== std.math ====== Ganzzahl- und Gleitkomma-Mathematik für den täglichen Einsatz: Betrag (''Abs64''), Min/Max (2 und 3 Argumente), Division und Modulo, Quadratwurzel (''Sqrt64'', ''IntSqrt''), Clamp, Vorzeichen (''Sign64''), Potenz (''Pow64''), lineare Interpolation in Promille (''Lerp64''), Wertebereichsabbildung (''Map64''), Hypotenuse (''Hypot64''), Sinus/Kosinus in ganzzahligen Grad (Lookup-Tabelle), Log2 und Atan2 in Mikro-Grad. Zufallszahlen: ''RandomRange'', ''RandomBetween''. Einsatzbereiche: Geometrie-Berechnungen, Physik-Simulationen, Signal-Skalierung, UI-Animationen — interne Basis-Unit für ''std.vector'', ''std.rect'', ''std.circle''. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''Abs64(x: int64): int64'' | pub | Gibt Betrag einer Ganzzahl zurück | | ''Min64(a: int64, b: int64): int64'' | pub | Gibt kleineren von zwei Werten zurück | | ''Max64(a: int64, b: int64): int64'' | pub | Gibt größeren von zwei Werten zurück | | ''Div64(a: int64, b: int64): int64'' | pub | Ganzzahl-Division zweier Werte | | ''Mod64(a: int64, b: int64): int64'' | pub | Rest der Ganzzahl-Division | | ''TimesTwo(x: int64): int64'' | pub | Verdoppelt einen Wert | | ''RandomRange(max: int64): int64'' | pub | Zufallszahl von 0 bis max | | ''RandomBetween(min: int64, max: int64): int64'' | pub | Zufallszahl im angegebenen Bereich | | ''Sqrt64(n: int64): int64'' | pub | Ganzzahl-Quadratwurzel | | ''Clamp64(val: int64, min: int64, max: int64): int64'' | pub | Begrenzt Wert auf Bereich | | ''Sign64(x: int64): int64'' | pub | Gibt Vorzeichen als -1, 0 oder 1 | | ''Pow64(base: int64, exp: int64): int64'' | pub | Potenz Basis hoch Exponent | | ''Min3(a: int64, b: int64, c: int64): int64'' | pub | Gibt kleinsten von drei Werten zurück | | ''Max3(a: int64, b: int64, c: int64): int64'' | pub | Gibt größten von drei Werten zurück | | ''InRange64(val: int64, min: int64, max: int64): bool'' | pub | Prüft ob Wert im Bereich liegt | | ''Round64(x: int64): int64'' | pub | Rundet Wert auf Ganzzahl | | ''Lerp64(a: int64, b: int64, t_permille: int64): int64'' | pub | Lineare Interpolation in Promille | | ''Map64(val: int64, in_min: int64, in_max: int64, out_min: int64, out_max: int64): int64'' | pub | Bildet Wertebereich auf anderen ab | | ''Hypot64(x: int64, y: int64): int64'' | pub | Berechnet Hypotenuse aus x und y | | ''Sin64(degrees: int64): int64'' | pub | Sinus aus Grad via Lookup-Tabelle | | ''Cos64(degrees: int64): int64'' | pub | Kosinus aus Grad via Lookup-Tabelle | | ''IsEven(x: int64): bool'' | pub | Prüft ob Zahl gerade ist | | ''IsOdd(x: int64): bool'' | pub | Prüft ob Zahl ungerade ist | | ''Log2(x: int64): int64'' | pub | Ganzzahl-Logarithmus zur Basis 2 | | ''IntSqrt(n: int64): int64'' | pub | Integer-Quadratwurzel ohne Float | | ''Atan2Microdegrees(y: int64, x: int64): int64'' | pub | Winkel in Mikro-Grad aus x/y | | ''Cos64Inverse(cos_value: int64): int64'' | pub | Arkuskosinus als Grad-Wert | | ''AtanF64(x: f64): f64'' | pub | Arkustangens (Ergebnis: Bogenmaß, Bereich −π/2..π/2) | | ''Atan2F64(y: f64, x: f64): f64'' | pub | Quadranten-korrekter Arkustangens von (y, x); Bereich −π..π | | ''AsinF64(x: f64): f64'' | pub | Arkussinus via ''atan(x / √(1−x²))''; Bereich −π/2..π/2 | | ''AcosF64(x: f64): f64'' | pub | Arkuskosinus via ''π/2 − asin(x)''; Bereich 0..π | | ''Log2F64(x: f64): f64'' | pub | Logarithmus zur Basis 2 (Argument > 0) | ---- ===== Verwandte Units ===== * ''[[lyx_-_programmiersprache:units:math:constants|std.math.constants]]'' — Präzisionskonstanten (π, e, √2, φ, ln2 …), Winkelkonvertierungen, ''ApproxEqual'' * ''[[lyx_-_programmiersprache:units:math_batch|std.math_batch]]'' — SIMD-beschleunigte Batch-Operationen auf int64-Arrays * ''[[lyx_-_programmiersprache:units:vector|std.vector]]'' — 2D/3D-Vektormathematik (baut auf std.math auf) * ''[[lyx_-_programmiersprache:units:stats|std.stats]]'' — Statistikfunktionen (Mittelwert, Varianz, Standardabweichung)