;;; this code will return a list 

(load "/mit/cdsdev/beta/config/probability.scm")
(define qc-birth .15)
(define qc-numtrials 0)
(define qc-curlist '())
(define qc-qlength 0)
(define qc-death .20)
(define listlength 31)
(define trial 0)
(define emptylist (zeros 30))
(define array (list->vector emptylist))
(define foo '())
(define (process l)
  (cond ((null? l) '())
	(else (cons (/ (car l) qc-numtrials) (process (cdr l))))))

(define floatmax (- (* 65536 32768) 1))
(define (qc-run-trials n)
  (cond ((= n 0) '())
	(else (set! trial (/ (random) floatmax))
	      (set! qc-numtrials (+ qc-numtrials 1))
	      (cond ((and (< trial qc-birth) (= qc-qlength 1000))
		     (set! qc-balk (+ qc-balk 1)))
		    ((< trial qc-birth)
;		     (1+ qc-totbirth)
		     (set! qc-qlength (+ 1 qc-qlength)))
		    ((and (> trial (- 1 qc-death)) (> qc-qlength 0))
;		     (1+ qc-totdeath)
		     (set! qc-qlength (- qc-qlength 1)))
		    (else '()))
	      (cond ((<= qc-qlength listlength) 
		     (vector-set! array qc-qlength 
				  (+ 1 (vector-ref array qc-qlength)))))
	      (qc-run-trials (- n 1)))))
							     
  
  
