]> git.lizzy.rs Git - plan9front.git/commitdiff
ape: floating point improvements (thanks spew)
authoraiju <devnull@localhost>
Thu, 24 May 2018 12:40:44 +0000 (13:40 +0100)
committeraiju <devnull@localhost>
Thu, 24 May 2018 12:40:44 +0000 (13:40 +0100)
386/include/ape/math.h
68020/include/ape/math.h
amd64/include/ape/math.h
arm/include/ape/math.h
mips/include/ape/math.h
power/include/ape/math.h
sparc/include/ape/math.h
sparc64/include/ape/math.h
sys/src/ape/lib/ap/math/fmin.c [new file with mode: 0644]
sys/src/ape/lib/ap/math/mkfile

index 41e1024f5a40b17e87b98e50934e7fc40bf55ce7..a9cd9dfa56c7258a06991f055b8f56a228d65268 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index 5fa37480126da222ecc7a2ac12f9301444b84ed4..3d2276bd651bc45822668337864aad9d1ea380be 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index a880a01f84964363690b6ab8b83d40a7004c1c57..3bd3daadefdac78abae8485df26158f972811bc1 100644 (file)
@@ -37,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index 5fa37480126da222ecc7a2ac12f9301444b84ed4..3d2276bd651bc45822668337864aad9d1ea380be 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index 5fa37480126da222ecc7a2ac12f9301444b84ed4..3d2276bd651bc45822668337864aad9d1ea380be 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index 5fa37480126da222ecc7a2ac12f9301444b84ed4..3d2276bd651bc45822668337864aad9d1ea380be 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index 5fa37480126da222ecc7a2ac12f9301444b84ed4..3d2276bd651bc45822668337864aad9d1ea380be 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
index 5fa37480126da222ecc7a2ac12f9301444b84ed4..3d2276bd651bc45822668337864aad9d1ea380be 100644 (file)
@@ -15,6 +15,7 @@ extern double asin(double);
 extern double atan(double);
 extern double atan2(double, double);
 extern double cos(double);
+extern double hypot(double, double);
 extern double sin(double);
 extern double tan(double);
 extern double cosh(double);
@@ -36,6 +37,7 @@ extern double NaN(void);
 extern int isNaN(double);
 extern double Inf(int);
 extern int isInf(double, int);
+extern double fmin(double, double);
 
 #ifdef _RESEARCH_SOURCE
 /* does >> treat left operand as unsigned ? */
diff --git a/sys/src/ape/lib/ap/math/fmin.c b/sys/src/ape/lib/ap/math/fmin.c
new file mode 100644 (file)
index 0000000..5ab8bc2
--- /dev/null
@@ -0,0 +1,11 @@
+#include <math.h>
+
+double
+fmin(double a, double b)
+{
+       if(isNaN(a))
+               return b;
+       if(isNaN(b))
+               return a;
+       return a < b ? a : b;
+}
index 5e2d7483f52f6176f9c41a52fe42a84d0192c6ee..43ba976fd8e77a9652ee3869ecf5f89602724ffb 100644 (file)
@@ -10,6 +10,7 @@ OFILES=\
        fabs.$O\
        floor.$O\
        fmod.$O\
+       fmin.$O\
        gamma.$O\
        hypot.$O\
        j0.$O\