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);
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 ? */
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);
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 ? */
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 ? */
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);
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 ? */
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);
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 ? */
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);
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 ? */
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);
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 ? */
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);
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 ? */
--- /dev/null
+#include <math.h>
+
+double
+fmin(double a, double b)
+{
+ if(isNaN(a))
+ return b;
+ if(isNaN(b))
+ return a;
+ return a < b ? a : b;
+}
fabs.$O\
floor.$O\
fmod.$O\
+ fmin.$O\
gamma.$O\
hypot.$O\
j0.$O\