From 9f8a9dba0b55fc8c17b9732c660e87bb042cb78b Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 5 Mar 2021 20:46:25 +0100 Subject: [PATCH] LibM: Add naive implementation of copysign() --- Userland/Libraries/LibM/math.cpp | 11 +++++++++++ Userland/Libraries/LibM/math.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/Userland/Libraries/LibM/math.cpp b/Userland/Libraries/LibM/math.cpp index a17666af81..115e5f5200 100644 --- a/Userland/Libraries/LibM/math.cpp +++ b/Userland/Libraries/LibM/math.cpp @@ -742,4 +742,15 @@ long double nexttowardl(long double, long double) NOEXCEPT { TODO(); } + +double copysign(double x, double y) +{ + if (x < 0 && y < 0) + return x; + if (x >= 0 && y < 0) + return -x; + if (x < 0 && y >= 0) + return -x; + return x; +} } diff --git a/Userland/Libraries/LibM/math.h b/Userland/Libraries/LibM/math.h index a13acd8355..02e7c1f7a4 100644 --- a/Userland/Libraries/LibM/math.h +++ b/Userland/Libraries/LibM/math.h @@ -143,4 +143,6 @@ double nexttoward(double, long double) NOEXCEPT; float nexttowardf(float, long double) NOEXCEPT; long double nexttowardl(long double, long double) NOEXCEPT; +double copysign(double x, double y); + __END_DECLS