projects
/
unix-history
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
BSD 3 development
[unix-history]
/
usr
/
src
/
cmd
/
apl
/
af.c
#include
"apl.h"
ex_deal
()
{
register
struct
item
*
p
;
register
m
,
n
;
double
f
;
data d1
,
d2
;
m
=
topfix
();
n
=
topfix
();
if
(
m
<
0
||
m
>
n
)
error
(
"deal D"
);
p
=
newdat
(
DA
,
1
,
m
);
datum
=
thread
.
iorg
;
for
(;
n
!=
0
;
n
--) {
f
=
m
;
f
/=
n
;
if
(
rand
()/(
32768
.*
32768
.*
2
.) <
f
) {
putdat
(
p
,
datum
);
m
--;
}
datum
+=
one
;
}
m
=
p
->
size
;
while
(
m
>
0
) {
f
=
rand
()/(
32768
.*
32768
.*
2
.);
n
=
m
*
f
;
m
--;
if
(
n
!=
m
) {
p
->
index
=
n
;
d1
=
getdat
(
p
);
p
->
index
=
m
;
d2
=
getdat
(
p
);
p
->
index
=
n
;
putdat
(
p
,
d2
);
p
->
index
=
m
;
putdat
(
p
,
d1
);
}
}
push
(
p
);
}