xref: /aosp_15_r20/external/musl/src/math/fminl.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <math.h>
2*c9945492SAndroid Build Coastguard Worker #include <float.h>
3*c9945492SAndroid Build Coastguard Worker 
4*c9945492SAndroid Build Coastguard Worker #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
fminl(long double x,long double y)5*c9945492SAndroid Build Coastguard Worker long double fminl(long double x, long double y)
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	return fmin(x, y);
8*c9945492SAndroid Build Coastguard Worker }
9*c9945492SAndroid Build Coastguard Worker #else
fminl(long double x,long double y)10*c9945492SAndroid Build Coastguard Worker long double fminl(long double x, long double y)
11*c9945492SAndroid Build Coastguard Worker {
12*c9945492SAndroid Build Coastguard Worker 	if (isnan(x))
13*c9945492SAndroid Build Coastguard Worker 		return y;
14*c9945492SAndroid Build Coastguard Worker 	if (isnan(y))
15*c9945492SAndroid Build Coastguard Worker 		return x;
16*c9945492SAndroid Build Coastguard Worker 	/* handle signed zeros, see C99 Annex F.9.9.2 */
17*c9945492SAndroid Build Coastguard Worker 	if (signbit(x) != signbit(y))
18*c9945492SAndroid Build Coastguard Worker 		return signbit(x) ? x : y;
19*c9945492SAndroid Build Coastguard Worker 	return x < y ? x : y;
20*c9945492SAndroid Build Coastguard Worker }
21*c9945492SAndroid Build Coastguard Worker #endif
22