Remove duplicated _rand48 implementation. Use stdlib version instead
Originally, there are _rand48 (in libc/bionic/_rand48.c) and __rand48 (in libc/stdlib/_rand48.c) implemented in bionic. Besides the naming, the functionality is identical. This patch removes the duplicated _rand48. Also, drand48 and erand48 are modified accordingly. Change-Id: Ie5761a0a97f45df8538222a77edacb7c3e0125d7
This commit is contained in:
parent
b2061a30da
commit
70478100d5
@ -220,7 +220,6 @@ libc_common_src_files := \
|
|||||||
tzcode/strptime.c \
|
tzcode/strptime.c \
|
||||||
bionic/__errno.c \
|
bionic/__errno.c \
|
||||||
bionic/__set_errno.c \
|
bionic/__set_errno.c \
|
||||||
bionic/_rand48.c \
|
|
||||||
bionic/cpuacct.c \
|
bionic/cpuacct.c \
|
||||||
bionic/arc4random.c \
|
bionic/arc4random.c \
|
||||||
bionic/basename.c \
|
bionic/basename.c \
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* You may redistribute unmodified or modified versions of this source
|
|
||||||
* code provided that the above copyright notice and this and the
|
|
||||||
* following conditions are retained.
|
|
||||||
*
|
|
||||||
* This software is provided ``as is'', and comes with no warranties
|
|
||||||
* of any kind. I shall in no event be liable for anything that happens
|
|
||||||
* to anyone/anything when using this software.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
#include "rand48.h"
|
|
||||||
|
|
||||||
unsigned short _rand48_seed[3] = {
|
|
||||||
RAND48_SEED_0,
|
|
||||||
RAND48_SEED_1,
|
|
||||||
RAND48_SEED_2
|
|
||||||
};
|
|
||||||
unsigned short _rand48_mult[3] = {
|
|
||||||
RAND48_MULT_0,
|
|
||||||
RAND48_MULT_1,
|
|
||||||
RAND48_MULT_2
|
|
||||||
};
|
|
||||||
unsigned short _rand48_add = RAND48_ADD;
|
|
||||||
|
|
||||||
void
|
|
||||||
_dorand48(unsigned short xseed[3])
|
|
||||||
{
|
|
||||||
unsigned long accu;
|
|
||||||
unsigned short temp[2];
|
|
||||||
|
|
||||||
accu = (unsigned long) _rand48_mult[0] * (unsigned long) xseed[0] +
|
|
||||||
(unsigned long) _rand48_add;
|
|
||||||
temp[0] = (unsigned short) accu; /* lower 16 bits */
|
|
||||||
accu >>= sizeof(unsigned short) * 8;
|
|
||||||
accu += (unsigned long) _rand48_mult[0] * (unsigned long) xseed[1] +
|
|
||||||
(unsigned long) _rand48_mult[1] * (unsigned long) xseed[0];
|
|
||||||
temp[1] = (unsigned short) accu; /* middle 16 bits */
|
|
||||||
accu >>= sizeof(unsigned short) * 8;
|
|
||||||
accu += _rand48_mult[0] * xseed[2] + _rand48_mult[1] * xseed[1] + _rand48_mult[2] * xseed[0];
|
|
||||||
xseed[0] = temp[0];
|
|
||||||
xseed[1] = temp[1];
|
|
||||||
xseed[2] = (unsigned short) accu;
|
|
||||||
}
|
|
@ -15,10 +15,10 @@
|
|||||||
|
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
extern unsigned short _rand48_seed[3];
|
extern unsigned short __rand48_seed[3];
|
||||||
|
|
||||||
double
|
double
|
||||||
drand48(void)
|
drand48(void)
|
||||||
{
|
{
|
||||||
return erand48(_rand48_seed);
|
return erand48(__rand48_seed);
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
double
|
double
|
||||||
erand48(unsigned short xseed[3])
|
erand48(unsigned short xseed[3])
|
||||||
{
|
{
|
||||||
_dorand48(xseed);
|
__dorand48(xseed);
|
||||||
return ldexp((double) xseed[0], -48) +
|
return ldexp((double) xseed[0], -48) +
|
||||||
ldexp((double) xseed[1], -32) +
|
ldexp((double) xseed[1], -32) +
|
||||||
ldexp((double) xseed[2], -16);
|
ldexp((double) xseed[2], -16);
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* You may redistribute unmodified or modified versions of this source
|
|
||||||
* code provided that the above copyright notice and this and the
|
|
||||||
* following conditions are retained.
|
|
||||||
*
|
|
||||||
* This software is provided ``as is'', and comes with no warranties
|
|
||||||
* of any kind. I shall in no event be liable for anything that happens
|
|
||||||
* to anyone/anything when using this software.
|
|
||||||
*
|
|
||||||
* $FreeBSD: src/lib/libc/gen/rand48.h,v 1.2 2002/02/01 01:32:19 obrien Exp $
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _RAND48_H_
|
|
||||||
#define _RAND48_H_
|
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
void _dorand48(unsigned short[3]);
|
|
||||||
|
|
||||||
#define RAND48_SEED_0 (0x330e)
|
|
||||||
#define RAND48_SEED_1 (0xabcd)
|
|
||||||
#define RAND48_SEED_2 (0x1234)
|
|
||||||
#define RAND48_MULT_0 (0xe66d)
|
|
||||||
#define RAND48_MULT_1 (0xdeec)
|
|
||||||
#define RAND48_MULT_2 (0x0005)
|
|
||||||
#define RAND48_ADD (0x000b)
|
|
||||||
|
|
||||||
#endif /* _RAND48_H_ */
|
|
Loading…
Reference in New Issue
Block a user