Procházet zdrojové kódy

LibM: Add back ampsin() since it was still used by tan()

Andreas Kling před 5 roky
rodič
revize
4565b2d2d9
1 změnil soubory, kde provedl 17 přidání a 0 odebrání
  1. 17 0
      Libraries/LibM/math.cpp

+ 17 - 0
Libraries/LibM/math.cpp

@@ -84,6 +84,23 @@ double tanh(double x)
     return (plusX - minusX) / (plusX + minusX);
 }
 
+double ampsin(double angle)
+{
+    double looped_angle = fmod(M_PI + angle, M_TAU) - M_PI;
+    double looped_angle_squared = looped_angle * looped_angle;
+
+    double quadratic_term;
+    if (looped_angle > 0) {
+        quadratic_term = -looped_angle_squared;
+    } else {
+        quadratic_term = looped_angle_squared;
+    }
+
+    double linear_term = M_PI * looped_angle;
+
+    return quadratic_term + linear_term;
+}
+
 double tan(double angle)
 {
     return ampsin(angle) / ampsin(M_PI_2 + angle);