From ae2b16d9fdd3f9a5d988a90d2aee254b32e769f2 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 20 Sep 2020 22:06:59 -0500 Subject: [PATCH] added math functions --- core/math.onyx | 12 +++++++++++- core/string.onyx | 19 +++++++++++++++++++ onyx | Bin 716616 -> 716640 bytes 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/core/math.onyx b/core/math.onyx index 9c222850..2e7e76a1 100644 --- a/core/math.onyx +++ b/core/math.onyx @@ -46,4 +46,14 @@ cos :: proc (t_: f32) -> f32 { res += 1.0f; return res; -} \ No newline at end of file +} + +max_poly :: proc (a: $T, b: T) -> T { + if a >= b do return a; + return b; +} + +min_poly :: proc (a: $T, b: T) -> T { + if a <= b do return a; + return b; +} diff --git a/core/string.onyx b/core/string.onyx index 0603bf6c..88766ae5 100644 --- a/core/string.onyx +++ b/core/string.onyx @@ -78,6 +78,25 @@ string_contains :: proc (str: string, c: u8) -> bool { return false; } +// string_compare :: proc (str1: string, str2: string) -> i32 { +// if str1.count != str2.count do return str1.count - str2.count; +// +// i := 0; +// while i < str1.count && str1[i] == str2[i] do i += 1; +// +// if i == str1.count do return 0; +// return ~~(str1[i] - str2[i]); +// } + +string_equal :: proc (str1: string, str2: string) -> bool { + if str1.count != str2.count do return false; + while i := 0; i < str1.count { + if str1[i] != str2[i] do return false; + i += 1; + } + return true; +} + string_strip_leading_whitespace :: proc (str: ^string) { while true do switch str.data[0] { case #char " ", #char "\t", #char "\n", #char "\r" { diff --git a/onyx b/onyx index 068a56a1e19098a39e3b37a3974b448e8e6ac743..1b5c8360fdde28a21badea338c7e0b438ef66811 100755 GIT binary patch delta 26662 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