1*9818090aSmatt /* $NetBSD: nrand48.c,v 1.10 2013/10/22 08:08:51 matt Exp $ */ 24e067afcSperry 3933a7b3aSbrezak /* 4933a7b3aSbrezak * Copyright (c) 1993 Martin Birgmeier 5933a7b3aSbrezak * All rights reserved. 6933a7b3aSbrezak * 7933a7b3aSbrezak * You may redistribute unmodified or modified versions of this source 8933a7b3aSbrezak * code provided that the above copyright notice and this and the 9933a7b3aSbrezak * following conditions are retained. 10933a7b3aSbrezak * 11933a7b3aSbrezak * This software is provided ``as is'', and comes with no warranties 12933a7b3aSbrezak * of any kind. I shall in no event be liable for anything that happens 13933a7b3aSbrezak * to anyone/anything when using this software. 14933a7b3aSbrezak */ 15933a7b3aSbrezak 1688c3eadbSlukem #include <sys/cdefs.h> 1788c3eadbSlukem #if defined(LIBC_SCCS) && !defined(lint) 18*9818090aSmatt __RCSID("$NetBSD: nrand48.c,v 1.10 2013/10/22 08:08:51 matt Exp $"); 1988c3eadbSlukem #endif /* LIBC_SCCS and not lint */ 2088c3eadbSlukem 2143fa6fe3Sjtc #include "namespace.h" 22b48252f3Slukem 23b48252f3Slukem #include <assert.h> 24b48252f3Slukem 25933a7b3aSbrezak #include "rand48.h" 26933a7b3aSbrezak 2743fa6fe3Sjtc #ifdef __weak_alias __weak_alias(nrand48,_nrand48)2860549036Smycroft__weak_alias(nrand48,_nrand48) 2943fa6fe3Sjtc #endif 3043fa6fe3Sjtc 31933a7b3aSbrezak long 32933a7b3aSbrezak nrand48(unsigned short xseed[3]) 33933a7b3aSbrezak { 34b48252f3Slukem _DIAGASSERT(xseed != NULL); 35b48252f3Slukem 36aa13ae60Sjtc __dorand48(xseed); 37*9818090aSmatt return xseed[2] * 32768 + (xseed[1] >> 1); 38933a7b3aSbrezak } 39