1*0fa1c6e6Sguenther /* $OpenBSD: erand48.c,v 1.5 2015/09/14 13:30:17 guenther Exp $ */ 2df930be7Sderaadt /* 3df930be7Sderaadt * Copyright (c) 1993 Martin Birgmeier 4df930be7Sderaadt * All rights reserved. 5df930be7Sderaadt * 6df930be7Sderaadt * You may redistribute unmodified or modified versions of this source 7df930be7Sderaadt * code provided that the above copyright notice and this and the 8df930be7Sderaadt * following conditions are retained. 9df930be7Sderaadt * 10df930be7Sderaadt * This software is provided ``as is'', and comes with no warranties 11df930be7Sderaadt * of any kind. I shall in no event be liable for anything that happens 12df930be7Sderaadt * to anyone/anything when using this software. 13df930be7Sderaadt */ 14df930be7Sderaadt 15*0fa1c6e6Sguenther #include <math.h> 16df930be7Sderaadt #include "rand48.h" 17df930be7Sderaadt 18df930be7Sderaadt double erand48(unsigned short xseed[3])19df930be7Sderaadterand48(unsigned short xseed[3]) 20df930be7Sderaadt { 21df930be7Sderaadt __dorand48(xseed); 22df930be7Sderaadt return ldexp((double) xseed[0], -48) + 23df930be7Sderaadt ldexp((double) xseed[1], -32) + 24df930be7Sderaadt ldexp((double) xseed[2], -16); 25df930be7Sderaadt } 260d943ef0Sguenther DEF_WEAK(erand48); 27