aboutsummaryrefslogtreecommitdiff
path: root/src/base/math/copysign.c
blob: 0e7540b2403f23013894d2d059a321e1578b6478 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
#include <u.h>
#include <base.h>

double
mathยทcopysign(double x, double y)
{
	union {double f; uint64 i;} ux={x}, uy={y};
	ux.i &= -1ULL/2;
	ux.i |= uy.i & 1ULL<<63;

	return ux.f;
}