;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This file is part of SAMPLE system. ; Copyright, 2008, by Tony Barrett (barrett@aig.jpl.nasa.gov) and ; Tim Menzies (tim@menzies.us) ; ; SAMPLE is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; ; SAMPLE is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; You should have received a copy of the GNU General Public License ; a long with SAMPLE. If not, see . ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #+SBCL (DECLAIM (SB-EXT:MUFFLE-CONDITIONS CL:STYLE-WARNING)) (defun ipo (factors) "From a list of ranges, generate test cases for each range using Lei & Tai PairTest function for generating pairwise tests in-parameter-order. By Andy Barrett" (let (tests) ;; for the first two parameters p1 and p2 (dotimes (i (car factors)) (dotimes (j (cadr factors)) (let ((test (make-list (length factors) :initial-element 0))) (setf (car test) (+ 1 i)) (setf (cadr test) (+ 1 j)) (push test tests)))) (loop for i from 2 to (- (length factors) 1) do (let ((api (generate-pairs i factors)) (s (min (nth i factors) (length tests))) (j 0)) ;; horizontal growth using IPO_H_IV (dolist (tst tests) (if (< j s) (setf (nth i tst) (incf j)) (let ((api-p nil) (v-p nil)) (dotimes (v (nth i factors)) (setf (nth i tst) (+ 1 v)) (let ((api-pp (remove-if #'(lambda (pat) (< 0 (match-pat pat tst))) api))) (when (> (length api-pp) (length api-p)) (setf api-p api-pp) (setf v-p v)))) (setf (nth i tst) (if v-p (+ 1 v-p) 0)))) (setf api (remove-if #'(lambda (pat) (= 0 (match-pat pat tst))) api))) ;; vertical growth using IPO_V (dolist (p api) (let ((tst (find-if #'(lambda (v) (> 20 (match-pat p v))) tests))) (if (null tst) (setf tests (append tests (list p))) (do ((a tst (cdr a)) (b p (cdr b))) ((null a) nil) (when (not (zerop (car b))) (setf (car a) (car b))))) )))) (check-tests factors tests) tests)) (defun generate-pairs (i factors &aux (ret nil)) "Generate all tuples that use the Ith factor" (dotimes (j i ret) (dotimes (v1 (nth j factors)) (dotimes (v2 (nth i factors)) (let ((pair (make-list (length factors) :initial-element 0))) (setf (nth j pair) (+ 1 v1)) (setf (nth i pair) (+ 1 v2)) (push pair ret)))))) (defun match-pat (pat vec &aux (cost 0)) "Match a pattern (a tuple) against a test vector to see if the vector can be modified to include the tuple." (do ((p pat (cdr p)) (v vec (cdr v))) ((or (null p) (null v) (<= 5000 cost)) cost) (when (not (or (zerop (car p)) (= (car p) (car v)))) (setf cost (if (zerop (car v)) (+ 1 cost) 1000000))))) (defun check-tests (factors tests) "Check to make sure that TESTS is a solution." (dotimes (i (length factors) t) (dolist (pair (generate-pairs i factors)) (when (null (find-if #'(lambda (tst) (zerop (match-pat pair tst))) tests)) (format t "missing pair ~a~%" pair) (return-from check-tests nil))))) ;;;; begin tim menzies' addits to andy's code ;;; global stuff (defparameter *the-relation* nil) (defun new (&optional (r (make-rel))) "Create a fresh 'the-relation'." (setf *the-relation* r)) ;;; structs (defstruct rel "A relation stores rows of data and meta-knowledge about each column and some derived data." (name "relation") buffer dims (diagonal 0) (bins 10) columns (width 0) ; width = number of columns rows (height 0) ; height = number of rows ) (defstruct feature "Features are either continuous or discrete" name values goalp) (defstruct (continuous (:include feature)) "Continuous features are characterized by the min and max value" (max most-negative-double-float) (min most-positive-double-float) (n 0)) (defstruct (discrete (:include feature)) "Discrete features are characterized by their range of symbols." range) ;;; macro stuff ;; general macos (defmacro o (x) "print a named value; e.g. (let ((a 22)) (o a)) ==> [a]=[22]" `(progn (format t "[~a]=[~a] " (quote ,x) ,x) ,x)) (defmacro oo (&rest l) "print a list of names values; e.g. (let ((aa 22) (b 33)) (oo a b)) ==> [a]=22;[b]=[33]" `(progn ,@(mapcar #'(lambda(x) `(o ,x)) l) (terpri))) (defmacro inc> (new old) `(if (> ,new ,old) (setf ,old ,new))) (defmacro inc< (new old) `(if (< ,new ,old) (setf ,old ,new))) (defmacro doitems ((one n list &optional out) &body body ) `(let ((,n 0)) (dolist (,one ,list ,out) (incf ,n) ,@body))) (defmacro doitems1 ((one n list &optional out) &body body ) `(let ((,n 1)) (dolist (,one ,list ,out) (incf ,n) ,@body))) ;;; lib stuff ;; misc (defun ?elt (choices) (elt choices (floor (random (length choices))))) (defun ?quantity (min max) (if (> min max) (?quantity max min) (+ min (random (+ 1 (- max min)))))) (defun sum (l) (let ((s 0)) (dolist (x l s) (incf s x)))) (defun countlist (l) (let (out) (doitems (one n l (reverse out)) (push (cons (1- n) one) out)))) (defstruct counts class sample frequency) (defun h2l (h) (let (all) (labels ((keep (k v) (push (make-counts :class (second k) :sample (fourth k) :frequency v) all))) (maphash #'keep h) all))) ;;;; nearest neighbor stuff (defun distance1 (x y col max) "in this system, all ranges are numbered 1..N and '0' denotes a wild card" (cond ((zerop x) (?QUANTITY 0 10)) ((zerop y) (?QUANTITY 0 10)) ((numericp col) (- x y)) ((eql x y) 0) (t max))) (defun distance (l1 l2 max &optional (cols (rel-columns *the-relation*))) "Returns a number 0..1" (let ((sum 0)) (mapc #'(lambda (one two col) (let* ((delta (distance1 one two col max)) (pow (expt delta 2))) (incf sum pow))) l1 l2 cols) (/ (sqrt sum) max))) ;;; relation definiton and access stuff (defmacro defrelation (name &body body) "Return a discretiezed relation, with all the ranges converted to integer indexes 1...N" `(defun ,name (&optional (*the-relation* *the-relation*)) (relation ,name) ,@body (nbins *the-relation*) (ranges *the-relation*))) (defmacro relation (x) "define a new relation. make it 'the' relation." `(progn (new) (setf (rel-name *the-relation*) ',x))) (defun defattr (new) "Add a new attribute to the current relation'." (or *the-relation* (new)) (incf (rel-width *the-relation*)) (setf (rel-columns *the-relation*) (append (rel-columns *the-relation*) (list new)))) (defmacro attribute (name &rest args) "Redine a new attribute. Discrete attributes have more than one symbol after the attribute name." `(if (rest ',args) (defsomes ',name nil ',args) (defnums ',name nil))) (defmacro attribute! (name &rest args) "Define a discrete goal attribute" `(defsomes ',name t ',args)) (defun defnums (x goalp) "Define a numeric attribute" (defattr (make-continuous :name x :goalp goalp))) (defun numericp (column) "Recognize a discrete attribute." (eq (type-of column) 'continuous)) (defun defsomes (x goalp l) "Define a discrete attribute." (defattr (make-discrete :name x :range l :goalp goalp))) (defmacro data (&rest args) "Define a new piece of data." `(data1 ',args)) (defun data1 (row) "Add a row to the buffer of the current realtion, updating some counters along the way." (let ((width (rel-width *the-relation*))) (labels ((min-max (datum column) (when (numericp column) (inc> datum (continuous-max column)) (inc< datum (continuous-min column))))) (cond ((eql width (length row)) (mapcar #'min-max row (rel-columns *the-relation*)) (push row (rel-buffer *the-relation*)) (incf (rel-height *the-relation*))) (t (warn "wrong width ~a~%" row)))))) (defun nbins (&optional (*the-relation* *the-relation*)) "Convert all numerics to a range 1..10 for (min to max)/bins." (let ((bins (rel-bins *the-relation*))) (labels ((fudge (x col) "need to move 0..N-1 to N. Can't blow number of bins" (min bins (1+ (binned1 x col)))) (binned1 (x col) (floor (/ (- x (continuous-min col)) (/ (- (continuous-max col) (continuous-min col)) bins)))) (binned (x col) (if (numericp col) (fudge x col) (1+ (position x (discrete-range col)))))) (dolist (one (rel-buffer *the-relation*) *the-relation*) (let* ((old (rel-columns *the-relation*)) (new (mapcar #'binned one old))) (push new (rel-rows *the-relation*))))))) (defun ranges (&optional (*the-relation* *the-relation*)) (let (dims (bins (rel-bins *the-relation*)) (cols (rel-columns *the-relation*))) (labels ((counts (col) (if (numericp col) bins (length (discrete-range col))))) (let ((dims (mapcar #'counts (butlast cols)))) (setf (rel-dims *the-relation*) dims (rel-diagonal *the-relation*) (sqrt (sum dims)))))) *the-relation*) (defun used-samples (r) (let* ((rows (rel-rows r)) (samples (ipo (rel-dims r))) (counts (make-hash-table :test #'equalp))) (doitems (row i rows) (let* ((d most-positive-double-float) (independent (butlast row)) (dependent (first (last row))) closest) (doitems (sample j samples) (let* ((d1 (distance sample independent (rel-diagonal r) (rel-columns r)))) (when (< d1 d) (setf closest j) (setf d d1)))) (incf (gethash `(class ,dependent to ,closest) counts 0)))) (h2l counts))) (defun spaces (used r) (new r) (let ((samples (ipo (rel-dims r)))) (dolist (one used) (let ((here (nth (counts-sample one) samples))) (when here (dolist (there samples) (print (list here there (distance here there (rel-diagonal r)))))))))) ;; (defun best (usefuls) ;; (let ((f (make-hash-table)) ;; (n (make-hash-table)) ;; (c (make-hash-table)) ;; (all 0)) ;; (dolist (useful usefuls) ;; (let (( ;; (print useful)) (defmacro inca (key l &optional (inc 1)) `(if (cdr (assoc ,key ,l)) (setf (cdr (assoc ,key ,l)) (+ ,inc (cdr (assoc ,key ,l)))) (push (cons ,key ,inc) ,l))) (defun hkeys (h) (let (out) (maphash #'(lambda (k v) (push k out)) h) out)) (defun hshow (h &optional (header "")) (terpri) (maphash #'(lambda (k v) (format t "~a~a = ~a~%" header k v)) h) t) (defun s3 (x) (format nil "~3,1f" (* 100 x))) (defun best (usefuls all dull) ; collect all the classes ; collect all the samples ; create ( sample . class ) . frequency) (let* ((classes (make-hash-table :test #'equalp)) (samples (make-hash-table :test #'equalp)) (frequencies (make-hash-table :test #'equalp))) (dolist (useful usefuls) (let* ((sample (counts-sample useful)) (class (counts-class useful)) (freq (counts-frequency useful)) (key `(,sample ,class))) (setf (gethash sample samples 1) 1) (incf (gethash class classes 0)) (setf (gethash key frequencies 0) freq))) (dolist (sample (hkeys samples)) (let* ((ps (mapcar #'(lambda (class) (gethash `(,sample ,class) frequencies 0)) (hkeys classes))) (a (nth 0 ps)) (b (nth 1 ps)) (a1 (/ a all)) (b1 (/ b all)) (a2 (expt a1 2)) (b2 (expt b1 2)) (x (/ a2 (+ 1.0 a1 b1))) (y (/ b2 (+ 1.0 a1 b1)))) (if (> (/ (+ a b) all) dull) ;(format t "~a ~T a ~T ~a ~T b ~a ~T all ~a ~T x ~T ~a y ~T ~a ~%" sample a b all (s3 x) (s3 y)) (format t "point ~6D a ~6D b ~6D all ~6D x^2/(x+y) ~6A y^2/(x+y) ~6A ~%" sample a b all (s3 x) (s3 y)) ))))) ;; sample 157 a 139 b 314 all 768 x 2.1 y 10.5 ;; sample 154 a 99 b 95 all 768 x 1.3 y 1.2 ;; sample 74 a 7 b 61 all 768 x 0.0 y 0.6 ;; sample 153 a 20 b 25 all 768 x 0.1 y 0.1 ;; sample 79 a 1 b 0 all 768 x 0.0 y 0.0 ;; sample 155 a 0 b 3 all 768 x 0.0 y 0.0 ;; sample 149 a 2 b 2 all 768 x 0.0 y 0.0 (defun demo1 (&optional (dull 0.01)) (let* ((r (diabetes)) (all (rel-height r))) (best (used-samples r) all dull))) (defun demo2 () (setf *the-relation* (diabetes)) (let* ((used (used-samples *the-relation*))) (spaces used *the-relation*))) ; (spaces used r))) (defrelation pima-diabetes (attribute preg real) (attribute plas real) (attribute pres real) (attribute skin real) (attribute insu real) (attribute mass real) (attribute pedi real) (attribute age real) (attribute! class tested_negative tested_positive) (data 1 89 66 23 94 28.1 0.167 21 tested_negative) (data 1 85 66 29 0 26.6 0.351 31 tested_negative) (data 5 116 74 0 0 25.6 0.201 30 tested_negative) (data 6 148 72 35 0 33.6 0.627 50 tested_positive) (data 8 183 64 0 0 23.3 0.672 32 tested_positive) (data 0 137 40 35 168 43.1 2.288 33 tested_positive) (data 3 78 50 32 88 31 0.248 26 tested_positive) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 1. Title: Pima Indians Diabetes Database) ; ) ; 2. Sources:) ; (a) Original owners: National Institute of Diabetes and Digestive and) ; Kidney Diseases) ; (b) Donor of database: Vincent Sigillito (vgs@aplcen.apl.jhu.edu)) ; Research Center, RMI Group Leader) ; Applied Physics Laboratory) ; The Johns Hopkins University) ; Johns Hopkins Road) ; Laurel, MD 20707) ; (301) 953-6231) ; (c) Date received: 9 May 1990) ; ) ; 3. Past Usage:) ; 1. Smith,~J.~W., Everhart,~J.~E., Dickson,~W.~C., Knowler,~W.~C., \&) ; Johannes,~R.~S. (1988). Using the ADAP learning algorithm to forecast) ; the onset of diabetes mellitus. In {\it Proceedings of the Symposium) ; on Computer Applications and Medical Care} (pp. 261--265). IEEE) ; Computer Society Press.) ; ) ; The diagnostic, binary-valued variable investigated is whether the) ; patient shows signs of diabetes according to World Health Organization) ; criteria (i.e., if the 2 hour post-load plasma glucose was at least ) ; 200 mg/dl at any survey examination or if found during routine medical) ; care). The population lives near Phoenix, Arizona, USA.) ; ) ; Results: Their ADAP algorithm makes a real-valued prediction between) ; 0 and 1. This was transformed into a binary decision using a cutoff of ) ; 0.448. Using 576 training instances, the sensitivity and specificity) ; of their algorithm was 76% on the remaining 192 instances.) ; ) ; 4. Relevant Information:) ; Several constraints were placed on the selection of these instances from) ; a larger database. In particular, all patients here are females at) ; least 21 years old of Pima Indian heritage. ADAP is an adaptive learning) ; routine that generates and executes digital analogs of perceptron-like) ; devices. It is a unique algorithm; see the paper for details.) ; ) ; 5. Number of Instances: 768) ; ) ; 6. Number of Attributes: 8 plus class ) ; ) ; 7. For Each Attribute: (all numeric-valued)) ; 1. Number of times pregnant) ; 2. Plasma glucose concentration a 2 hours in an oral glucose tolerance test) ; 3. Diastolic blood pressure (mm Hg)) ; 4. Triceps skin fold thickness (mm)) ; 5. 2-Hour serum insulin (mu U/ml)) ; 6. Body mass index (weight in kg/(height in m)^2)) ; 7. Diabetes pedigree function) ; 8. Age (years)) ; 9. Class variable (0 or 1)) ; ) ; 8. Missing Attribute Values: None) ; ) ; 9. Class Distribution: (class value 1 is interpreted as "tested positive for) ; diabetes")) ; ) ; Class Value Number of instances) ; 0 500) ; 1 268) ; ) ; 10. Brief statistical analysis:) ; ) ; Attribute number: Mean: Standard Deviation:) ; 1. 3.8 3.4) ; 2. 120.9 32.0) ; 3. 69.1 19.4) ; 4. 20.5 16.0) ; 5. 79.8 115.2) ; 6. 32.0 7.9) ; 7. 0.5 0.3) ; 8. 33.2 11.8) ; ) ; ) ;) ;) ;) ;) ; Relabeled values in attribute 'class') ; From: 0 To: tested_negative ) ; From: 1 To: tested_positive ) ;) (defrelation diabetes (attribute preg real) (attribute las real) (attribute pres real) (attribute skin real) (attribute insu real) (attribute mass real) (attribute pedi real) (attribute age real) (attribute class tested_negative tested_positive) (data 6 148 72 35 0 33.6 0.627 50 tested_positive) (data 1 85 66 29 0 26.6 0.351 31 tested_negative) (data 8 183 64 0 0 23.3 0.672 32 tested_positive) (data 1 89 66 23 94 28.1 0.167 21 tested_negative) (data 0 137 40 35 168 43.1 2.288 33 tested_positive) (data 5 116 74 0 0 25.6 0.201 30 tested_negative) (data 3 78 50 32 88 31 0.248 26 tested_positive) (data 10 115 0 0 0 35.3 0.134 29 tested_negative) (data 2 197 70 45 543 30.5 0.158 53 tested_positive) (data 8 125 96 0 0 0 0.232 54 tested_positive) (data 4 110 92 0 0 37.6 0.191 30 tested_negative) (data 10 168 74 0 0 38 0.537 34 tested_positive) (data 10 139 80 0 0 27.1 1.441 57 tested_negative) (data 1 189 60 23 846 30.1 0.398 59 tested_positive) (data 5 166 72 19 175 25.8 0.587 51 tested_positive) (data 7 100 0 0 0 30 0.484 32 tested_positive) (data 0 118 84 47 230 45.8 0.551 31 tested_positive) (data 7 107 74 0 0 29.6 0.254 31 tested_positive) (data 1 103 30 38 83 43.3 0.183 33 tested_negative) (data 1 115 70 30 96 34.6 0.529 32 tested_positive) (data 3 126 88 41 235 39.3 0.704 27 tested_negative) (data 8 99 84 0 0 35.4 0.388 50 tested_negative) (data 7 196 90 0 0 39.8 0.451 41 tested_positive) (data 9 119 80 35 0 29 0.263 29 tested_positive) (data 11 143 94 33 146 36.6 0.254 51 tested_positive) (data 10 125 70 26 115 31.1 0.205 41 tested_positive) (data 7 147 76 0 0 39.4 0.257 43 tested_positive) (data 1 97 66 15 140 23.2 0.487 22 tested_negative) (data 13 145 82 19 110 22.2 0.245 57 tested_negative) (data 5 117 92 0 0 34.1 0.337 38 tested_negative) (data 5 109 75 26 0 36 0.546 60 tested_negative) (data 3 158 76 36 245 31.6 0.851 28 tested_positive) (data 3 88 58 11 54 24.8 0.267 22 tested_negative) (data 6 92 92 0 0 19.9 0.188 28 tested_negative) (data 10 122 78 31 0 27.6 0.512 45 tested_negative) (data 4 103 60 33 192 24 0.966 33 tested_negative) (data 11 138 76 0 0 33.2 0.42 35 tested_negative) (data 9 102 76 37 0 32.9 0.665 46 tested_positive) (data 2 90 68 42 0 38.2 0.503 27 tested_positive) (data 4 111 72 47 207 37.1 1.39 56 tested_positive) (data 3 180 64 25 70 34 0.271 26 tested_negative) (data 7 133 84 0 0 40.2 0.696 37 tested_negative) (data 7 106 92 18 0 22.7 0.235 48 tested_negative) (data 9 171 110 24 240 45.4 0.721 54 tested_positive) (data 7 159 64 0 0 27.4 0.294 40 tested_negative) (data 0 180 66 39 0 42 1.893 25 tested_positive) (data 1 146 56 0 0 29.7 0.564 29 tested_negative) (data 2 71 70 27 0 28 0.586 22 tested_negative) (data 7 103 66 32 0 39.1 0.344 31 tested_positive) (data 7 105 0 0 0 0 0.305 24 tested_negative) (data 1 103 80 11 82 19.4 0.491 22 tested_negative) (data 1 101 50 15 36 24.2 0.526 26 tested_negative) (data 5 88 66 21 23 24.4 0.342 30 tested_negative) (data 8 176 90 34 300 33.7 0.467 58 tested_positive) (data 7 150 66 42 342 34.7 0.718 42 tested_negative) (data 1 73 50 10 0 23 0.248 21 tested_negative) (data 7 187 68 39 304 37.7 0.254 41 tested_positive) (data 0 100 88 60 110 46.8 0.962 31 tested_negative) (data 0 146 82 0 0 40.5 1.781 44 tested_negative) (data 0 105 64 41 142 41.5 0.173 22 tested_negative) (data 2 84 0 0 0 0 0.304 21 tested_negative) (data 8 133 72 0 0 32.9 0.27 39 tested_positive) (data 5 44 62 0 0 25 0.587 36 tested_negative) (data 2 141 58 34 128 25.4 0.699 24 tested_negative) (data 7 114 66 0 0 32.8 0.258 42 tested_positive) (data 5 99 74 27 0 29 0.203 32 tested_negative) (data 0 109 88 30 0 32.5 0.855 38 tested_positive) (data 2 109 92 0 0 42.7 0.845 54 tested_negative) (data 1 95 66 13 38 19.6 0.334 25 tested_negative) (data 4 146 85 27 100 28.9 0.189 27 tested_negative) (data 2 100 66 20 90 32.9 0.867 28 tested_positive) (data 5 139 64 35 140 28.6 0.411 26 tested_negative) (data 13 126 90 0 0 43.4 0.583 42 tested_positive) (data 4 129 86 20 270 35.1 0.231 23 tested_negative) (data 1 79 75 30 0 32 0.396 22 tested_negative) (data 1 0 48 20 0 24.7 0.14 22 tested_negative) (data 7 62 78 0 0 32.6 0.391 41 tested_negative) (data 5 95 72 33 0 37.7 0.37 27 tested_negative) (data 0 131 0 0 0 43.2 0.27 26 tested_positive) (data 2 112 66 22 0 25 0.307 24 tested_negative) (data 3 113 44 13 0 22.4 0.14 22 tested_negative) (data 2 74 0 0 0 0 0.102 22 tested_negative) (data 7 83 78 26 71 29.3 0.767 36 tested_negative) (data 0 101 65 28 0 24.6 0.237 22 tested_negative) (data 5 137 108 0 0 48.8 0.227 37 tested_positive) (data 2 110 74 29 125 32.4 0.698 27 tested_negative) (data 13 106 72 54 0 36.6 0.178 45 tested_negative) (data 2 100 68 25 71 38.5 0.324 26 tested_negative) (data 15 136 70 32 110 37.1 0.153 43 tested_positive) (data 1 107 68 19 0 26.5 0.165 24 tested_negative) (data 1 80 55 0 0 19.1 0.258 21 tested_negative) (data 4 123 80 15 176 32 0.443 34 tested_negative) (data 7 81 78 40 48 46.7 0.261 42 tested_negative) (data 4 134 72 0 0 23.8 0.277 60 tested_positive) (data 2 142 82 18 64 24.7 0.761 21 tested_negative) (data 6 144 72 27 228 33.9 0.255 40 tested_negative) (data 2 92 62 28 0 31.6 0.13 24 tested_negative) (data 1 71 48 18 76 20.4 0.323 22 tested_negative) (data 6 93 50 30 64 28.7 0.356 23 tested_negative) (data 1 122 90 51 220 49.7 0.325 31 tested_positive) (data 1 163 72 0 0 39 1.222 33 tested_positive) (data 1 151 60 0 0 26.1 0.179 22 tested_negative) (data 0 125 96 0 0 22.5 0.262 21 tested_negative) (data 1 81 72 18 40 26.6 0.283 24 tested_negative) (data 2 85 65 0 0 39.6 0.93 27 tested_negative) (data 1 126 56 29 152 28.7 0.801 21 tested_negative) (data 1 96 122 0 0 22.4 0.207 27 tested_negative) (data 4 144 58 28 140 29.5 0.287 37 tested_negative) (data 3 83 58 31 18 34.3 0.336 25 tested_negative) (data 0 95 85 25 36 37.4 0.247 24 tested_positive) (data 3 171 72 33 135 33.3 0.199 24 tested_positive) (data 8 155 62 26 495 34 0.543 46 tested_positive) (data 1 89 76 34 37 31.2 0.192 23 tested_negative) (data 4 76 62 0 0 34 0.391 25 tested_negative) (data 7 160 54 32 175 30.5 0.588 39 tested_positive) (data 4 146 92 0 0 31.2 0.539 61 tested_positive) (data 5 124 74 0 0 34 0.22 38 tested_positive) (data 5 78 48 0 0 33.7 0.654 25 tested_negative) (data 4 97 60 23 0 28.2 0.443 22 tested_negative) (data 4 99 76 15 51 23.2 0.223 21 tested_negative) (data 0 162 76 56 100 53.2 0.759 25 tested_positive) (data 6 111 64 39 0 34.2 0.26 24 tested_negative) (data 2 107 74 30 100 33.6 0.404 23 tested_negative) (data 5 132 80 0 0 26.8 0.186 69 tested_negative) (data 0 113 76 0 0 33.3 0.278 23 tested_positive) (data 1 88 30 42 99 55 0.496 26 tested_positive) (data 3 120 70 30 135 42.9 0.452 30 tested_negative) (data 1 118 58 36 94 33.3 0.261 23 tested_negative) (data 1 117 88 24 145 34.5 0.403 40 tested_positive) (data 0 105 84 0 0 27.9 0.741 62 tested_positive) (data 4 173 70 14 168 29.7 0.361 33 tested_positive) (data 9 122 56 0 0 33.3 1.114 33 tested_positive) (data 3 170 64 37 225 34.5 0.356 30 tested_positive) (data 8 84 74 31 0 38.3 0.457 39 tested_negative) (data 2 96 68 13 49 21.1 0.647 26 tested_negative) (data 2 125 60 20 140 33.8 0.088 31 tested_negative) (data 0 100 70 26 50 30.8 0.597 21 tested_negative) (data 0 93 60 25 92 28.7 0.532 22 tested_negative) (data 0 129 80 0 0 31.2 0.703 29 tested_negative) (data 5 105 72 29 325 36.9 0.159 28 tested_negative) (data 3 128 78 0 0 21.1 0.268 55 tested_negative) (data 5 106 82 30 0 39.5 0.286 38 tested_negative) (data 2 108 52 26 63 32.5 0.318 22 tested_negative) (data 10 108 66 0 0 32.4 0.272 42 tested_positive) (data 4 154 62 31 284 32.8 0.237 23 tested_negative) (data 0 102 75 23 0 0 0.572 21 tested_negative) (data 9 57 80 37 0 32.8 0.096 41 tested_negative) (data 2 106 64 35 119 30.5 1.4 34 tested_negative) (data 5 147 78 0 0 33.7 0.218 65 tested_negative) (data 2 90 70 17 0 27.3 0.085 22 tested_negative) (data 1 136 74 50 204 37.4 0.399 24 tested_negative) (data 4 114 65 0 0 21.9 0.432 37 tested_negative) (data 9 156 86 28 155 34.3 1.189 42 tested_positive) (data 1 153 82 42 485 40.6 0.687 23 tested_negative) (data 8 188 78 0 0 47.9 0.137 43 tested_positive) (data 7 152 88 44 0 50 0.337 36 tested_positive) (data 2 99 52 15 94 24.6 0.637 21 tested_negative) (data 1 109 56 21 135 25.2 0.833 23 tested_negative) (data 2 88 74 19 53 29 0.229 22 tested_negative) (data 17 163 72 41 114 40.9 0.817 47 tested_positive) (data 4 151 90 38 0 29.7 0.294 36 tested_negative) (data 7 102 74 40 105 37.2 0.204 45 tested_negative) (data 0 114 80 34 285 44.2 0.167 27 tested_negative) (data 2 100 64 23 0 29.7 0.368 21 tested_negative) (data 0 131 88 0 0 31.6 0.743 32 tested_positive) (data 6 104 74 18 156 29.9 0.722 41 tested_positive) (data 3 148 66 25 0 32.5 0.256 22 tested_negative) (data 4 120 68 0 0 29.6 0.709 34 tested_negative) (data 4 110 66 0 0 31.9 0.471 29 tested_negative) (data 3 111 90 12 78 28.4 0.495 29 tested_negative) (data 6 102 82 0 0 30.8 0.18 36 tested_positive) (data 6 134 70 23 130 35.4 0.542 29 tested_positive) (data 2 87 0 23 0 28.9 0.773 25 tested_negative) (data 1 79 60 42 48 43.5 0.678 23 tested_negative) (data 2 75 64 24 55 29.7 0.37 33 tested_negative) (data 8 179 72 42 130 32.7 0.719 36 tested_positive) (data 6 85 78 0 0 31.2 0.382 42 tested_negative) (data 0 129 110 46 130 67.1 0.319 26 tested_positive) (data 5 143 78 0 0 45 0.19 47 tested_negative) (data 5 130 82 0 0 39.1 0.956 37 tested_positive) (data 6 87 80 0 0 23.2 0.084 32 tested_negative) (data 0 119 64 18 92 34.9 0.725 23 tested_negative) (data 1 0 74 20 23 27.7 0.299 21 tested_negative) (data 5 73 60 0 0 26.8 0.268 27 tested_negative) (data 4 141 74 0 0 27.6 0.244 40 tested_negative) (data 7 194 68 28 0 35.9 0.745 41 tested_positive) (data 8 181 68 36 495 30.1 0.615 60 tested_positive) (data 1 128 98 41 58 32 1.321 33 tested_positive) (data 8 109 76 39 114 27.9 0.64 31 tested_positive) (data 5 139 80 35 160 31.6 0.361 25 tested_positive) (data 3 111 62 0 0 22.6 0.142 21 tested_negative) (data 9 123 70 44 94 33.1 0.374 40 tested_negative) (data 7 159 66 0 0 30.4 0.383 36 tested_positive) (data 11 135 0 0 0 52.3 0.578 40 tested_positive) (data 8 85 55 20 0 24.4 0.136 42 tested_negative) (data 5 158 84 41 210 39.4 0.395 29 tested_positive) (data 1 105 58 0 0 24.3 0.187 21 tested_negative) (data 3 107 62 13 48 22.9 0.678 23 tested_positive) (data 4 109 64 44 99 34.8 0.905 26 tested_positive) (data 4 148 60 27 318 30.9 0.15 29 tested_positive) (data 0 113 80 16 0 31 0.874 21 tested_negative) (data 1 138 82 0 0 40.1 0.236 28 tested_negative) (data 0 108 68 20 0 27.3 0.787 32 tested_negative) (data 2 99 70 16 44 20.4 0.235 27 tested_negative) (data 6 103 72 32 190 37.7 0.324 55 tested_negative) (data 5 111 72 28 0 23.9 0.407 27 tested_negative) (data 8 196 76 29 280 37.5 0.605 57 tested_positive) (data 5 162 104 0 0 37.7 0.151 52 tested_positive) (data 1 96 64 27 87 33.2 0.289 21 tested_negative) (data 7 184 84 33 0 35.5 0.355 41 tested_positive) (data 2 81 60 22 0 27.7 0.29 25 tested_negative) (data 0 147 85 54 0 42.8 0.375 24 tested_negative) (data 7 179 95 31 0 34.2 0.164 60 tested_negative) (data 0 140 65 26 130 42.6 0.431 24 tested_positive) (data 9 112 82 32 175 34.2 0.26 36 tested_positive) (data 12 151 70 40 271 41.8 0.742 38 tested_positive) (data 5 109 62 41 129 35.8 0.514 25 tested_positive) (data 6 125 68 30 120 30 0.464 32 tested_negative) (data 5 85 74 22 0 29 1.224 32 tested_positive) (data 5 112 66 0 0 37.8 0.261 41 tested_positive) (data 0 177 60 29 478 34.6 1.072 21 tested_positive) (data 2 158 90 0 0 31.6 0.805 66 tested_positive) (data 7 119 0 0 0 25.2 0.209 37 tested_negative) (data 7 142 60 33 190 28.8 0.687 61 tested_negative) (data 1 100 66 15 56 23.6 0.666 26 tested_negative) (data 1 87 78 27 32 34.6 0.101 22 tested_negative) (data 0 101 76 0 0 35.7 0.198 26 tested_negative) (data 3 162 52 38 0 37.2 0.652 24 tested_positive) (data 4 197 70 39 744 36.7 2.329 31 tested_negative) (data 0 117 80 31 53 45.2 0.089 24 tested_negative) (data 4 142 86 0 0 44 0.645 22 tested_positive) (data 6 134 80 37 370 46.2 0.238 46 tested_positive) (data 1 79 80 25 37 25.4 0.583 22 tested_negative) (data 4 122 68 0 0 35 0.394 29 tested_negative) (data 3 74 68 28 45 29.7 0.293 23 tested_negative) (data 4 171 72 0 0 43.6 0.479 26 tested_positive) (data 7 181 84 21 192 35.9 0.586 51 tested_positive) (data 0 179 90 27 0 44.1 0.686 23 tested_positive) (data 9 164 84 21 0 30.8 0.831 32 tested_positive) (data 0 104 76 0 0 18.4 0.582 27 tested_negative) (data 1 91 64 24 0 29.2 0.192 21 tested_negative) (data 4 91 70 32 88 33.1 0.446 22 tested_negative) (data 3 139 54 0 0 25.6 0.402 22 tested_positive) (data 6 119 50 22 176 27.1 1.318 33 tested_positive) (data 2 146 76 35 194 38.2 0.329 29 tested_negative) (data 9 184 85 15 0 30 1.213 49 tested_positive) (data 10 122 68 0 0 31.2 0.258 41 tested_negative) (data 0 165 90 33 680 52.3 0.427 23 tested_negative) (data 9 124 70 33 402 35.4 0.282 34 tested_negative) (data 1 111 86 19 0 30.1 0.143 23 tested_negative) (data 9 106 52 0 0 31.2 0.38 42 tested_negative) (data 2 129 84 0 0 28 0.284 27 tested_negative) (data 2 90 80 14 55 24.4 0.249 24 tested_negative) (data 0 86 68 32 0 35.8 0.238 25 tested_negative) (data 12 92 62 7 258 27.6 0.926 44 tested_positive) (data 1 113 64 35 0 33.6 0.543 21 tested_positive) (data 3 111 56 39 0 30.1 0.557 30 tested_negative) (data 2 114 68 22 0 28.7 0.092 25 tested_negative) (data 1 193 50 16 375 25.9 0.655 24 tested_negative) (data 11 155 76 28 150 33.3 1.353 51 tested_positive) (data 3 191 68 15 130 30.9 0.299 34 tested_negative) (data 3 141 0 0 0 30 0.761 27 tested_positive) (data 4 95 70 32 0 32.1 0.612 24 tested_negative) (data 3 142 80 15 0 32.4 0.2 63 tested_negative) (data 4 123 62 0 0 32 0.226 35 tested_positive) (data 5 96 74 18 67 33.6 0.997 43 tested_negative) (data 0 138 0 0 0 36.3 0.933 25 tested_positive) (data 2 128 64 42 0 40 1.101 24 tested_negative) (data 0 102 52 0 0 25.1 0.078 21 tested_negative) (data 2 146 0 0 0 27.5 0.24 28 tested_positive) (data 10 101 86 37 0 45.6 1.136 38 tested_positive) (data 2 108 62 32 56 25.2 0.128 21 tested_negative) (data 3 122 78 0 0 23 0.254 40 tested_negative) (data 1 71 78 50 45 33.2 0.422 21 tested_negative) (data 13 106 70 0 0 34.2 0.251 52 tested_negative) (data 2 100 70 52 57 40.5 0.677 25 tested_negative) (data 7 106 60 24 0 26.5 0.296 29 tested_positive) (data 0 104 64 23 116 27.8 0.454 23 tested_negative) (data 5 114 74 0 0 24.9 0.744 57 tested_negative) (data 2 108 62 10 278 25.3 0.881 22 tested_negative) (data 0 146 70 0 0 37.9 0.334 28 tested_positive) (data 10 129 76 28 122 35.9 0.28 39 tested_negative) (data 7 133 88 15 155 32.4 0.262 37 tested_negative) (data 7 161 86 0 0 30.4 0.165 47 tested_positive) (data 2 108 80 0 0 27 0.259 52 tested_positive) (data 7 136 74 26 135 26 0.647 51 tested_negative) (data 5 155 84 44 545 38.7 0.619 34 tested_negative) (data 1 119 86 39 220 45.6 0.808 29 tested_positive) (data 4 96 56 17 49 20.8 0.34 26 tested_negative) (data 5 108 72 43 75 36.1 0.263 33 tested_negative) (data 0 78 88 29 40 36.9 0.434 21 tested_negative) (data 0 107 62 30 74 36.6 0.757 25 tested_positive) (data 2 128 78 37 182 43.3 1.224 31 tested_positive) (data 1 128 48 45 194 40.5 0.613 24 tested_positive) (data 0 161 50 0 0 21.9 0.254 65 tested_negative) (data 6 151 62 31 120 35.5 0.692 28 tested_negative) (data 2 146 70 38 360 28 0.337 29 tested_positive) (data 0 126 84 29 215 30.7 0.52 24 tested_negative) (data 14 100 78 25 184 36.6 0.412 46 tested_positive) (data 8 112 72 0 0 23.6 0.84 58 tested_negative) (data 0 167 0 0 0 32.3 0.839 30 tested_positive) (data 2 144 58 33 135 31.6 0.422 25 tested_positive) (data 5 77 82 41 42 35.8 0.156 35 tested_negative) (data 5 115 98 0 0 52.9 0.209 28 tested_positive) (data 3 150 76 0 0 21 0.207 37 tested_negative) (data 2 120 76 37 105 39.7 0.215 29 tested_negative) (data 10 161 68 23 132 25.5 0.326 47 tested_positive) (data 0 137 68 14 148 24.8 0.143 21 tested_negative) (data 0 128 68 19 180 30.5 1.391 25 tested_positive) (data 2 124 68 28 205 32.9 0.875 30 tested_positive) (data 6 80 66 30 0 26.2 0.313 41 tested_negative) (data 0 106 70 37 148 39.4 0.605 22 tested_negative) (data 2 155 74 17 96 26.6 0.433 27 tested_positive) (data 3 113 50 10 85 29.5 0.626 25 tested_negative) (data 7 109 80 31 0 35.9 1.127 43 tested_positive) (data 2 112 68 22 94 34.1 0.315 26 tested_negative) (data 3 99 80 11 64 19.3 0.284 30 tested_negative) (data 3 182 74 0 0 30.5 0.345 29 tested_positive) (data 3 115 66 39 140 38.1 0.15 28 tested_negative) (data 6 194 78 0 0 23.5 0.129 59 tested_positive) (data 4 129 60 12 231 27.5 0.527 31 tested_negative) (data 3 112 74 30 0 31.6 0.197 25 tested_positive) (data 0 124 70 20 0 27.4 0.254 36 tested_positive) (data 13 152 90 33 29 26.8 0.731 43 tested_positive) (data 2 112 75 32 0 35.7 0.148 21 tested_negative) (data 1 157 72 21 168 25.6 0.123 24 tested_negative) (data 1 122 64 32 156 35.1 0.692 30 tested_positive) (data 10 179 70 0 0 35.1 0.2 37 tested_negative) (data 2 102 86 36 120 45.5 0.127 23 tested_positive) (data 6 105 70 32 68 30.8 0.122 37 tested_negative) (data 8 118 72 19 0 23.1 1.476 46 tested_negative) (data 2 87 58 16 52 32.7 0.166 25 tested_negative) (data 1 180 0 0 0 43.3 0.282 41 tested_positive) (data 12 106 80 0 0 23.6 0.137 44 tested_negative) (data 1 95 60 18 58 23.9 0.26 22 tested_negative) (data 0 165 76 43 255 47.9 0.259 26 tested_negative) (data 0 117 0 0 0 33.8 0.932 44 tested_negative) (data 5 115 76 0 0 31.2 0.343 44 tested_positive) (data 9 152 78 34 171 34.2 0.893 33 tested_positive) (data 7 178 84 0 0 39.9 0.331 41 tested_positive) (data 1 130 70 13 105 25.9 0.472 22 tested_negative) (data 1 95 74 21 73 25.9 0.673 36 tested_negative) (data 1 0 68 35 0 32 0.389 22 tested_negative) (data 5 122 86 0 0 34.7 0.29 33 tested_negative) (data 8 95 72 0 0 36.8 0.485 57 tested_negative) (data 8 126 88 36 108 38.5 0.349 49 tested_negative) (data 1 139 46 19 83 28.7 0.654 22 tested_negative) (data 3 116 0 0 0 23.5 0.187 23 tested_negative) (data 3 99 62 19 74 21.8 0.279 26 tested_negative) (data 5 0 80 32 0 41 0.346 37 tested_positive) (data 4 92 80 0 0 42.2 0.237 29 tested_negative) (data 4 137 84 0 0 31.2 0.252 30 tested_negative) (data 3 61 82 28 0 34.4 0.243 46 tested_negative) (data 1 90 62 12 43 27.2 0.58 24 tested_negative) (data 3 90 78 0 0 42.7 0.559 21 tested_negative) (data 9 165 88 0 0 30.4 0.302 49 tested_positive) (data 1 125 50 40 167 33.3 0.962 28 tested_positive) (data 13 129 0 30 0 39.9 0.569 44 tested_positive) (data 12 88 74 40 54 35.3 0.378 48 tested_negative) (data 1 196 76 36 249 36.5 0.875 29 tested_positive) (data 5 189 64 33 325 31.2 0.583 29 tested_positive) (data 5 158 70 0 0 29.8 0.207 63 tested_negative) (data 5 103 108 37 0 39.2 0.305 65 tested_negative) (data 4 146 78 0 0 38.5 0.52 67 tested_positive) (data 4 147 74 25 293 34.9 0.385 30 tested_negative) (data 5 99 54 28 83 34 0.499 30 tested_negative) (data 6 124 72 0 0 27.6 0.368 29 tested_positive) (data 0 101 64 17 0 21 0.252 21 tested_negative) (data 3 81 86 16 66 27.5 0.306 22 tested_negative) (data 1 133 102 28 140 32.8 0.234 45 tested_positive) (data 3 173 82 48 465 38.4 2.137 25 tested_positive) (data 0 118 64 23 89 0 1.731 21 tested_negative) (data 0 84 64 22 66 35.8 0.545 21 tested_negative) (data 2 105 58 40 94 34.9 0.225 25 tested_negative) (data 2 122 52 43 158 36.2 0.816 28 tested_negative) (data 12 140 82 43 325 39.2 0.528 58 tested_positive) (data 0 98 82 15 84 25.2 0.299 22 tested_negative) (data 1 87 60 37 75 37.2 0.509 22 tested_negative) (data 4 156 75 0 0 48.3 0.238 32 tested_positive) (data 0 93 100 39 72 43.4 1.021 35 tested_negative) (data 1 107 72 30 82 30.8 0.821 24 tested_negative) (data 0 105 68 22 0 20 0.236 22 tested_negative) (data 1 109 60 8 182 25.4 0.947 21 tested_negative) (data 1 90 62 18 59 25.1 1.268 25 tested_negative) (data 1 125 70 24 110 24.3 0.221 25 tested_negative) (data 1 119 54 13 50 22.3 0.205 24 tested_negative) (data 5 116 74 29 0 32.3 0.66 35 tested_positive) (data 8 105 100 36 0 43.3 0.239 45 tested_positive) (data 5 144 82 26 285 32 0.452 58 tested_positive) (data 3 100 68 23 81 31.6 0.949 28 tested_negative) (data 1 100 66 29 196 32 0.444 42 tested_negative) (data 5 166 76 0 0 45.7 0.34 27 tested_positive) (data 1 131 64 14 415 23.7 0.389 21 tested_negative) (data 4 116 72 12 87 22.1 0.463 37 tested_negative) (data 4 158 78 0 0 32.9 0.803 31 tested_positive) (data 2 127 58 24 275 27.7 1.6 25 tested_negative) (data 3 96 56 34 115 24.7 0.944 39 tested_negative) (data 0 131 66 40 0 34.3 0.196 22 tested_positive) (data 3 82 70 0 0 21.1 0.389 25 tested_negative) (data 3 193 70 31 0 34.9 0.241 25 tested_positive) (data 4 95 64 0 0 32 0.161 31 tested_positive) (data 6 137 61 0 0 24.2 0.151 55 tested_negative) (data 5 136 84 41 88 35 0.286 35 tested_positive) (data 9 72 78 25 0 31.6 0.28 38 tested_negative) (data 5 168 64 0 0 32.9 0.135 41 tested_positive) (data 2 123 48 32 165 42.1 0.52 26 tested_negative) (data 4 115 72 0 0 28.9 0.376 46 tested_positive) (data 0 101 62 0 0 21.9 0.336 25 tested_negative) (data 8 197 74 0 0 25.9 1.191 39 tested_positive) (data 1 172 68 49 579 42.4 0.702 28 tested_positive) (data 6 102 90 39 0 35.7 0.674 28 tested_negative) (data 1 112 72 30 176 34.4 0.528 25 tested_negative) (data 1 143 84 23 310 42.4 1.076 22 tested_negative) (data 1 143 74 22 61 26.2 0.256 21 tested_negative) (data 0 138 60 35 167 34.6 0.534 21 tested_positive) (data 3 173 84 33 474 35.7 0.258 22 tested_positive) (data 1 97 68 21 0 27.2 1.095 22 tested_negative) (data 4 144 82 32 0 38.5 0.554 37 tested_positive) (data 1 83 68 0 0 18.2 0.624 27 tested_negative) (data 3 129 64 29 115 26.4 0.219 28 tested_positive) (data 1 119 88 41 170 45.3 0.507 26 tested_negative) (data 2 94 68 18 76 26 0.561 21 tested_negative) (data 0 102 64 46 78 40.6 0.496 21 tested_negative) (data 2 115 64 22 0 30.8 0.421 21 tested_negative) (data 8 151 78 32 210 42.9 0.516 36 tested_positive) (data 4 184 78 39 277 37 0.264 31 tested_positive) (data 0 94 0 0 0 0 0.256 25 tested_negative) (data 1 181 64 30 180 34.1 0.328 38 tested_positive) (data 0 135 94 46 145 40.6 0.284 26 tested_negative) (data 1 95 82 25 180 35 0.233 43 tested_positive) (data 2 99 0 0 0 22.2 0.108 23 tested_negative) (data 3 89 74 16 85 30.4 0.551 38 tested_negative) (data 1 80 74 11 60 30 0.527 22 tested_negative) (data 2 139 75 0 0 25.6 0.167 29 tested_negative) (data 1 90 68 8 0 24.5 1.138 36 tested_negative) (data 0 141 0 0 0 42.4 0.205 29 tested_positive) (data 12 140 85 33 0 37.4 0.244 41 tested_negative) (data 5 147 75 0 0 29.9 0.434 28 tested_negative) (data 1 97 70 15 0 18.2 0.147 21 tested_negative) (data 6 107 88 0 0 36.8 0.727 31 tested_negative) (data 0 189 104 25 0 34.3 0.435 41 tested_positive) (data 2 83 66 23 50 32.2 0.497 22 tested_negative) (data 4 117 64 27 120 33.2 0.23 24 tested_negative) (data 8 108 70 0 0 30.5 0.955 33 tested_positive) (data 4 117 62 12 0 29.7 0.38 30 tested_positive) (data 0 180 78 63 14 59.4 2.42 25 tested_positive) (data 1 100 72 12 70 25.3 0.658 28 tested_negative) (data 0 95 80 45 92 36.5 0.33 26 tested_negative) (data 0 104 64 37 64 33.6 0.51 22 tested_positive) (data 0 120 74 18 63 30.5 0.285 26 tested_negative) (data 1 82 64 13 95 21.2 0.415 23 tested_negative) (data 2 134 70 0 0 28.9 0.542 23 tested_positive) (data 0 91 68 32 210 39.9 0.381 25 tested_negative) (data 2 119 0 0 0 19.6 0.832 72 tested_negative) (data 2 100 54 28 105 37.8 0.498 24 tested_negative) (data 14 175 62 30 0 33.6 0.212 38 tested_positive) (data 1 135 54 0 0 26.7 0.687 62 tested_negative) (data 5 86 68 28 71 30.2 0.364 24 tested_negative) (data 10 148 84 48 237 37.6 1.001 51 tested_positive) (data 9 134 74 33 60 25.9 0.46 81 tested_negative) (data 9 120 72 22 56 20.8 0.733 48 tested_negative) (data 1 71 62 0 0 21.8 0.416 26 tested_negative) (data 8 74 70 40 49 35.3 0.705 39 tested_negative) (data 5 88 78 30 0 27.6 0.258 37 tested_negative) (data 10 115 98 0 0 24 1.022 34 tested_negative) (data 0 124 56 13 105 21.8 0.452 21 tested_negative) (data 0 74 52 10 36 27.8 0.269 22 tested_negative) (data 0 97 64 36 100 36.8 0.6 25 tested_negative) (data 8 120 0 0 0 30 0.183 38 tested_positive) (data 6 154 78 41 140 46.1 0.571 27 tested_negative) (data 1 144 82 40 0 41.3 0.607 28 tested_negative) (data 0 137 70 38 0 33.2 0.17 22 tested_negative) (data 0 119 66 27 0 38.8 0.259 22 tested_negative) (data 7 136 90 0 0 29.9 0.21 50 tested_negative) (data 4 114 64 0 0 28.9 0.126 24 tested_negative) (data 0 137 84 27 0 27.3 0.231 59 tested_negative) (data 2 105 80 45 191 33.7 0.711 29 tested_positive) (data 7 114 76 17 110 23.8 0.466 31 tested_negative) (data 8 126 74 38 75 25.9 0.162 39 tested_negative) (data 4 132 86 31 0 28 0.419 63 tested_negative) (data 3 158 70 30 328 35.5 0.344 35 tested_positive) (data 0 123 88 37 0 35.2 0.197 29 tested_negative) (data 4 85 58 22 49 27.8 0.306 28 tested_negative) (data 0 84 82 31 125 38.2 0.233 23 tested_negative) (data 0 145 0 0 0 44.2 0.63 31 tested_positive) (data 0 135 68 42 250 42.3 0.365 24 tested_positive) (data 1 139 62 41 480 40.7 0.536 21 tested_negative) (data 0 173 78 32 265 46.5 1.159 58 tested_negative) (data 4 99 72 17 0 25.6 0.294 28 tested_negative) (data 8 194 80 0 0 26.1 0.551 67 tested_negative) (data 2 83 65 28 66 36.8 0.629 24 tested_negative) (data 2 89 90 30 0 33.5 0.292 42 tested_negative) (data 4 99 68 38 0 32.8 0.145 33 tested_negative) (data 4 125 70 18 122 28.9 1.144 45 tested_positive) (data 3 80 0 0 0 0 0.174 22 tested_negative) (data 6 166 74 0 0 26.6 0.304 66 tested_negative) (data 5 110 68 0 0 26 0.292 30 tested_negative) (data 2 81 72 15 76 30.1 0.547 25 tested_negative) (data 7 195 70 33 145 25.1 0.163 55 tested_positive) (data 6 154 74 32 193 29.3 0.839 39 tested_negative) (data 2 117 90 19 71 25.2 0.313 21 tested_negative) (data 3 84 72 32 0 37.2 0.267 28 tested_negative) (data 6 0 68 41 0 39 0.727 41 tested_positive) (data 7 94 64 25 79 33.3 0.738 41 tested_negative) (data 3 96 78 39 0 37.3 0.238 40 tested_negative) (data 10 75 82 0 0 33.3 0.263 38 tested_negative) (data 0 180 90 26 90 36.5 0.314 35 tested_positive) (data 1 130 60 23 170 28.6 0.692 21 tested_negative) (data 2 84 50 23 76 30.4 0.968 21 tested_negative) (data 8 120 78 0 0 25 0.409 64 tested_negative) (data 12 84 72 31 0 29.7 0.297 46 tested_positive) (data 0 139 62 17 210 22.1 0.207 21 tested_negative) (data 9 91 68 0 0 24.2 0.2 58 tested_negative) (data 2 91 62 0 0 27.3 0.525 22 tested_negative) (data 3 99 54 19 86 25.6 0.154 24 tested_negative) (data 3 163 70 18 105 31.6 0.268 28 tested_positive) (data 9 145 88 34 165 30.3 0.771 53 tested_positive) (data 7 125 86 0 0 37.6 0.304 51 tested_negative) (data 13 76 60 0 0 32.8 0.18 41 tested_negative) (data 6 129 90 7 326 19.6 0.582 60 tested_negative) (data 2 68 70 32 66 25 0.187 25 tested_negative) (data 3 124 80 33 130 33.2 0.305 26 tested_negative) (data 6 114 0 0 0 0 0.189 26 tested_negative) (data 9 130 70 0 0 34.2 0.652 45 tested_positive) (data 3 125 58 0 0 31.6 0.151 24 tested_negative) (data 3 87 60 18 0 21.8 0.444 21 tested_negative) (data 1 97 64 19 82 18.2 0.299 21 tested_negative) (data 3 116 74 15 105 26.3 0.107 24 tested_negative) (data 0 117 66 31 188 30.8 0.493 22 tested_negative) (data 0 111 65 0 0 24.6 0.66 31 tested_negative) (data 2 122 60 18 106 29.8 0.717 22 tested_negative) (data 0 107 76 0 0 45.3 0.686 24 tested_negative) (data 1 86 66 52 65 41.3 0.917 29 tested_negative) (data 6 91 0 0 0 29.8 0.501 31 tested_negative) (data 1 77 56 30 56 33.3 1.251 24 tested_negative) (data 4 132 0 0 0 32.9 0.302 23 tested_positive) (data 0 105 90 0 0 29.6 0.197 46 tested_negative) (data 0 57 60 0 0 21.7 0.735 67 tested_negative) (data 0 127 80 37 210 36.3 0.804 23 tested_negative) (data 3 129 92 49 155 36.4 0.968 32 tested_positive) (data 8 100 74 40 215 39.4 0.661 43 tested_positive) (data 3 128 72 25 190 32.4 0.549 27 tested_positive) (data 10 90 85 32 0 34.9 0.825 56 tested_positive) (data 4 84 90 23 56 39.5 0.159 25 tested_negative) (data 1 88 78 29 76 32 0.365 29 tested_negative) (data 8 186 90 35 225 34.5 0.423 37 tested_positive) (data 5 187 76 27 207 43.6 1.034 53 tested_positive) (data 4 131 68 21 166 33.1 0.16 28 tested_negative) (data 1 164 82 43 67 32.8 0.341 50 tested_negative) (data 4 189 110 31 0 28.5 0.68 37 tested_negative) (data 1 116 70 28 0 27.4 0.204 21 tested_negative) (data 3 84 68 30 106 31.9 0.591 25 tested_negative) (data 6 114 88 0 0 27.8 0.247 66 tested_negative) (data 1 88 62 24 44 29.9 0.422 23 tested_negative) (data 1 84 64 23 115 36.9 0.471 28 tested_negative) (data 7 124 70 33 215 25.5 0.161 37 tested_negative) (data 1 97 70 40 0 38.1 0.218 30 tested_negative) (data 8 110 76 0 0 27.8 0.237 58 tested_negative) (data 11 103 68 40 0 46.2 0.126 42 tested_negative) (data 11 85 74 0 0 30.1 0.3 35 tested_negative) (data 6 125 76 0 0 33.8 0.121 54 tested_positive) (data 0 198 66 32 274 41.3 0.502 28 tested_positive) (data 1 87 68 34 77 37.6 0.401 24 tested_negative) (data 6 99 60 19 54 26.9 0.497 32 tested_negative) (data 0 91 80 0 0 32.4 0.601 27 tested_negative) (data 2 95 54 14 88 26.1 0.748 22 tested_negative) (data 1 99 72 30 18 38.6 0.412 21 tested_negative) (data 6 92 62 32 126 32 0.085 46 tested_negative) (data 4 154 72 29 126 31.3 0.338 37 tested_negative) (data 0 121 66 30 165 34.3 0.203 33 tested_positive) (data 3 78 70 0 0 32.5 0.27 39 tested_negative) (data 2 130 96 0 0 22.6 0.268 21 tested_negative) (data 3 111 58 31 44 29.5 0.43 22 tested_negative) (data 2 98 60 17 120 34.7 0.198 22 tested_negative) (data 1 143 86 30 330 30.1 0.892 23 tested_negative) (data 1 119 44 47 63 35.5 0.28 25 tested_negative) (data 6 108 44 20 130 24 0.813 35 tested_negative) (data 2 118 80 0 0 42.9 0.693 21 tested_positive) (data 10 133 68 0 0 27 0.245 36 tested_negative) (data 2 197 70 99 0 34.7 0.575 62 tested_positive) (data 0 151 90 46 0 42.1 0.371 21 tested_positive) (data 6 109 60 27 0 25 0.206 27 tested_negative) (data 12 121 78 17 0 26.5 0.259 62 tested_negative) (data 8 100 76 0 0 38.7 0.19 42 tested_negative) (data 8 124 76 24 600 28.7 0.687 52 tested_positive) (data 1 93 56 11 0 22.5 0.417 22 tested_negative) (data 8 143 66 0 0 34.9 0.129 41 tested_positive) (data 6 103 66 0 0 24.3 0.249 29 tested_negative) (data 3 176 86 27 156 33.3 1.154 52 tested_positive) (data 0 73 0 0 0 21.1 0.342 25 tested_negative) (data 11 111 84 40 0 46.8 0.925 45 tested_positive) (data 2 112 78 50 140 39.4 0.175 24 tested_negative) (data 3 132 80 0 0 34.4 0.402 44 tested_positive) (data 2 82 52 22 115 28.5 1.699 25 tested_negative) (data 6 123 72 45 230 33.6 0.733 34 tested_negative) (data 0 188 82 14 185 32 0.682 22 tested_positive) (data 0 67 76 0 0 45.3 0.194 46 tested_negative) (data 1 89 24 19 25 27.8 0.559 21 tested_negative) (data 1 173 74 0 0 36.8 0.088 38 tested_positive) (data 1 109 38 18 120 23.1 0.407 26 tested_negative) (data 1 108 88 19 0 27.1 0.4 24 tested_negative) (data 6 96 0 0 0 23.7 0.19 28 tested_negative) (data 1 124 74 36 0 27.8 0.1 30 tested_negative) (data 7 150 78 29 126 35.2 0.692 54 tested_positive) (data 4 183 0 0 0 28.4 0.212 36 tested_positive) (data 1 124 60 32 0 35.8 0.514 21 tested_negative) (data 1 181 78 42 293 40 1.258 22 tested_positive) (data 1 92 62 25 41 19.5 0.482 25 tested_negative) (data 0 152 82 39 272 41.5 0.27 27 tested_negative) (data 1 111 62 13 182 24 0.138 23 tested_negative) (data 3 106 54 21 158 30.9 0.292 24 tested_negative) (data 3 174 58 22 194 32.9 0.593 36 tested_positive) (data 7 168 88 42 321 38.2 0.787 40 tested_positive) (data 6 105 80 28 0 32.5 0.878 26 tested_negative) (data 11 138 74 26 144 36.1 0.557 50 tested_positive) (data 3 106 72 0 0 25.8 0.207 27 tested_negative) (data 6 117 96 0 0 28.7 0.157 30 tested_negative) (data 2 68 62 13 15 20.1 0.257 23 tested_negative) (data 9 112 82 24 0 28.2 1.282 50 tested_positive) (data 0 119 0 0 0 32.4 0.141 24 tested_positive) (data 2 112 86 42 160 38.4 0.246 28 tested_negative) (data 2 92 76 20 0 24.2 1.698 28 tested_negative) (data 6 183 94 0 0 40.8 1.461 45 tested_negative) (data 0 94 70 27 115 43.5 0.347 21 tested_negative) (data 2 108 64 0 0 30.8 0.158 21 tested_negative) (data 4 90 88 47 54 37.7 0.362 29 tested_negative) (data 0 125 68 0 0 24.7 0.206 21 tested_negative) (data 0 132 78 0 0 32.4 0.393 21 tested_negative) (data 5 128 80 0 0 34.6 0.144 45 tested_negative) (data 4 94 65 22 0 24.7 0.148 21 tested_negative) (data 7 114 64 0 0 27.4 0.732 34 tested_positive) (data 0 102 78 40 90 34.5 0.238 24 tested_negative) (data 2 111 60 0 0 26.2 0.343 23 tested_negative) (data 1 128 82 17 183 27.5 0.115 22 tested_negative) (data 10 92 62 0 0 25.9 0.167 31 tested_negative) (data 13 104 72 0 0 31.2 0.465 38 tested_positive) (data 5 104 74 0 0 28.8 0.153 48 tested_negative) (data 2 94 76 18 66 31.6 0.649 23 tested_negative) (data 7 97 76 32 91 40.9 0.871 32 tested_positive) (data 1 100 74 12 46 19.5 0.149 28 tested_negative) (data 0 102 86 17 105 29.3 0.695 27 tested_negative) (data 4 128 70 0 0 34.3 0.303 24 tested_negative) (data 6 147 80 0 0 29.5 0.178 50 tested_positive) (data 4 90 0 0 0 28 0.61 31 tested_negative) (data 3 103 72 30 152 27.6 0.73 27 tested_negative) (data 2 157 74 35 440 39.4 0.134 30 tested_negative) (data 1 167 74 17 144 23.4 0.447 33 tested_positive) (data 0 179 50 36 159 37.8 0.455 22 tested_positive) (data 11 136 84 35 130 28.3 0.26 42 tested_positive) (data 0 107 60 25 0 26.4 0.133 23 tested_negative) (data 1 91 54 25 100 25.2 0.234 23 tested_negative) (data 1 117 60 23 106 33.8 0.466 27 tested_negative) (data 5 123 74 40 77 34.1 0.269 28 tested_negative) (data 2 120 54 0 0 26.8 0.455 27 tested_negative) (data 1 106 70 28 135 34.2 0.142 22 tested_negative) (data 2 155 52 27 540 38.7 0.24 25 tested_positive) (data 2 101 58 35 90 21.8 0.155 22 tested_negative) (data 1 120 80 48 200 38.9 1.162 41 tested_negative) (data 11 127 106 0 0 39 0.19 51 tested_negative) (data 3 80 82 31 70 34.2 1.292 27 tested_positive) (data 10 162 84 0 0 27.7 0.182 54 tested_negative) (data 1 199 76 43 0 42.9 1.394 22 tested_positive) (data 8 167 106 46 231 37.6 0.165 43 tested_positive) (data 9 145 80 46 130 37.9 0.637 40 tested_positive) (data 6 115 60 39 0 33.7 0.245 40 tested_positive) (data 1 112 80 45 132 34.8 0.217 24 tested_negative) (data 4 145 82 18 0 32.5 0.235 70 tested_positive) (data 10 111 70 27 0 27.5 0.141 40 tested_positive) (data 6 98 58 33 190 34 0.43 43 tested_negative) (data 9 154 78 30 100 30.9 0.164 45 tested_negative) (data 6 165 68 26 168 33.6 0.631 49 tested_negative) (data 1 99 58 10 0 25.4 0.551 21 tested_negative) (data 10 68 106 23 49 35.5 0.285 47 tested_negative) (data 3 123 100 35 240 57.3 0.88 22 tested_negative) (data 8 91 82 0 0 35.6 0.587 68 tested_negative) (data 6 195 70 0 0 30.9 0.328 31 tested_positive) (data 9 156 86 0 0 24.8 0.23 53 tested_positive) (data 0 93 60 0 0 35.3 0.263 25 tested_negative) (data 3 121 52 0 0 36 0.127 25 tested_positive) (data 2 101 58 17 265 24.2 0.614 23 tested_negative) (data 2 56 56 28 45 24.2 0.332 22 tested_negative) (data 0 162 76 36 0 49.6 0.364 26 tested_positive) (data 0 95 64 39 105 44.6 0.366 22 tested_negative) (data 4 125 80 0 0 32.3 0.536 27 tested_positive) (data 5 136 82 0 0 0 0.64 69 tested_negative) (data 2 129 74 26 205 33.2 0.591 25 tested_negative) (data 3 130 64 0 0 23.1 0.314 22 tested_negative) (data 1 107 50 19 0 28.3 0.181 29 tested_negative) (data 1 140 74 26 180 24.1 0.828 23 tested_negative) (data 1 144 82 46 180 46.1 0.335 46 tested_positive) (data 8 107 80 0 0 24.6 0.856 34 tested_negative) (data 13 158 114 0 0 42.3 0.257 44 tested_positive) (data 2 121 70 32 95 39.1 0.886 23 tested_negative) (data 7 129 68 49 125 38.5 0.439 43 tested_positive) (data 2 90 60 0 0 23.5 0.191 25 tested_negative) (data 7 142 90 24 480 30.4 0.128 43 tested_positive) (data 3 169 74 19 125 29.9 0.268 31 tested_positive) (data 0 99 0 0 0 25 0.253 22 tested_negative) (data 4 127 88 11 155 34.5 0.598 28 tested_negative) (data 4 118 70 0 0 44.5 0.904 26 tested_negative) (data 2 122 76 27 200 35.9 0.483 26 tested_negative) (data 6 125 78 31 0 27.6 0.565 49 tested_positive) (data 1 168 88 29 0 35 0.905 52 tested_positive) (data 2 129 0 0 0 38.5 0.304 41 tested_negative) (data 4 110 76 20 100 28.4 0.118 27 tested_negative) (data 6 80 80 36 0 39.8 0.177 28 tested_negative) (data 10 115 0 0 0 0 0.261 30 tested_positive) (data 2 127 46 21 335 34.4 0.176 22 tested_negative) (data 9 164 78 0 0 32.8 0.148 45 tested_positive) (data 2 93 64 32 160 38 0.674 23 tested_positive) (data 3 158 64 13 387 31.2 0.295 24 tested_negative) (data 5 126 78 27 22 29.6 0.439 40 tested_negative) (data 10 129 62 36 0 41.2 0.441 38 tested_positive) (data 0 134 58 20 291 26.4 0.352 21 tested_negative) (data 3 102 74 0 0 29.5 0.121 32 tested_negative) (data 7 187 50 33 392 33.9 0.826 34 tested_positive) (data 3 173 78 39 185 33.8 0.97 31 tested_positive) (data 10 94 72 18 0 23.1 0.595 56 tested_negative) (data 1 108 60 46 178 35.5 0.415 24 tested_negative) (data 5 97 76 27 0 35.6 0.378 52 tested_positive) (data 4 83 86 19 0 29.3 0.317 34 tested_negative) (data 1 114 66 36 200 38.1 0.289 21 tested_negative) (data 1 149 68 29 127 29.3 0.349 42 tested_positive) (data 5 117 86 30 105 39.1 0.251 42 tested_negative) (data 1 111 94 0 0 32.8 0.265 45 tested_negative) (data 4 112 78 40 0 39.4 0.236 38 tested_negative) (data 1 116 78 29 180 36.1 0.496 25 tested_negative) (data 0 141 84 26 0 32.4 0.433 22 tested_negative) (data 2 175 88 0 0 22.9 0.326 22 tested_negative) (data 2 92 52 0 0 30.1 0.141 22 tested_negative) (data 3 130 78 23 79 28.4 0.323 34 tested_positive) (data 8 120 86 0 0 28.4 0.259 22 tested_positive) (data 2 174 88 37 120 44.5 0.646 24 tested_positive) (data 2 106 56 27 165 29 0.426 22 tested_negative) (data 2 105 75 0 0 23.3 0.56 53 tested_negative) (data 4 95 60 32 0 35.4 0.284 28 tested_negative) (data 0 126 86 27 120 27.4 0.515 21 tested_negative) (data 8 65 72 23 0 32 0.6 42 tested_negative) (data 2 99 60 17 160 36.6 0.453 21 tested_negative) (data 1 102 74 0 0 39.5 0.293 42 tested_positive) (data 11 120 80 37 150 42.3 0.785 48 tested_positive) (data 3 102 44 20 94 30.8 0.4 26 tested_negative) (data 1 109 58 18 116 28.5 0.219 22 tested_negative) (data 9 140 94 0 0 32.7 0.734 45 tested_positive) (data 13 153 88 37 140 40.6 1.174 39 tested_negative) (data 12 100 84 33 105 30 0.488 46 tested_negative) (data 1 147 94 41 0 49.3 0.358 27 tested_positive) (data 1 81 74 41 57 46.3 1.096 32 tested_negative) (data 3 187 70 22 200 36.4 0.408 36 tested_positive) (data 6 162 62 0 0 24.3 0.178 50 tested_positive) (data 4 136 70 0 0 31.2 1.182 22 tested_positive) (data 1 121 78 39 74 39 0.261 28 tested_negative) (data 3 108 62 24 0 26 0.223 25 tested_negative) (data 0 181 88 44 510 43.3 0.222 26 tested_positive) (data 8 154 78 32 0 32.4 0.443 45 tested_positive) (data 1 128 88 39 110 36.5 1.057 37 tested_positive) (data 7 137 90 41 0 32 0.391 39 tested_negative) (data 0 123 72 0 0 36.3 0.258 52 tested_positive) (data 1 106 76 0 0 37.5 0.197 26 tested_negative) (data 6 190 92 0 0 35.5 0.278 66 tested_positive) (data 2 88 58 26 16 28.4 0.766 22 tested_negative) (data 9 170 74 31 0 44 0.403 43 tested_positive) (data 9 89 62 0 0 22.5 0.142 33 tested_negative) (data 10 101 76 48 180 32.9 0.171 63 tested_negative) (data 2 122 70 27 0 36.8 0.34 27 tested_negative) (data 5 121 72 23 112 26.2 0.245 30 tested_negative) (data 1 126 60 0 0 30.1 0.349 47 tested_positive) (data 1 93 70 31 0 30.4 0.315 23 tested_negative) ) #| (pprint (time (IPO '(2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))) (print (IPO '( 10 10 10 10 10 10 10 10 10 10))) 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ))) )) ;; This is the returned result, where "0" values are wildcards. ((2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) (2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2) (1 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1) (1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2) (0 2 2 2 1 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2) (0 1 1 1 2 1 1 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1) (0 2 1 1 1 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2) (0 2 2 2 2 2 2 1 1 2 1 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1) (0 1 1 1 1 0 0 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1) (0 1 2 2 2 0 0 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2) (0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1) (0 0 2 2 2 0 0 0 0 2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2) (0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2) (0 0 2 2 2 0 0 0 0 2 0 2 2 2 2 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) (0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1)) |# ;;;; fossils ;;; no, i don't understand why i coded these either (defun colnumbers (nums) "what is the range of values in each columneach column?" (let ((max (rel-width *the-relation*))) (labels ((convert (n) (if (< n 0) (+ max n) n))) (mapcar #'convert nums)))) (defmacro attribute< (name &rest args) "Define a numeric goal attribute that we need to minimize." `(defnums ',name -1)) (defmacro attribute> (name &rest args) "Define a numeric goal attribute that we need to maximize." `(defnums ',name 1)) (time (demo1)) (quit)