pike.git
/
src
/
builtin.cmod
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/builtin.cmod:2139:
*! *! This function returns a random number in the range *! @expr{0 .. @[max]-ɛ@}. *! *! @seealso *! @[Random] */ PIKEFUN float random(float f) { if(f<=0.0) RETURN 0.0;
-
INT64 value;
-
#
if
SIZEOF
_
INT_TYPE
>
4
-
value
=
read
_int(
0xffffffffffffffff
);
-
#else
-
value =
read_
int
(0xffffffff)
<<
32
|
read
_
int(0xffffffff)
;
-
#endif
+
unsigned
INT64 value;
+
if
(THIS->buffer
_
bits
<
64)
+
fill
_int
_buffer
();
+
value =
THIS->int
_
buffer;
+
THIS->buffer
_
bits = 0
;
+
RETURN (FLOAT_TYPE)ldexp((double)f * value, -64); } /*! @decl mixed random(array|multiset x) *! Returns a random element from @[x]. */ PIKEFUN mixed random(array a) rawtype tFunc(tArr(tSetvar(0,tMix)),tVar(0)); {