Przeglądaj źródła

LibM: Add naive implementation of copysign()

Andreas Kling 4 lat temu
rodzic
commit
9f8a9dba0b
2 zmienionych plików z 13 dodań i 0 usunięć
  1. 11 0
      Userland/Libraries/LibM/math.cpp
  2. 2 0
      Userland/Libraries/LibM/math.h

+ 11 - 0
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;
+}
 }

+ 2 - 0
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