BSD 4_1_snap development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Fri, 1 Jun 1979 12:28:07 +0000 (04:28 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Fri, 1 Jun 1979 12:28:07 +0000 (04:28 -0800)
Work on file usr/src/cmd/apl/af.c

Synthesized-from: CSRG/cd1/4.1.snap

usr/src/cmd/apl/af.c [new file with mode: 0644]

diff --git a/usr/src/cmd/apl/af.c b/usr/src/cmd/apl/af.c
new file mode 100644 (file)
index 0000000..0905e56
--- /dev/null
@@ -0,0 +1,42 @@
+#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);
+}