11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Copyright (c) 1993 Martin Birgmeier 31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * All rights reserved. 41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * You may redistribute unmodified or modified versions of this source 61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * code provided that the above copyright notice and this and the 71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * following conditions are retained. 81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * This software is provided ``as is'', and comes with no warranties 101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * of any kind. I shall in no event be liable for anything that happens 111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * to anyone/anything when using this software. 121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <sys/cdefs.h> 151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include "rand48.h" 171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble 191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecterand48(unsigned short xseed[3]) 201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 2170478100d5967f528e6514a42f98a76bb85b7e28Jim Huang __dorand48(xseed); 221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project return ldexp((double) xseed[0], -48) + 231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ldexp((double) xseed[1], -32) + 241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ldexp((double) xseed[2], -16); 251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project} 26