shithub: npe

ref: 041d3c9d8de4ed92c5cafc3c12c5170113e55677
dir: /libnpe/fmax.c/

View raw version
#include <math.h>
/* taken from musl */

#define _sign(d) (*((u64int*)d) & (1ULL<<63))

double
fmax(double x, double y)
{
	if(isNaN(x))
		return y;
	if(isNaN(y))
		return x;
	if(_sign(&x) != _sign(&y))
		return _sign(&x) ? y : x;
	return x < y ? y : x;
}