(FILECREATED " 6-Mar-87 11:53:05" {QV}<KAPLAN>IDL>IDLDEMO.;1 13462  

      changes to:  (FNS IDL-LOTTO-DEMO)

      previous date: "17-Feb-87 14:06:32" {QV}<PEDERSEN>LISP>KOTO>IDLDEMO.;3)


(* Copyright (c) 1986, 1987 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT IDLDEMOCOMS)

(RPAQQ IDLDEMOCOMS [(FNS COMPUTE-TSTATS IDL-LOTTERY-DEMO IDL-LOTTO-DEMO IDL-NEEDLE-DEMO IDL-T-DEMO 
			   IDLDEMO.CLEANUP IDLDEMO.SHADEITEM IDLDEMO.WHENSELECTEDFN QUANTILE-PLOT 
			   SPIN-PLOT)
		      (DECLARE: DONTEVAL@LOAD DOCOPY (P [SETQ LOTTERY (IDLMATRIX-FROM-LIST
								(READFILE (QUOTE 
								      {QV}<IDL>DATA>LOTTERY1.DATA]
							[SETQ LOTTERY2 (IDLMATRIX-FROM-LIST
								(READFILE (QUOTE 
								      {QV}<IDL>DATA>LOTTERY2.DATA]
							(SETQ LOTTERY3 (IDLMATRIX-FROM-LIST
								(READFILE (QUOTE 
								      {QV}<IDL>DATA>LOTTERY3.DATA])
(DEFINEQ

(COMPUTE-TSTATS
  [LAMBDA (MATRIX N)                                         (* jop: "25-Jun-86 12:26")

          (* *)


    (if (NULL N)
	then (SETQ N (IDLARRAY-DIMENSION MATRIX 1)))
    (LET ((M (MEAN MATRIX))
	  (V (SAMPLE-VARIANCE MATRIX)))
         (IDL-QUOTIENT M (IDL-SQRT (IDL-QUOTIENT V N V)
				       V)
			 M])

(IDL-LOTTERY-DEMO
  [LAMBDA NIL                                                (* edited: "28-Jun-86 16:42")

          (* *)


    (PROG ((TTYWINDOW (WFROMDS (TTYDISPLAYSTREAM)))
	     (IDLDEMO.MENU (create MENU
				     ITEMS ←(QUOTE (("Inspect Lottery data" "(INSPECT LOTTERY")
						       ("Select winning numbers" "(SETQ NUMBERS IT")
						       ("Histogram of winning numbers" 
						    "(HISTOGRAM NUMBERS NIL %"Winning numbers%" ")
						       ("Select payoffs" "(SETQ PAYOFF  IT")
						       ("Histogram of payoffs" 
						    "(SETQ HIST (HISTOGRAM PAYOFF NIL 'Payoffs) ")
						       ("Add $500 line to Histogram" 
							      "(PLOTLINE HIST NIL 500 '$500
	  2")
						       ("Relate Payoff to winning number" 
		"(SETQ SCAT (SCATTERPLOT (ASVECTOR* NUMBERS PAYOFF ) %"Winning Numbers%" 'Payoff")
						       ("Regress payoff on number" 
					"(SETQ RESULT (REGRESS PAYOFF (LAMINATE 1.0 NUMBERS .5))")
						       ("Inspect result" "(INSPECT RESULT")
						       ("Add the regression line" 
	      "(PLOTLINE SCAT (IDLARRAY-REF RESULT 1) (IDLARRAY-REF RESULT 0) %"Regress line%" 2")
						       ("Add smoother to menu" 
		 "(PLOTADDMENUITEMS SCAT (QUOTE RIGHT)
		  (QUOTE ((Smooth SCATTERPLOT.SMOOTH)))")
						       ("Select Payoff's for Second Year" 
						    "(SETQ PAYOFF2 (AT* LOTTERY2 'ALL 'Payoff2) ")
						       ("Select Payoff's for Third Year" 
						    "(SETQ PAYOFF3 (AT* LOTTERY3 'ALL 'Payoff3) ")
						       ("Compare payoff's for three years" 
	      "(SETQ BOXPLOT (BOXPLOTS (ASVECTOR* PAYOFF PAYOFF2 PAYOFF3) '(Year1 Year2 Year3) )")
						       ("Add $500 mark to Boxplots" 
						      "(PLOTLINE BOXPLOT 0 500 (QUOTE $500)
	  2")))
				     WHENSELECTEDFN ←(FUNCTION IDLDEMO.WHENSELECTEDFN)
				     TITLE ← "Typescript Menu for IDL demo")))
	    (DECLARE (SPECVARS IDLDEMO.SHADEDITEM IDLDEMO.TTYWINDOW LOTTERY LOTTERY2 LOTTERY3))
	    (SETQ IDLDEMO.TTYWINDOW TTYWINDOW)
	    (SHAPEW TTYWINDOW (CREATEREGION 5 570 300 150))
	    (ATTACHMENU IDLDEMO.MENU TTYWINDOW (QUOTE RIGHT)
			  (QUOTE TOP))
	    (SETQ IDLDEMO.SHADEDITEM (CAR (fetch ITEMS of IDLDEMO.MENU)))
	    (IDLDEMO.SHADEITEM IDLDEMO.SHADEDITEM IDLDEMO.MENU SHADE1)
	    (GIVE.TTY.PROCESS TTYWINDOW])

(IDL-LOTTO-DEMO
  [LAMBDA NIL                                                (* rmk: " 6-Mar-87 11:51")

          (* *)


    (PROG ((TTYWINDOW (WFROMDS (TTYDISPLAYSTREAM)))
	     (TEDITWINDOW (CREATEW (CREATEREGION 550 50 450 700)
				     "N.J. Pick-It Lottery Data" NIL T))
	     (IDLDEMO.MENU (create MENU
				     ITEMS ←(QUOTE (("Histogram of winning numbers" "")
						       ("Inspect winning numbers" 
								     "(INSPECT (SETQ NUMBERS IT)")
						       ("Histogram of payoffs" "")
						       ("Inspect payoffs" 
								     "(INSPECT (SETQ PAYOFFS IT)")
						       ("Select Histogram" "(SETQ HIST (WHICHPLOT)")
						       ("Add $500 line to Histogram" 
							      "(PLOTLINE HIST NIL 500 '$500
	  2")
						       ("Relate Payoff to winning number" 
	       "(SETQ SCAT (SCATTERPLOT (ASVECTOR* NUMBERS PAYOFFS ) %"Winning Numbers%" 'Payoff")
						       ("Regress payoff on number" 
				       "(SETQ RESULT (REGRESS PAYOFFS (LAMINATE 1.0 NUMBERS .5))")
						       ("Inspect result" "(INSPECT RESULT")
						       ("Add the regression line" 
	      "(PLOTLINE SCAT (IDLARRAY-REF RESULT 1) (IDLARRAY-REF RESULT 0) %"Regress line%" 2")
						       ("Add smoother to menu" 
		 "(PLOTADDMENUITEMS SCAT (QUOTE RIGHT)
		  (QUOTE ((Smooth SCATTERPLOT.SMOOTH)))")
						       ("Select Payoff's for Second Year" 
						    "(SETQ PAYOFF2 (AT* LOTTERY2 'ALL 'Payoff2) ")
						       ("Select Payoff's for Third Year" 
						    "(SETQ PAYOFF3 (AT* LOTTERY3 'ALL 'Payoff3) ")
						       ("Compare payoff's for three years" 
	      "(SETQ BOXPLOT (BOXPLOTS (ASVECTOR* PAYOFF PAYOFF2 PAYOFF3) '(Year1 Year2 Year3) )")
						       ("Add $500 mark to Boxplots" 
						      "(PLOTLINE BOXPLOT 0 500 (QUOTE $500)
	  2")))
				     WHENSELECTEDFN ←(FUNCTION IDLDEMO.WHENSELECTEDFN)
				     TITLE ← "Typescript Menu for IDL demo")))
	    (DECLARE (SPECVARS IDLDEMO.SHADEDITEM IDLDEMO.TTYWINDOW LOTTERY LOTTERY2 LOTTERY3))
	    (SETQ IDLDEMO.TTYWINDOW TTYWINDOW)
	    (SHAPEW TTYWINDOW (CREATEREGION 5 570 300 150))
	    (ATTACHMENU IDLDEMO.MENU TTYWINDOW (QUOTE RIGHT)
			  (QUOTE TOP))
	    (SETQ IDLDEMO.SHADEDITEM (CAR (fetch ITEMS of IDLDEMO.MENU)))
	    (IDLDEMO.SHADEITEM IDLDEMO.SHADEDITEM IDLDEMO.MENU SHADE1)
	    (TEDIT (QUOTE {QV}<IDL>DEMO>LOTTERYSCRIPT.TEDIT)
		     TEDITWINDOW)
	    (GIVE.TTY.PROCESS TTYWINDOW])

(IDL-NEEDLE-DEMO
  [LAMBDA NIL                                                (* edited: "17-Feb-87 14:06")

          (* *)


    (FILESLOAD (QUOTE VECTORPLOT))
    (PROG ((TTYWINDOW (WFROMDS (TTYDISPLAYSTREAM)))
	     (IDLDEMO.MENU (create MENU
				     ITEMS ←(QUOTE (("Make a Gaussian cloud" 
					 "(SETQ GAUSS (RESHAPE (ASVECTOR* 3 400) (NORMALS 1200))")
						       ("Spin it" "(SPIN-PLOT GAUSS")
						       ("Make a needle" 
				 "(SETQ NEEDLE (RESHAPE (ASVECTOR* 3 11) (GENVECTOR 11 -1.0 .2))")
						       ("Add the needle to the cloud" 
							       "(SETQ DATA (ADJOIN GAUSS NEEDLE)")
						       ("Can you see the needle?" 
				   "(SCATTERPLOT (ASVECTOR* (AT* DATA 0 'ALL) (AT* DATA 1 'ALL))")
						       ("How about here?" 
				   "(SCATTERPLOT (ASVECTOR* (AT* DATA 1 'ALL) (AT* DATA 2 'ALL))")
						       ("What if we spin it?" "(SPIN-PLOT DATA")))
				     WHENSELECTEDFN ←(FUNCTION IDLDEMO.WHENSELECTEDFN)
				     TITLE ← "Typescript Menu for IDL demo")))
	    (DECLARE (SPECVARS IDLDEMO.SHADEDITEM IDLDEMO.TTYWINDOW LOTTERY LOTTERY2 LOTTERY3))
	    (SETQ IDLDEMO.TTYWINDOW TTYWINDOW)
	    (SHAPEW TTYWINDOW (CREATEREGION 5 570 300 150))
	    (ATTACHMENU IDLDEMO.MENU TTYWINDOW (QUOTE RIGHT)
			  (QUOTE TOP))
	    (SETQ IDLDEMO.SHADEDITEM (CAR (fetch ITEMS of IDLDEMO.MENU)))
	    (IDLDEMO.SHADEITEM IDLDEMO.SHADEDITEM IDLDEMO.MENU SHADE1)
	    (GIVE.TTY.PROCESS TTYWINDOW])

(IDL-T-DEMO
  [LAMBDA NIL                                                (* edited: "28-Jun-86 16:43")

          (* *)


    (PROG ((TTYWINDOW (WFROMDS (TTYDISPLAYSTREAM)))
	     (IDLDEMO.MENU (create MENU
				     ITEMS ←(QUOTE (("Make a random sample" 
				      "(SETQ SAMPLES (RESHAPE (ASVECTOR* 150 10) (NORMALS 1500))")
						       ("Get its variance" 
							      "(SETQ V (SAMPLE-VARIANCE SAMPLES)")
						       ("Get its mean" "(SETQ M (MEAN SAMPLES)")
						       ("Compute the t-statistics" 
			     "(SETQ TSTATS (IDL-QUOTIENT M (IDL-SQRT (IDL-QUOTIENT V 10 V) V) M)")
						       ("Whats the maximum value?" 
									     "(MAX-REDUCE TSTATS")
						       ("Whats the minimum value?" 
									     "(MIN-REDUCE TSTATS")
						       ("Describe the distribution" 
						  "(HISTOGRAM TSTATS NIL 'T-value 'Normal-Sample")
						       ("Compare quantiles")
						       ("First get Percent points" 
"(PROGN (SETQ TEMP (GENVECTOR 150 1.0)) (SETQ TPOINTS (INV-T-DIST (IDL-QUOTIENT TEMP 151 TEMP) 9 TEMP ))"
										   )
						       ("Sort the Tstats" 
						     "(SETQ OTSTATS (AT* TSTATS (ORDER TSTATS ))")
						       ("Make a quantile plot" 
		"(SETQ SCAT (SCATTERPLOT (ASVECTOR*  TPOINTS OTSTATS) 'Theorectical 'Computed)  ")
						       ("Add a line of slope one" 
								  "(PLOTLINE SCAT 1.0 0.0  NIL 2")
						       ("Do the same to a perturbed data set")
						       ("Perturb SAMPLES" 
		"(PROGN (SETQ PER (IDL-COPY SAMPLES)) (ASSIGN* (NORMALS 150 0.0 5.0) PER 'ALL 0)")
						       ("Programm Tstats" "(DF COMPUTE-TSTATS")
						       ("Compute the t-statistics" 
							 "(SETQ PER-TSTATS (COMPUTE-TSTATS PER )")
						       ("Describe the distribution" 
							"(HISTOGRAM PER-TSTATS NIL 'Per-T-value ")
						       ("Program quantile plot" "(DF QUANTILE-PLOT ")
						       ("Make a quantile plot" 
								   "(QUANTILE-PLOT PER-TSTATS 10")
						       ("Non-zero means" 
     "(PROGN (SETQ NON-ZERO (IDL-COPY SAMPLES)) (SETQ NON-ZERO (IDL-PLUS NON-ZERO 3.0 NON-ZERO))")
						       ("As before" 
     "(PROGN (SETQ NON-ZERO-TSTATS (COMPUTE-TSTATS NON-ZERO)) (QUANTILE-PLOT NON-ZERO-TSTATS 10)")
						       ("What happens in general?" 
"(PROGN (SETQ X-VALUES (GENVECTOR 201 -100.0 1.0 ))(SETQ INF-SAMPLES (ADJOIN X-VALUES (SETQ INF-SAMPLE (RESHAPE  (ASVECTOR* 201 9) (NORMALS 9))))"
										   )
						       ("Compute the t-statistics" 
						  "(SETQ INF-TSTATS (COMPUTE-TSTATS INF-SAMPLES)")
						       ("Plot the influence curve" 
			  "(SCATTERPLOT (ASVECTOR* X-VALUES INF-TSTATS ) 'X-value 'T-value 'LINE")
						       ("Redo with non-zero mean" 
	      "(SETQ NON-ZERO-INF-SAMPLES (ADJOIN X-VALUES (IDL-PLUS INF-SAMPLE 3.0 INF-SAMPLE))")
						       ("Plot the influence curve" 
"(SCATTERPLOT (ASVECTOR8  X-VALUES (COMPUTE-TSTATS NON-ZERO-INF-SAMPLES ) )  'X-value 'T-value 'LINE")
						       ))
				     WHENSELECTEDFN ←(FUNCTION IDLDEMO.WHENSELECTEDFN)
				     TITLE ← "Typescript Menu for IDL demo")))
	    (DECLARE (SPECVARS IDLDEMO.SHADEDITEM IDLDEMO.TTYWINDOW))
	    (SETQ IDLDEMO.TTYWINDOW TTYWINDOW)
	    (SHAPEW TTYWINDOW (CREATEREGION 5 500 400 220))
	    (ATTACHMENU IDLDEMO.MENU TTYWINDOW (QUOTE RIGHT)
			  (QUOTE TOP))
	    (SETQ IDLDEMO.SHADEDITEM (CAR (fetch ITEMS of IDLDEMO.MENU)))
	    (IDLDEMO.SHADEITEM IDLDEMO.SHADEDITEM IDLDEMO.MENU SHADE1)
	    (GIVE.TTY.PROCESS TTYWINDOW])

(IDLDEMO.CLEANUP
  [LAMBDA NIL                                                (* jop: "25-Jun-86 12:00")

          (* *)


    (PROG [(TTYWINDOW (WFROMDS (TTYDISPLAYSTREAM]
	    (DETACHALLWINDOWS TTYWINDOW)
	    (WINDOWPROP TTYWINDOW (QUOTE MINSIZE)
			  NIL])

(IDLDEMO.SHADEITEM
  [LAMBDA (ITEM1 MENU SHADE)                                 (* jop: "25-Jun-86 11:18")

          (* *)


    (LET* ((MENUW (WFROMMENU MENU))
	   (REGION1 (MENUITEMREGION ITEM1 MENU)))
          (BITBLT NIL NIL NIL MENUW (fetch LEFT of REGION1)
		    (fetch BOTTOM of REGION1)
		    (fetch WIDTH of REGION1)
		    (fetch HEIGHT of REGION1)
		    (QUOTE TEXTURE)
		    (QUOTE INVERT)
		    SHADE])

(IDLDEMO.WHENSELECTEDFN
  [LAMBDA (ITEM MENU BUTTON)                                 (* jop: "28-Jun-86 14:10")

          (* *)


    (PROG ((FORM (CADR ITEM)))
	    (DECLARE (USEDFREE IDLDEMO.SHADEDITEM IDLDEMO.TTYWINDOW))
	    (IDLDEMO.SHADEITEM IDLDEMO.SHADEDITEM MENU SHADE1)
	    (GIVE.TTY.PROCESS IDLDEMO.TTYWINDOW)
	    (BKSYSBUF FORM)
	    [SETQ IDLDEMO.SHADEDITEM (CADR (MEMB ITEM (fetch ITEMS of MENU]
	    [if (NULL IDLDEMO.SHADEDITEM)
		then (SETQ IDLDEMO.SHADEDITEM (CAR (fetch ITEMS of MENU]
	    (IDLDEMO.SHADEITEM IDLDEMO.SHADEDITEM MENU SHADE1])

(QUANTILE-PLOT
  [LAMBDA (VECTOR N)                                       (* jop: "27-Jun-86 15:36")

          (* *)


    (LET* [(M (IDLARRAY-DIMENSION VECTOR 0))
	   (TEMP (GENVECTOR M 1.0))
	   (TPOINTS (INV-T-DIST (IDL-QUOTIENT TEMP (ADD1 M)
						  TEMP)
				  (SUB1 N)
				  TEMP))
	   (OTSTATS (AT* VECTOR (ORDER VECTOR]
          (SCATTERPLOT (ASVECTOR* TPOINTS OTSTATS)
			 (CONCAT "T on " (SUB1 N)
				   "df's")
			 "Computed T-values"])

(SPIN-PLOT
  [LAMBDA (ARRAY)                                          (* edited: "17-Feb-87 14:05")
    (THREEDPLOT (IDLARRAY-CMLARRAY ARRAY])
)
(DECLARE: DONTEVAL@LOAD DOCOPY 
[SETQ LOTTERY (IDLMATRIX-FROM-LIST (READFILE (QUOTE {QV}<IDL>DATA>LOTTERY1.DATA]
[SETQ LOTTERY2 (IDLMATRIX-FROM-LIST (READFILE (QUOTE {QV}<IDL>DATA>LOTTERY2.DATA]
[SETQ LOTTERY3 (IDLMATRIX-FROM-LIST (READFILE (QUOTE {QV}<IDL>DATA>LOTTERY3.DATA]
)
(PUTPROPS IDLDEMO COPYRIGHT ("Xerox Corporation" 1986 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (870 13100 (COMPUTE-TSTATS 880 . 1256) (IDL-LOTTERY-DEMO 1258 . 3563) (IDL-LOTTO-DEMO 
3565 . 6016) (IDL-NEEDLE-DEMO 6018 . 7522) (IDL-T-DEMO 7524 . 10981) (IDLDEMO.CLEANUP 10983 . 11280) (
IDLDEMO.SHADEITEM 11282 . 11762) (IDLDEMO.WHENSELECTEDFN 11764 . 12419) (QUANTILE-PLOT 12421 . 12934) 
(SPIN-PLOT 12936 . 13098)))))
STOP