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