diff -r 3912259ac653 -r 04d1c31f3bae 386/include/ape/math.h --- a/386/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/386/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae 68020/include/ape/math.h --- a/68020/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/68020/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae amd64/include/ape/math.h --- a/amd64/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/amd64/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -37,6 +37,7 @@ 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 -r 3912259ac653 -r 04d1c31f3bae arm/include/ape/math.h --- a/arm/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/arm/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae mips/include/ape/math.h --- a/mips/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/mips/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae power/include/ape/math.h --- a/power/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/power/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae sparc/include/ape/math.h --- a/sparc/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/sparc/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae sparc64/include/ape/math.h --- a/sparc64/include/ape/math.h Wed May 23 19:44:12 2018 +0200 +++ b/sparc64/include/ape/math.h Thu May 24 08:35:01 2018 -0400 @@ -15,6 +15,7 @@ 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 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 -r 3912259ac653 -r 04d1c31f3bae sys/src/ape/lib/ap/math/fmin.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/src/ape/lib/ap/math/fmin.c Thu May 24 08:35:01 2018 -0400 @@ -0,0 +1,11 @@ +#include + +double +fmin(double a, double b) +{ + if(isNaN(a)) + return b; + if(isNaN(b)) + return a; + return a < b ? a : b; +} diff -r 3912259ac653 -r 04d1c31f3bae sys/src/ape/lib/ap/math/mkfile --- a/sys/src/ape/lib/ap/math/mkfile Wed May 23 19:44:12 2018 +0200 +++ b/sys/src/ape/lib/ap/math/mkfile Thu May 24 08:35:01 2018 -0400 @@ -10,6 +10,7 @@ fabs.$O\ floor.$O\ fmod.$O\ + fmin.$O\ gamma.$O\ hypot.$O\ j0.$O\