From luke  Sat Sep 14 12:39:55 1991
Resent-Date: Sat, 14 Sep 91 12:39:47 CDT
Resent-Message-Id: <9109141739.AA14523@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 14 Sep 91 12:39:55 CDT
Date: Sat, 14 Sep 91 12:39:47 CDT
From: "Luke Tierney" <luke>
Message-Id: <9109141739.AA14515@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 14 Sep 91 12:39:47 CDT
To: stat-lisp-news
Subject: first posting
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

Your name has been added to the stat-lisp-news electronic mailing
list.  The purpose of this list is to provide a forum for discussing
issues, asking questions, and distributing information related to the
use of Lisp and Lisp-based systems in statistics. You can post
messages to the list by mailing to

	stat-lisp-news@umnstat.stat.umn.edu

If you want to have your name removed from the mailing list, send a
message to

	stat-lisp-news-request@umnstat.stat.umn.edu

asking to have your name removed to the list.

Luke Tierney
School of Statistics
University of Minnesota
Minneapolis, MN 55455
luke@umnstat.stat.umn.edu


From owner-SL-news  Mon Sep 16 23:51:39 1991
Resent-Date: Mon, 16 Sep 91 21:49:47 -0700
Resent-From: owner-SL-news
Resent-Message-Id: <9109170451.AA29846@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 16 Sep 91 23:51:39 CDT
Received: from sulu.biostat.washington.edu by umnstat.stat.umn.edu; Mon, 16 Sep 91 23:51:31 CDT
Received: by sulu.biostat.washington.edu
	(5.64/UW-NDC Revision: 2.21 ) id AA12886; Mon, 16 Sep 91 21:49:47 -0700
Date: Mon, 16 Sep 91 21:49:47 -0700
From: Camlin Tierney <camlin@biostat.washington.edu>
Message-Id: <9109170449.AA12886@sulu.biostat.washington.edu>
To: stat-lisp-news
Subject: mail
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Camlin Tierney <camlin@biostat.washington.edu>
Status: OR

I would like to have my name added to the mailing list.
Thanks,
Camlin

From owner-SL-news  Tue Sep 17 03:40:36 1991
Resent-Date: Tue, 17 Sep 91 01:39:09 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109170840.AA01042@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 17 Sep 91 03:40:36 CDT
Received: from lewin.psych.washington.edu by umnstat.stat.umn.edu; Tue, 17 Sep 91 03:40:27 CDT
Received: by lewin.psych.washington.edu
	(4.1/UW-NDC Revision: 2.21 ) id AA25044; Tue, 17 Sep 91 01:39:09 PDT
Date: Tue, 17 Sep 91 01:39:09 PDT
From: richard gonzalez <gonzo@lewin.psych.washington.edu>
Message-Id: <9109170839.AA25044@lewin.psych.washington.edu>
To: stat-lisp-news
Subject: doc woes...
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: richard gonzalez <gonzo@lewin.psych.washington.edu>
Status: OR

I just got a copy of xlispstat and am having trouble 
printing the docs.
The README warns about troubles in inputting those
postscript files in LaTeX.  I went ahead and tried.  No luck.

But, I just discovered my problem may not be with LaTeX.  I can't
even print out the postscript version of the docs, let alone
the individual figures (e.g., lpr fig1.ps).  I don't get
any error messages; nothing comes out of the printer.

I'm using a SUN IPC, running SUNOS 4.1, and have a LaserWriter II
printer.  

I can always download to a friend's mac and print out the figures.
I thought I'd write to see if anyone had suggestions for a 
more elegant solution.  

thanks

rich gonzalez
gonzo@milton.u.washington.edu

From owner-SL-news  Tue Sep 17 09:06:14 1991
Resent-Date: Tue, 17 Sep 91 10:05:03 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109171406.AA02050@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 17 Sep 91 09:06:14 CDT
Received: from Princeton.EDU by umnstat.stat.umn.edu; Tue, 17 Sep 91 09:06:06 CDT
Received: from tsar.Princeton.EDU by Princeton.EDU (5.65b/2.82/princeton)
	id AA02533; Tue, 17 Sep 91 10:05:10 -0400
Received: by tsar.Princeton.EDU (NeXT-1.0 (From Sendmail 5.52)/1.110)
	id AA03397; Tue, 17 Sep 91 10:05:03 EDT
Date: Tue, 17 Sep 91 10:05:03 EDT
From: Ira H. Fuchs <fuchs@tsar.Princeton.EDU>
Message-Id: <9109171405.AA03397@tsar.Princeton.EDU>
Received: by NeXT Mailer (1.63.RR)
To: stat-lisp-news
Subject: LISP-STAT for NeXT?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Ira H. Fuchs <fuchs@tsar.Princeton.EDU>
Status: OR

Has anyone ported LISP-STAT to the NeXT. I realize that the Unix version will work  
(without graphics) but I was wondering if anyone was working on making it work with  
NextStep. 

From owner-SL-news  Tue Sep 17 10:36:32 1991
Resent-Date: Tue, 17 Sep 91 11:34:46 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109171536.AA02478@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 17 Sep 91 10:36:32 CDT
Received: from alfred.econ.lsa.umich.edu by umnstat.stat.umn.edu; Tue, 17 Sep 91 10:36:21 CDT
Received: by alfred.econ.lsa.umich.edu (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
	id AA01979; Tue, 17 Sep 91 11:34:46 EDT
Date: Tue, 17 Sep 91 11:34:46 EDT
From: hal@alfred.econ.lsa.umich.edu (Hal Varian)
Message-Id: <9109171534.AA01979@alfred.econ.lsa.umich.edu>
Received: by NeXT Mailer (1.63)
To: stat-lisp-news
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: hal@alfred.econ.lsa.umich.edu (Hal Varian)
Status: OR


Ira H. Fuchs <fuchs@tsar.princeton.edu> writes:

> Has anyone ported LISP-STAT to the NeXT. I realize that
> the Unix version will work (without graphics) but I was
> wondering if anyone was working on making it work with
> NextStep.  


I've compiled xlispstat on the NeXT to run under coXist.  It worked  
more-or-less out of the box; I had to change one variable name to  
avoid a conflict in the linker.

I have a student who is fairly knowledgeable about both X and NeXT  
who is interested doing a port to NeXTstep.  He hasn't committed the  
project yet, but odds look good.  If anybody else is working on this  
we could coordinate efforts.

Hal Varian		Internet: Hal.Varian@um.cc.umich.edu
Department of Economics	BITNET: userCABX@umichum
University of Michigan	NeXTmail: hal@alfred.econ.lsa.umich.edu
Ann Arbor, MI 48109	voice: 313-764-2364  fax: 313-764-2769

From owner-SL-news  Tue Sep 17 17:14:27 1991
Resent-Date: Tue, 17 Sep 91 10:39:33 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109172214.AA04264@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 17 Sep 91 17:14:27 CDT
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Tue, 17 Sep 91 17:14:19 CDT
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA17166; Tue, 17 Sep 91 18:13:23 -0400
Received: from sputnik.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 181308.12254; Tue, 17 Sep 1991 18:13:08 EDT
Received: by sputnik.tc.fluke.COM (version 2.52)
	from cutter.tc.fluke.COM for stat-lisp-news@umnstat.stat.umn.edu
	id AA10901; Tue, 17 Sep 91 10:39:36 PDT
Received: by cutter.tc.fluke.COM (version 2.52)
	for stat-lisp-news@umnstat.stat.umn.edu
	id AA03176; Tue, 17 Sep 91 10:39:33 PDT
Message-Id: <9109171739.AA03176@cutter>
Date: Tue, 17 Sep 91 10:39:33 PDT
From: sbanay@tc.fluke.COM (Sharon Banay)
To: stat-lisp-news
Subject: dynamic loading on sun4 (sparc)
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: sbanay@tc.fluke.COM (Sharon Banay)
Status: OR


hi,

	i tried dynamically loading a c function with the dyn-load
command, but it didn't work.  

	the first thing i did was to create an object file:
        cc -c rd.c

then, i attemped to dynamically load the routine in XLISP-STAT

> (dyn-load "rd.o")
first ld pass
ld -d -N -x -A /usr/public/lib/xlispstat/xlisp -T 22d000 rd.o  -lm -lc -o /tmp/xlispdyn3155
sh: 3157 Memory fault - core dumped 
error: link failed
>  


does anybody know how to fix this for the sun 4?  i successfully dynamically
loaded on the sun 3 (as a comparison), but couldn't get it working
for the sun 4!

thanks,
sharon

From owner-SL-news  Thu Sep 19 08:45:52 1991
Resent-Date: Thu, 19 Sep 91 09:44:34 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <9109191345.AA22726@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 19 Sep 91 08:45:52 CDT
Received: from holly.stat.ufl.edu by umnstat.stat.umn.edu; Thu, 19 Sep 91 08:45:44 CDT
Received:  by stat.ufl.edu (5.57/4.08)
	id AA20776; Thu, 19 Sep 91 09:44:34 -0400
Date: Thu, 19 Sep 91 09:44:34 -0400
From: Mike Conlon <mconlon@stat.ufl.edu>
Message-Id: <9109191344.AA20776@stat.ufl.edu>
To: hal@alfred.econ.lsa.umich.edu
Subject: XlispStat on the NeXT
Cc: lisp-stat-news
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Mike Conlon <mconlon@stat.ufl.edu>
Status: OR


I took a look at what was involved to port XlispStat to the NeXT and
decided this was a big job.  Much harder than getting it to run under X,
since the X version is in the distribution.

Luke Tierney may have notes on what he did to port it to Windows,
which he did recently.

If you look at the code, you'll see that there are many X-related
routiens to pass information to/from X to XlispStat. These
would all have to be rewritten using Objective C and IB calls.
There appear to be many interface points between the window system and 
XlispStat. I didn't look at it enough to tell how much of the X code
was handling the interface and how much was internal X stuff that
might be avoidable in an IB environment.

Mike Conlon
Dept of Statistics
Univ of Florida

From luke  Thu Sep 19 13:58:43 1991
Resent-Date: Thu, 19 Sep 91 13:58:35 CDT
Resent-Message-Id: <9109191858.AA01513@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 19 Sep 91 13:58:43 CDT
Date: Thu, 19 Sep 91 13:58:35 CDT
From: "Luke Tierney" <luke>
Message-Id: <9109191858.AA01506@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 19 Sep 91 13:58:35 CDT
To: stat-lisp-news
Subject: Re: dynamic loading on sun4 (sparc)
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR


Under SunOS 4.0 and 4.1 you need to link xlispstat with -Bstatic since
ld -A, which is used for dynamic loading, dies when run against an
executable that uses shared libraries.

luke

From owner-SL-news  Fri Sep 20 12:59:03 1991
Resent-Date: Fri, 20 Sep 91 13:51:45 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109201759.AA11478@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 20 Sep 91 12:59:03 CDT
Message-Id: <9109201758.AA11469@umnstat.stat.umn.edu>
Received: from KARIBA.BBN.COM by umnstat.stat.umn.edu; Fri, 20 Sep 91 12:58:50 CDT
To: stat-lisp-news
Cc: kanderson@BBN.COM, jmorrill@BBN.COM
Subject: Call for Comments
From: aboulang@BBN.COM
Sender: aboulang@BBN.COM
Reply-To: aboulanger@BBN.COM
Date: Fri, 20 Sep 91 13:51:45 EDT
Source-Info:  From (or Sender) name not authenticated.
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: aboulang@BBN.COM
Status: OR


We are seeking collaborators for either development or idea input
on a language and an environment for exploratory data analysis,
pattern recognition, and machine learning. 

Background
 
In the past two years, a group in BBN STC, developed an
environment that uses a tree classifier based on ID3 (like
CART), and tools for visualizing the decision trees generated --
like what will be in the next release of S-PLUS. This
environment was used to build classification trees for aluminum
roll-mill quality diagnostics, seismic classification, and water
pollution category determination. Recently, its interactive
environment has been used in a system that classifies recorded
conversations. The environment is written in CommonLisp and
CLOS, the standard object system for CommonLisp. The windowing
substrate is implemented using CLIM which is like the window
environment in Symbolics Genera. The environment is available for
Sun, Silicon Graphics, and Symbolics platforms and would be
possible to move to other machine types.

Where we are going.

We need to provide general matrix manipulation capabilities. It
currently lacks a "language" for doing so. This has lead to the
thought of enhancing the environment so that is supports an infix
language. This language will combine features from the language S and
Iverson's follow-on to APL, J. (I can provide a description of J.) It
will be implemented as a grammar within a structure editing substrate
(point and click style of expression editing as well as normal typing)
being developed for the FAES project. However we wish to upgrade the
workspace notions in both S and J to be more object oriented.  For
instance, we wish to have a notion of folders like in Datadesk.  This
orientation is already present in the current system. We also wish to
integrate it with a object oriented database system like Symbolics'
Statice so that workspaces and object spaces are persistent. We also
wish to provide the ability to dynamically link C programs into the
interpretive environment like S. Lucid Commonlisp provides this
capability. There is also a design goal that the algorithms and
support environment be able to scale well with large datasets. This
may entail distributed or parallel computation task dispatching from
the interactive front end.  The resulting system will combine some of
the best features of S, J, Datadesk, and XLISP-Stat, to provide a
state-of-the-art substrate for exploratory data analysis and pattern
recognition in an age of run-away information.

Please send notes of interest or comments to:

Albert Boulanger
aboulanger@bbn.com
(617) 873-3891


From owner-SL-news  Mon Sep 23 11:36:36 1991
Resent-Date: Mon, 23 Sep 91 12:35:04 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109231636.AA03770@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 23 Sep 91 11:36:36 CDT
Received: from ott.rutgers.edu by umnstat.stat.umn.edu; Mon, 23 Sep 91 11:36:27 CDT
Received: by ott.rutgers.edu (5.59/SMI4.0/RU1.4/3.08) 
	id AA00181; Mon, 23 Sep 91 12:35:04 EDT
Date: Mon, 23 Sep 91 12:35:04 EDT
From: crogers@stat.rutgers.edu
Message-Id: <9109231635.AA00181@ott.rutgers.edu>
To: stat-lisp-news
Subject: Xlispstat Users Group
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: crogers@stat.rutgers.edu
Status: OR

  I have working with xlispstat here at the Rutgers Statistics Department and   would like to be included in your group mailings.  My email adress is:
     
               crogers@stat.rutgers.edu
       
                 Thanks,
                     Christopher Rogers

From owner-SL-news  Mon Sep 23 12:08:56 1991
Resent-Date: Mon, 23 Sep 91 13:07 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109231708.AA03907@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 23 Sep 91 12:08:56 CDT
Message-Id: <9109231708.AA03900@umnstat.stat.umn.edu>
Received: from utstat.toronto.edu by umnstat.stat.umn.edu; Mon, 23 Sep 91 12:08:44 CDT
From: davids@utstat.toronto.edu
Date: Mon, 23 Sep 91 13:07 EDT
To: stat-lisp-news
Subject: Archived Data Files and XLISP-STAT Code 
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: davids@utstat.toronto.edu
Status: OR

 
Subject: Archived Data Files and XLISP-STAT Code 
 
Essentially, the subject line says it all. Has an archive 
site yet been installed for useful XLISP-STAT codings and 
data sets ? 
 
In particular, I am interested in seeing some examples of 
Byesian analyses incorporating Gibbs sampling ( or other 
related techniques ), perhaps incorporating dynamic 
graphical presentations. 
 
David P.M. Scollnik 
Department of Statistics 
University of Toronto. 
 
ps. E-mailed examples of the above would be also be appreciated. 


From luke  Tue Sep 24 05:53:44 1991
Resent-Date: Tue, 24 Sep 91 05:53:33 CDT
Resent-Message-Id: <9109241053.AA08682@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 24 Sep 91 05:53:44 CDT
Date: Tue, 24 Sep 91 05:53:33 CDT
From: "Luke Tierney" <luke>
Message-Id: <9109241053.AA08675@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 24 Sep 91 05:53:33 CDT
To: davids@utstat.toronto.edu, stat-lisp-news
Subject: Re:  Archived Data Files and XLISP-STAT Code
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

statlib has an archive for contributed code. Send an email message to
statlib@lib.stat.cmu.edu containing the line

	send index from xlispstat

and you will get a current listing. Currently there are just a two
items (nothing on Gibbs sampling), but several people have indicated
they might submit something in the next month or so.

luke



From owner-SL-news  Wed Sep 25 11:22:39 1991
Resent-Date: Wed, 25 Sep 1991 11:13 CST
Resent-From: owner-SL-news
Resent-Message-Id: <9109251622.AA15258@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 25 Sep 91 11:22:39 CDT
Received: from uwpg02.uwinnipeg.ca by umnstat.stat.umn.edu; Wed, 25 Sep 91 11:22:27 CDT
Received: from UWPG02.UWINNIPEG.CA by UWPG02.UWINNIPEG.CA (PMDF #12040) id
 <01GAZWCDQBJ4001I7O@UWPG02.UWINNIPEG.CA>; Wed, 25 Sep 1991 11:13 CST
Date: Wed, 25 Sep 1991 11:13 CST
From: BILL SIMPSON <WSIMPSON@UWPG02.UWINNIPEG.CA>
Subject: sending labels to plot
To: stat-lisp-news
Message-Id: <01GAZWCDQBJ4001I7O@UWPG02.UWINNIPEG.CA>
X-Vms-To: IN%"stat-lisp-news@umnstat.stat.umn.edu"
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: BILL SIMPSON <WSIMPSON@UWPG02.UWINNIPEG.CA>
Status: OR

> I have some suggestions and comments on Xlisp-stat.  I am 
> using the latest version for Macintosh II (floating point coprocessor).
> 
> 1.  When I type:
> (plot-points x y :variable-labels (list "xlabel" "ylabel"))
> it works.
> 
> But this doesn't work:
> (def myplot (plot-points x y))
> (send myplot :variable-labels (list "xlabel" "ylabel"))
> 
> Instead of putting the labels on the plot, it returns:
> #("xlabel" "ylabel")
> I have tried other variations, none of which work. Could someone 
> please explain?
> 
> 2. "Quantile-plot" doesn't make a quantile plot as described 
> in Chambers et al. (1983).  I have made a function that does a quantile 
> plot:
> 
> (defun fraction-plot (x &key (title "Fraction Plot") point-labels)
> "Args: (data &key (title \"Fraction Plot\") point-labels)
> This is really a quantile plot."
>   (plot-points  (/ (1+ (rank x)) (1+ (length x)))
>                x
>                :title title 
>                :variable-labels
> 			'("Fraction of data" "Value")
>                :point-labels point-labels))
> 
> I called it fraction-plot because the name quantile-plot was 
> taken.  I would like to suggest that in the next version of xlisp-stat, 
> quantile-plot is my fraction-plot.  I can't send variable labels to a plot
> using this definition (same problem as in #1).
> 
> I have also written a function to do a quantile-quantile plot 
> (but again had to give it a weird name):
> 
> (defun fraction-fraction-plot (x y &key (title "Fraction-
> fraction Plot") point-labels)
> "Args: (xdata ydata &key (title \"Fraction-fraction Plot\") 
> point-labels)
> This is really a quantile-quantile plot."
>   (plot-points  (sort-data x) (sort-data y)
>                :title title 
>                :variable-labels
>                '("Ordered x value" "Ordered y value")
>                :point-labels point-labels))
> 
> 3.  I would like to suggest that nreg-model be changed such 
> that it receives x y b instead of just y b.  The reason is 
> that with the current version you have to rewrite the model 
> function each time you have a new set of x data to fit.  As 
> well, this would make nreg-model more similar to regression-
> model.
> 
> I like xlisp-stat very much; I hope these suggestions are 
> useful.
> 
> Any help with the problems I'm having is appreciated.


Bill Simpson
wsimpson@uwpg02.uwinnipeg.ca

From owner-SL-news  Wed Sep 25 13:26:54 1991
Resent-Date: 25 Sep 91 12:06:00 MDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109251826.AA00560@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 25 Sep 91 13:26:54 CDT
Message-Id: <9109251826.AA00553@umnstat.stat.umn.edu>
Received: from auctus.admin.athabascau.ca by umnstat.stat.umn.edu; Wed, 25 Sep 91 13:26:31 CDT
Date: 25 Sep 91 12:06:00 MDT
From: "Walter Gray" <walterg@admin.athabascau.ca>
Subject: Stat-lisp-news Mailing List
To: "stat-lisp-news" <stat-lisp-news>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Walter Gray" <walterg@admin.athabascau.ca>
Status: OR

Please add my name to the mailing list.

Walter M. Gray
Athabasca University
Athabasca, Alberta
Canada


From owner-SL-news  Thu Sep 26 09:36:40 1991
Resent-Date: Thu, 26 Sep 91 09:34:08 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <9109261436.AA04970@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 26 Sep 91 09:36:40 CDT
Received: from [129.186.102.19] by umnstat.stat.umn.edu; Thu, 26 Sep 91 09:36:32 CDT
Received: by iastate.edu with sendmail-5.57/4.7 
	id <AA00157@iastate.edu>; Thu, 26 Sep 91 09:34:11 -0500
Message-Id: <9109261434.AA00157@iastate.edu>
To: stat-lisp-news
Subject: time series question
Date: Thu, 26 Sep 91 09:34:08 CDT
From: "Mervyn G. Marasinghe" <mervyn@iastate.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Mervyn G. Marasinghe" <mervyn@iastate.edu>
Status: OR

Has anyone done any time series stuff in lisp-stat?
I am thinking of a project but want to know what's
been done.

From owner-SL-news  Thu Sep 26 10:24:43 1991
Resent-Date: Thu, 26 Sep 1991 11:22:24 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <9109261524.AA05273@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 26 Sep 91 10:24:43 CDT
Received: from PO3.ANDREW.CMU.EDU by umnstat.stat.umn.edu; Thu, 26 Sep 91 10:24:35 CDT
Received: by po3.andrew.cmu.edu (5.54/3.15) id <AA16492> for stat-lisp-news@umnstat.stat.umn.edu; Thu, 26 Sep 91 11:22:59 EDT
Received: via switchmail; Thu, 26 Sep 1991 11:22:58 -0400 (EDT)
Received: from meyer.dws.acs.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.YcsTgtq00VRUI0WIEq>;
          Thu, 26 Sep 1991 11:22:34 -0400 (EDT)
Received: from meyer.dws.acs.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/usr24/mikem/.Outgoing/QF.wcsTgl600VRUADV2wS>;
          Thu, 26 Sep 1991 11:22:25 -0400 (EDT)
Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.meyer.dws.acs.cmu.edu.pmax.ul4
          via MS.5.6.meyer.dws.acs.cmu.edu.pmax_ul4;
          Thu, 26 Sep 1991 11:22:24 -0400 (EDT)
Message-Id: <McsTgky00VRUADV2pv@andrew.cmu.edu>
Date: Thu, 26 Sep 1991 11:22:24 -0400 (EDT)
From: Michael Meyer <mikem+@andrew.cmu.edu>
To: stat-lisp-news, "Mervyn G. Marasinghe" <mervyn@iastate.edu>
Subject: Re: time series question
In-Reply-To: <9109261434.AA00157@iastate.edu>
References: <9109261434.AA00157@iastate.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Michael Meyer <mikem+@andrew.cmu.edu>
Status: OR

There is a small time series collection for XLS in statli
The message
	send times from xlipstat
sent to statlib@lib.stat.cmu.edu
should retrieve the software.

--Mike Meyer.

From luke  Fri Sep 27 14:43:45 1991
Resent-Date: Fri, 27 Sep 91 14:43:34 CDT
Resent-Message-Id: <9109271943.AA00642@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 27 Sep 91 14:43:45 CDT
Date: Fri, 27 Sep 91 14:43:34 CDT
From: "Luke Tierney" <luke>
Message-Id: <9109271943.AA00634@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 27 Sep 91 14:43:34 CDT
To: s-news@stat.wisc.edu,
        stat-lisp-news@umnstat.stat.umn.edu STAT-L@MCGILL1.BITNET
Subject: Graphics sessions at 92 ASA meeting in Boston
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR



		CALL FOR PAPERS/SUGGESTIONS/VOLUNTEERS
		   Section on Statistical Graphics
		   American Statistical Association

The 1992 annual meeting of the American Statistical Association will
be held in Boston on August 10-13, 1992. The Section on Statistical
Graphics is assigned three invited paper sessions at this meeting.  I
am writing to ask you for your help in organizing these sessions.
What I need are

	Suggestions for talks or session topics you would like to hear
	or give.

	Suggestions or volunteers to organize sessions.

One idea that has been suggested is to have a session on "Graphical
Success Stories" -- examples of real analyses in which graphical
methods played a major part or provided key insights that were not
revealed by other means. For this session to work I need your help.
If you have an application you think would be appropriate and would
like to present, or if you know of such an application, please send me
a short tentative title and description of the problem and the role of
graphics in the analysis. If we get enough good submissions, we may
even be able to organize more than one session along these lines!

I know it is almost a year away, and it seems like the Atlanta meeting
just ended, but these things need to be organized a long time in
advance. So if you want to

	suggest a talk or topic

	volunteer as an organizer

	suggest an interesting application

please contact me as soon as possible, but no later than OCTOBER 7 1991.

Luke Tierney
Program Chair
Section on Statistical Graphics
American Statistical Association
luke@umnstat.stat.umn.edu

[My apologies if you get several copies of this -- I am sending it to
a number of mailing lists.]

From owner-SL-news  Sun Oct  6 14:24:33 1991
Resent-Date: Sun, 6 Oct 91 21:26:04 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <9110061924.AA10923@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 6 Oct 91 14:24:33 CDT
Received: from noppa.Helsinki.FI by umnstat.stat.umn.edu; Sun, 6 Oct 91 14:24:22 CDT
Received: by noppa.Helsinki.FI (4.1/SMI-4.1)
	id AA11581; Sun, 6 Oct 91 21:26:04 +0200
Date: Sun, 6 Oct 91 21:26:04 +0200
From: jpuranen@noppa.Helsinki.FI (Juha Puranen)
Message-Id: <9110061926.AA11581@noppa.Helsinki.FI>
To: stat-lisp-news
Subject: box-cox-rewgression
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: jpuranen@noppa.Helsinki.FI (Juha Puranen)
Status: OR

Here is a lisp program for to teach Box-Cox-transformation.

I am not an expert in lisp so the code is
not as efficient as it could be.

--------8<------------------------8<-------------------------
;; Dynamic Box-Cox-transformation in regression
;;
;; by
;;
;;    Juha Puranen
;;    Department of statistics
;;    University of Helsinki
;;    Aleksanterinkatu 7
;;    00100 Helsinki
;;
;;    jpuranen@noppa.helsinki.fi
::
;; Data taken from
;;
;;    Ezekiel M. & Fox K. A.
;;    Methods of Correlation and Regressio analysis
;;    John Wiley & Sons, New York, 1965.
;;
;;    Average Distance Required for Stopping after Signal,
;;    for Different Speeds.
;;
;;
;;       x = speed             (Miles per hour)
;;       y = distance to stop  (Feet)
;;

  (def x (list 4 5 5 5 5 7 7 8 8 8 8 9 9 9 10 10 10 12 12 12 13 13 13 14 14
  15 16 16 16 17 17 18 18 18 19 20 21 21 21 24 25 25 25 25 26 26 27 27
  28 28 29 29 30 30 30 31 35 35 36 39 40 40))

  (def y (list 4 2 4 8 8 7 7 8 9 11 13 5 5 13 8 14 17 11 19 21 15 18 27 14 16
  16 14 19 34 22 29 29 34 47 30 48 39 42 55 56 33 48 56 59 39 41 57 78
  64 84 54 68 60 67 101 77 85 107 79 138 110 134))

;; define a function to compute the Box-Cox transformation

(defun bc (x c p)
  (let* ((x (- x c))
	 (bcx (if (< (abs p) .0001)
                  (log x)
		  (/ (^ x p) p)))
         (min (min bcx))
         (max (max bcx)))
    (/ (- bcx min) (- max min))))

;; compute the normal quantiles of the expected uniform order statistics

(def z (normal-quant (/ (iseq 1 62) 63)))

;; Box-Cox-transformation for variable y

(def zy (bc y 0 1))

;;  scatterplot

(def myplot1 (plot-points x zy))

(send myplot1 :title "Scatterplot")
(send myplot1 :location 30 50 )    ; for SVGA  1024x768
(send myplot1  :size 350 450)      ; for SVGA
;(send myplot1 :location 30 50 )   ; for SUN
;(send myplot1 :size 400 650)      ; for SUN
;;  regression model
(def suora (regression-model x zy :print nil))
(def res (send suora :residuals))
(def coefs (send suora :coef-estimates))
(send myplot1 :clear-lines :draw nil)
(send myplot1 :abline (select coefs 0) (select coefs 1))

;; sorted residuals

;; construct an initial plot without transformation

(def myplot2 (plot-points x res))
(send myplot2 :title "Residual Plot")
(send myplot2 :range 1 -0.35 0.45)
(send myplot2 :location 390 380)     ; for SVGA
(send myplot2 :size 580 270)         ; for SVGA
;(send myplot2 :location  500 550 )  ; for SUN
;(send myplot2 :size 650 350)        ; for SUN

(def myplot3 (histogram res))
(send myplot3 :title "Histogramm")
(send myplot3 :location 390 50)      ; for SVGA
(send myplot3 :size 290 200)         ; for SVGA
;(send myplot3 :location 440 50 )    ; for SUN
;(send myplot3 :size 300 300)        ; for SUN

(send myplot3 :range 0 -0.35 0.45)
;; (send myplot3 :x-axis t t 4)
(def sres (sort res `<))
(def myplot4 (plot-points z sres))
(send myplot4 :title "Propability Plot")
(send myplot4 :location 680 50)     ; for SVGA
(send myplot4 :size 300 300)        ; for SVGA
;(send myplot4 :location 750 50 )     ; for SUN
;(send myplot4 :size 380 380)         ; for SUN

(send myplot4 :range 1 -.35 .45)

;;
;; construct a dialog for scrolling through powers and recomputing the
;; plot
;;

(setf liukuri
(interval-slider-dialog (list -1 2)
                        :title "Box-Cox-transformation"
                        :text "Power"
                        :points 60
                        :action #'(lambda (p)

                         (def zy (bc y 0 p ))
			 (def suora (regression-model x zy :print nil))

			 (def coefs (send suora :coef-estimates))
                         (def res (send suora  :residuals))

                         (send myplot1 :clear nil)
                         (send myplot1 :add-points x zy)
                         (send myplot1 :clear-lines :draw nil)
                         (send myplot1 :abline (select coefs 0) (select coefs 1))

                         (send myplot2 :clear nil)
			 (send myplot2 :add-points x res)
                         (send myplot2 :add-lines (kernel-smooth x res :type `g :width 10))

                         (send myplot3 :clear nil)
                         (send myplot3 :add-points res)

                         (def sres (sort res `<))
                         (send myplot4 :clear nil)
			 (send myplot4 :add-points z sres)
)))
(send liukuri :value 1)
; (send liukuri :location 470 420)  ;for SUN
(send liukuri :location 400 350) ; for SVGA
--------8<------------------------8<-------------------------

I hope You can use it.

Juha 

From owner-SL-news  Mon Oct  7 15:23:15 1991
Resent-Date: Mon, 07 Oct 91 16:18 EST
Resent-From: owner-SL-news
Resent-Message-Id: <9110072023.AA02420@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 7 Oct 91 15:23:15 CDT
Received: from vx.acs.umn.edu by umnstat.stat.umn.edu; Mon, 7 Oct 91 15:23:08 CDT
Received: from UNC.BITNET by vx.acs.umn.edu; Mon, 7 Oct 91 15:23 CDT
Date: Mon, 07 Oct 91 16:18 EST
From: "Forrest W. Young (919) 962-5038" <ULURU@UNC.BITNET>
Subject: unix menu bar
To: stat-lisp-news
Message-Id: <03BDBAA833BF410826@vx.acs.umn.edu>
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Forrest W. Young (919) 962-5038" <ULURU@UNC.BITNET>
Status: OR

i have just moved a lisp-stat program from my mac to my
dec 3100, and i now have a (dialog?) window titled
"menu bar" that has the menus that i have created in it.
how do i access that object?  does it have a name?
basically, i want to send messages to it to do things and
i don't know its name...  thanks for your help

From luke  Mon Oct  7 19:35:15 1991
Resent-Date: Mon, 7 Oct 91 19:35:07 CDT
Resent-Message-Id: <9110080035.AA03266@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 7 Oct 91 19:35:15 CDT
Date: Mon, 7 Oct 91 19:35:07 CDT
From: "Luke Tierney" <luke>
Message-Id: <9110080035.AA03258@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 7 Oct 91 19:35:07 CDT
To: stat-lisp-news
Subject: Minor update to XLISP-STAT for MS Windows
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

I have put a new version of xlispstat for MS Windows in the anonymous
ftp directory on umnstat.stat.umn.edu. This version, 2.1R3 Alpha 6,
incorporates a few minor modifications. The main ones are:

	Choosing Copy from the Edit menu when a graph is the
	front window copies a bitmap of the contents of the
	graph to the clipboard -- this emulates the behavior on
	the Macintosh.

	The amount of text retained by the listener window
	has been increased by about a factor of three.

	The listener has been modified to wrap long lines instead of
	providing a horizontal scroll bar.

	Printing routines have been replaced to work around a bug in
	the Borland libraries (try entering 0.888888888 in Alpha 5
	and see what it prints back!).

	Some problems with dynamic loading have been fixed.

Please let me know if you run into any problems.  As always, if your
current version works for you, you should save it before getting the
new version, just in case I managed to break something.

I have not updated the source code for the Windows version; I'll do
that with the next release.

luke


From luke  Tue Oct  8 08:26:21 1991
Resent-Date: Tue, 8 Oct 91 8:26:10 CDT
Resent-Message-Id: <9110081326.AA06243@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 8 Oct 91 08:26:21 CDT
From: "Luke Tierney" <luke>
Message-Id: <9110081326.AA06235@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 8 Oct 91 08:26:13 CDT
Subject: CL version of Lisp-Stat object system
To: stat-lisp-news
Date: Tue, 8 Oct 91 8:26:10 CDT
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

As a first step towards putting together a Common Lisp version of
Lisp-Stat, I have put together a CL implementation of the LS object
system. A copy is available for anonymous ftp from
umnstat.stat.umn.edu in pub/xlispstat/CL/lsobjects.lsp. It seems to
work under AKCL, Allegro CL and Mac CL (for Mac CL you need to add the
feature :CLtL2 before loading). In minimal testing under AKCL it seems
to be competitive with the xlispstat implementation. If you have a
chance to experiment with it, I would appreciate any
comments/suggestions/improvements.


luke


From owner-SL-news  Fri Oct 18 03:37:28 1991
Resent-Date: Fri, 18 Oct 91 10:32 SET
Resent-From: owner-SL-news
Resent-Message-Id: <9110180837.AA09219@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 18 Oct 91 03:37:28 CDT
Received: from vx.acs.umn.edu by umnstat.stat.umn.edu; Fri, 18 Oct 91 03:37:13 CDT
Received: from IFISTAT.BITNET by vx.acs.umn.edu; Fri, 18 Oct 91 03:39 CDT
Received: by IFISTAT (Mailer R2.07) id 0386; Fri, 18 Oct 91 10:35:09 SET
Date: Fri, 18 Oct 91 10:32 SET
From: MARCH@IFISTAT.BITNET
To: STAT-LISP-NEWS
Message-Id: <FB7B36275C5F80A797@vx.acs.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: MARCH@IFISTAT.BITNET
Status: OR

 
I would like to have my name added to the
stat-lisp-news mailing list. Thank you
 
Giovanni M Marchetti
Dipartimento Statistico
University of Florence
viale Morgagni, 59
50134 FIRENZE
Italy
march @ ifistat.bitnet

From owner-SL-news  Sat Oct 19 15:17:34 1991
Resent-Date: Sat, 19 Oct 91 16:14:57 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <9110192017.AA15608@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 19 Oct 91 15:17:34 CDT
Received: from corot.isds.duke.edu by umnstat.stat.umn.edu; Sat, 19 Oct 91 15:17:27 CDT
Received: by corot.isds.duke.edu (5.57/Ultrix3.0-C)
	id AA09769; Sat, 19 Oct 91 16:14:59 -0400
Message-Id: <9110192014.AA09769@corot.isds.duke.edu>
To: stat-lisp-news
Subject: dyn-load on decstation
Date: Sat, 19 Oct 91 16:14:57 -0400
From: pm@corot.isds.duke.edu
X-Mts: smtp
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pm@corot.isds.duke.edu
Status: OR


i tried to use "dyn-load" for a C function which requires a library
subroutine. obviously the required library subroutine was not compiled
with the ld option "-G 0". therefore "dyn-load" failed with a message
saying that the library function was not compiled with "-G 0" and will
therefore not work linking with "-A".

is there any way to solve this? any suggestion would be appreciated.

peter mueller
pm@isds.duke.edu


From owner-SL-news  Mon Oct 21 15:30:28 1991
Resent-Date: Mon, 21 Oct 91 16:16:49 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9110212030.AA24332@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 21 Oct 91 15:30:28 CDT
Received: from vx.acs.umn.edu by umnstat.stat.umn.edu; Mon, 21 Oct 91 15:30:22 CDT
Received: from NERVM.NERDC.UFL.EDU by vx.acs.umn.edu; Mon, 21 Oct 91 15:32 CDT
Received: from NERVM (FAZEKE) by NERVM.NERDC.UFL.EDU (Mailer R2.08) with BSMTP
 id 3671; Mon, 21 Oct 91 16:26:14 EDT
Date: Mon, 21 Oct 91 16:16:49 EDT
From: Mike Lambert <FAZEKE@NERVM.BITNET>
Subject: Stat-lisp-news subscribe
To: stat-lisp-news
Message-Id: <F8BC2D9CEA3F80C491@vx.acs.umn.edu>
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Mike Lambert <FAZEKE@NERVM.BITNET>
Status: OR

 
Please add my name to the news list.
 
While I'm here, does anybody have an insight on printing to an imagewriter with
xlisp-stat?  I am able to copy my graphics window to a file, but would rather
print it from lisp-stat than use a paint program. I'm using a Mac IIcx.
thanks for any help.
 
Mike Lambert
University of Florida
FAZEKE@NERVM (bitnet)  fazeke@nervm.nerdc.ufl.edu

From owner-SL-news  Wed Oct 23 07:41:04 1991
Resent-Date: Wed, 23 Oct 91 08:38:42 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <9110231241.AA02960@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 23 Oct 91 07:41:04 CDT
Received: from pilot.stat.ufl.edu by umnstat.stat.umn.edu; Wed, 23 Oct 91 07:40:56 CDT
Received:  by stat.ufl.edu (5.57/4.08)
	id AA14585; Wed, 23 Oct 91 08:38:42 -0400
Date: Wed, 23 Oct 91 08:38:42 -0400
From: Chuck Kincaid <statman@stat.ufl.edu>
Message-Id: <9110231238.AA14585@stat.ufl.edu>
To: stat-lisp-news
Subject: compiling xlispstat on the NeXT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Chuck Kincaid <statman@stat.ufl.edu>
Status: OR

Hello,
	I am trying to do what the subject line says.  I am a novice c++ 
user (getting better, though :-) and am stuck on some of the (seemingly) 
simple steps.  If anyone has installed xlispstat on their NeXT either 
within NeXTStep or X11 (I have both) then I would greatly appreciate any
hints or workarounds that you can offer.  I can summarize the replies and
the final solution to this list if there seems to be a lot of interest.

Thank you,

charles d. kincaid
statman@stat.ufl.edu     <-----  Non-NeXTmail  :-(

From owner-SL-news  Wed Oct 23 10:20:42 1991
Resent-Date: Wed, 23 Oct 91 11:13 EST
Resent-From: owner-SL-news
Resent-Message-Id: <9110231520.AA03566@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 23 Oct 91 10:20:42 CDT
Received: from vx.acs.umn.edu by umnstat.stat.umn.edu; Wed, 23 Oct 91 10:20:35 CDT
Received: from UNC.BITNET by vx.acs.umn.edu; Wed, 23 Oct 91 10:20 CDT
Date: Wed, 23 Oct 91 11:13 EST
From: "Forrest W. Young (919) 962-5038" <ULURU@UNC.BITNET>
Subject: printing
To: stat-lisp-news
Message-Id: <F7555EDE281F810CA8@vx.acs.umn.edu>
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Forrest W. Young (919) 962-5038" <ULURU@UNC.BITNET>
Status: OR

mike lambert wonders about printed output from lisp-stat...
so do I.  I know how to do it, but its pretty klugy.
(you save a text window to a file and print it, or you
do a screen dump of a graphics window).  i'm ok with the
screen dump, but not ok with not being able to directly
print text windows...does any one out there have code that
can create a PRINT menu item for the File menu on a Mac?
thats what we really need to make this mac-like.  and...
what about the Unix and MSWindows versions?

From owner-SL-news  Wed Oct 23 14:10:11 1991
Resent-Date: Wed, 23 Oct 91 15:00:08 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9110231910.AA04267@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 23 Oct 91 14:10:11 CDT
Received: from vx.acs.umn.edu by umnstat.stat.umn.edu; Wed, 23 Oct 91 14:09:57 CDT
Received: from ERENJ.BITNET by vx.acs.umn.edu; Wed, 23 Oct 91 14:12 CDT
Received: from ERENJ (JKTROXE) by ERENJ.BITNET (Mailer R2.07B) with BSMTP id
 9189; Wed, 23 Oct 91 15:04:49 EDT
Date: Wed, 23 Oct 91 15:00:08 EDT
From: John Troxell <JKTROXE@ERENJ.BITNET>
Subject: NeXT makefile
To: stat-lisp-news
Message-Id: <F7350F064C7F810CA8@vx.acs.umn.edu>
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: John Troxell <JKTROXE@ERENJ.BITNET>
Status: OR

 
 
Chuck Kincaid <statman@stat.ufl.edu> asks in his article (Subject:
compiling xlispstat on the NeXT):
 
>               If anyone has installed xlispstat on their NeXT either
>within NeXTStep or X11 (I have both) then I would greatly appreciate
>any hints or workarounds that you can offer.
 
It is pretty easy to compile xlispstat with X11 on the NeXT (after all,
even I managed it :-)  Mike Conlon scoped making it into a full-fledged
NeXT app but said it would be a lot of work.
 
I compiled it under both Mouse-X (free) and co-Xist (commercial)
versions of X for the NeXT (grayscale 040 slab, software release 2.0).
Attached is an article originally posted by Hal Varian on June 27
to comp.sys.next that contains a makefile and instructions that should
probably do the trick and that look cleaner than what I did.
I haven't tried this exact approach myself.
 
John K. Troxell
Exxon Research & Engineering Co.
jktroxe@erenj.bitnet
-----------------------------------------------------------------------
>From: hal@econ.lsa.umich.edu (Hal Varian)
>Newsgroups: comp.sys.next
>Subject: Statistics package for NeXT
>Keywords: statistics, xlispstat, X Windows
>Message-ID: <R5j#kj=@engin.umich.edu>
>Date: 27 Jun 91 16:01:13 GMT
>Article-I.D.: engin.R5j#kj=
>Organization: The University of Michigan, Ann Arbor
>Lines: 272
 
>A few days ago I posted a note about statistics packages for the
NeXT.  Here's some more information on xlispstat, including
instructions for compiling the X11 version.
 
The program xlispstat is a full-featured statistics package based on
xlisp available by ftp from umnstat.stat.umn.edu.  A tutorial is
available at the same location; the tutorial is for the Mac version,
but it applies to the unix version with a few minor changes.  Complete
documentation is available in Luke Tierney's book, Lisp-Stat, John
Wiley and Sons, 1990, ISBN 0-471-50916-7.
 
This package can be compiled for the NeXT with minor changes to the
Makefile.  There are two ways to do it.
 
X Windows.  This gives you access to the many graphics tools,
including spinplots, scatterplots, histograms, box plots, etc.
 
The attached Makefile will compile xlispstat using co-Xist libraries
for X Windows.  It assumes that you have installed co-Xist and
xlispstat in the default location.  I'm told that it also compiles
with mouseX, but haven't checked this myself.
 
Generic unix.  This way you have all the computational tools, but only
minimal graphics capability.  In order to compile this version, change
the GRAPHSYS flag from X11WINDOWS to GNUPLOT in the Makefile.
 
In the generic version, xlispstat produces Tektronics output for a few
simple types of plots.  You can cut and paste this output into a file
and run it through ps4014 to view the output on the NeXT.  To do this,
use the ps4014 emulator in the extended distribution:
   ps4014 -R -S 7 < infile.tek > outfile.ps
The resulting ps file can be viewed using Preview.  You can also run
it through Darcy Brockbank's program ps2eps (posted here a few weeks
ago) and produce an eps file that can inserted into documents, etc.
 
--
Hal Varian                Internet: Hal_Varian@um.cc.umich.edu
Dept of Economics         BITNET: userCABX@umichum
Univ of Michigan          NeXTmail: hal@alfred.econ.lsa.umich.edu
Ann Arbor, MI 48109       313-764-2364
 
------------------------------cut here----------------------------------
#Makefile for xlispstat
#Minor modifications by Hal Varian (HRV) for NeXT
 
##############################################################################
# Directories
# XLISPLIB is where the xlisp executable, the .lsp files to be loaded on
# startup and the examples are to be kept.
# BINDIR is where the xlispstat shell script is to be put.
#
# NOTE: if XLISPLIB is not empty it MUST end with a /
 
XLISPLIB=/usr/local/lib/xlispstat/
BINDIR=/usr/local/bin
 
##############################################################################
##############################################################################
# HRV: Graphics system. Uncomment one of the following choices:
# HRV: use GNUPLOT if you don't have Xwindows
 
#GRAPHSYS = GNUPLOT
#GRAPHSYS = SUNVIEW
GRAPHSYS = X11WINDOWS
 
##############################################################################
##############################################################################
# Sun Operating System Version. Only used for SUNVIEW graphics system.
# Use SUN3X for sun OS 3.X and SUN4X for sun OS 4.X under SunView;
 
#SUNOS = SUN3X
#SUNOS = SUN4X
 
##############################################################################
##############################################################################
# User Compiler Flags
# Add a -I directive if the X11 include files are not in a standard place
# For Sun's OpenLook, for example, add -I/usr/openwin/include
 
#UCFLAGS = -O -f68881
#ULDFLAGS = -f68881
#HRV: eliminate 68881 option; add= -D flag to avoid link conflict
UCFLAGS = -O -v -Draise=rraise
ULDFLAGS =
 
CC=cc
LD=ld
 
##############################################################################
##############################################################################
# Foreign function call flag. If this flag is defined you should also
# define a machine chosen from one of the directories in the machines
# directory. Look at the README file in the machine directory for your
# machine - you may have to add some additional compiler or ld flags
# to make dynamic loading work.
#
# If you do not want to use foreign function calling define the machine
# as `generic'
 
#FOREIGN_FLAG = -DFOREIGNCALL
#MACHINE = sun3
#HRV: use generic machine
MACHINE = generic
 
##############################################################################
##############################################################################
# Additional libraries and files to load at compile time
 
EXTRALIBS=
EXTRAOBJS=
 
##############################################################################
##############################################################################
# Directory to search for X11 libraries (libX11.a, etc.)
 
#HRV: this is where co-Xist puts the X11 libraries
X11LIBDIR=/usr/include/X11
 
###############################################################################
###############################################################################
###                                                                         ###
###                      DO NOT EDIT BELOW THIS LINE                        ###
###                                                                         ###
###############################################################################
###############################################################################
 
CFLAGS = -DUNIX -D${GRAPHSYS} ${UCFLAGS} ${FOREIGN_FLAG}
LIBS = ${EXTRALIBS} -lm
LDFLAGS = ${ULDFLAGS}
 
OSOBJS = xsdynload.o xssystem.o
 
XLISPOBJS = xlbfun.o xlcont.o xldbug.o xldmem.o \
        xleval.o xlfio.o xlftab.o xlglob.o xlimage.o xlinit.o xlio.o \
        xlisp.o xljump.o xllist.o xlpp.o xlprin.o \
        xlread.o xlstr.o xlsubr.o xlsym.o xlsys.o xlstruct.o
 
COMMONOBJS = common.o commonarrays.o commonmath.o complex.o
 
STATOBJS = basics.o compound.o distribs.o ddistribs.o \
        hardwareobs.o matrices1.o matrices2.o math.o objectinit.o \
        objects.o optimize.o statfloat.o sortdata.o statinit.o \
        statistics.o uni.o utilities.o utilities2.o gamln.o splines.o \
        kernel.o lowess.o cfft.o
 
DISTOBJS = betabase.o gammabase.o nor.o ppnd.o studentbase.o bivnor.o
 
LINALGOBJS = linalg.o cholesky.o ludecomp.o qrdecomp.o rcondest.o svdecomp.o \
         makerotation.o
 
GRAFOBJS = xsiview2.o xsiviewintrn.o xsnewplots.o \
        xsgraphics.o xsiview3.o xsiviewwin.o xsiview.o \
        xsiviewwin2.o menus.o dialogs.o iviewdata.o iviewscale.o iview.o \
        iviewintrn.o xshistogram.o xsnamelist.o xsscatmat.o xsspin.o \
        xsscatterpl.o windows.o stmem.o graphics.o myplot.o term.o \
        postscript.o
 
BAYESOBJS = minimize.o functions.o derivatives.o xsbayes.o
 
 
BASICOBJS = ${OSOBJS} ${XLISPOBJS} ${COMMONOBJS} ${STATOBJS} ${DISTOBJS} \
        ${LINALGOBJS} ${GRAFOBJS} ${BAYESOBJS}
 
OBJS = ${BASICOBJS} ${EXTRAOBJS}
 
GNUPLOTOBJS = unixstuff.o dummygraph.o
 
SUNOBJS = sunstuff.o sungraphwin.o sunresizebr.o sunwindows.o \
        sundialogs.o sunmenus.o
 
X11WINDOWSOBJS = X11BSDstuff.o X11graph.o X11menus.o X11dialogs.o \
        X11buttons.o X11text.o X11toggle.o X11choice.o X11slider.o \
        X11listitem.o X11resizebr.o X11scroll.o
 
LISPFILES = init.lsp common.lsp help.lsp objects.lsp statistics.lsp \
        dialogs.lsp graphics.lsp graphics2.lsp graphics3.lsp regression.lsp \
        oneway.lsp nonlin.lsp maximize.lsp bayes.lsp step.lsp autoload.lsp \
        menubar.lsp xlisp.help
 
 
xlispstat: Makefile xlisp setup.shell
        ./setup.shell xlispstat ${XLISPLIB}
        chmod a+x xlispstat
 
install: installexecs installlisp
 
installexecs: xlispstat xlisp
        cp xlispstat ${BINDIR}
        cp xlisp ${XLISPLIB}
 
installlisp:
        cp ${LISPFILES} ${XLISPLIB}
        -mkdir ${XLISPLIB}/Data
        -mkdir ${XLISPLIB}/Examples
        cp Data/* ${XLISPLIB}/Data
        cp Examples/* ${XLISPLIB}/Examples
 
 
installX11sun: X11sun installlisp
        cp xlispstat ${BINDIR}
        cp sunxlisp X11xlisp ${XLISPLIB}
 
xlisp:  ${GRAPHSYS}xlisp
 
GNUPLOTxlisp:   ${OBJS} ${GNUPLOTOBJS}
        ${CC} ${LDFLAGS} -o xlisp ${OBJS} ${GNUPLOTOBJS} ${LIBS}
        touch GNUPLOTxlisp
 
SUNVIEWxlisp:   ${OBJS} ${SUNOBJS}
        ${CC} ${LDFLAGS} -o xlisp ${OBJS} ${SUNOBJS} \
        -lsuntool -lsunwindow -lpixrect ${LIBS}
        touch SUNVIEWxlisp
 
X11WINDOWSxlisp:        ${OBJS} ${X11WINDOWSOBJS}
        ${CC} ${LDFLAGS} -o xlisp ${OBJS} ${X11WINDOWSOBJS} \
        -L${X11LIBDIR} -lX11 ${LIBS}
        touch X11WINDOWSxlisp
 
X11sun: sun X11
        setup.shell xlispstat ${XLISPLIB} both
        chmod a+x xlispstat
 
sun:
        touch Makefile
        make xlisp GRAPHSYS=SUNVIEW
        mv xlisp sunxlisp
 
X11:
        touch Makefile
        make xlisp GRAPHSYS=X11WINDOWS
        mv xlisp X11xlisp
 
clean:
        rm -f core *.o *~
 
cleanall: clean
        rm -f xlisp sunxlisp X11xlisp xlispstat
 
 
# More dependencies are needed here
sunwindows.o: sunwindows.c xlisp.h windows.h
sungraphwin.o: sungraphwin.c StGWWindow.h stmem.h
sundialogs.o: sundialogs.c xlisp.h dialogs.h
 
sunstuff.o: sunstuff.c xlisp.h version.h
        ${CC} -c ${CFLAGS} -D${SUNOS} sunstuff.c
 
unixstuff.o: unixstuff.c xlisp.h version.h Makefile
graphics.o: graphics.c gnuplot.h xlisp.h
myplot.o: myplot.c gnuplot.h xlisp.h
term.o: term.c gnuplot.h xlisp.h
 
X11graph.o: X11graph.c xlisp.h StGWWindow.h StX11options.h
X11BSDstuff.o: X11BSDstuff.c xlisp.h version.h
X11dialogs.o: X11dialogs.c xlisp.h dialogs.h
X11buttons.o: X11buttons.c xlisp.h dialogs.h
X11text.o: X11text.c xlisp.h dialogs.h
X11toggle.o: X11toggle.c xlisp.h dialogs.h
X11choice.o: X11choice.c xlisp.h dialogs.h
X11slider.o: X11slider.c xlisp.h dialogs.h
X11listitem.o: X11listitem.c xlisp.h dialogs.h
 
xlisp.h: xldmem.h
xlisp.o: xlisp.c xlisp.h Makefile
xlftab.o: xlftab.c osdefs.h osptrs.h Makefile
statinit.o: statinit.c Makefile
iviewdata.o: iviewdata.c xlisp.h StGWWindow.h stmem.h
objectinit.o: objectinit.c xlisp.h Makefile
xsdynload.o: xsdynload.c xlisp.h foreign.h Makefile
 
foreign.h: machines/${MACHINE}/foreign.h Makefile
        cp machines/${MACHINE}/foreign.h .

From owner-SL-news  Thu Oct 24 11:15:10 1991
Resent-Date: Thu, 24 Oct 91 11:05:58 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <9110241615.AA08610@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 24 Oct 91 11:15:10 CDT
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Thu, 24 Oct 91 11:15:00 CDT
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA07250; Thu, 24 Oct 91 12:12:32 -0400
Received: from arris.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 121104.22093; Thu, 24 Oct 1991 12:11:04 EDT
Received: from dorcas.arris.com by arris.com (4.1/SMI-4.0)
	id AA08040; Thu, 24 Oct 91 11:05:58 EDT
Date: Thu, 24 Oct 91 11:05:58 EDT
From: rshapiro@arris.com (Richard Shapiro)
Message-Id: <9110241505.AA08040@arris.com>
Received: by dorcas.arris.com (4.1/SMI-4.1)
	id AA00326; Thu, 24 Oct 91 11:08:24 EDT
To: stat-lisp-news
Subject: handling missing values
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: rshapiro@arris.com (Richard Shapiro)
Status: OR

How does lisp-stat handle missing data? I'm looking for something
equivalent to the NA value in S. I can't seem to find anything like
this in the book. One obvious choice, NIL, makes xlispstat choke.
Surely lisp-stat provides this essential functionality in some way... 

rshapiro@arris.com

From luke  Wed Oct 30 08:41:50 1991
Resent-Date: Wed, 30 Oct 91 08:41:43 CST
Resent-Message-Id: <9110301441.AA23362@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 30 Oct 91 08:41:50 CST
Date: Wed, 30 Oct 91 08:41:43 CST
From: "Luke Tierney" <luke>
Message-Id: <9110301441.AA23357@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 30 Oct 91 08:41:43 CST
To: stat-lisp-news
Subject: Non-graphics Common Lisp version of Lisp-Stat
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

I have put the source code for a preliminary non-graphics Common Lisp
version of Lisp-Stat in pub/xlispstat/CL/CLS1.0A1.tar.Z for anonymous
ftp from umnstat.stat.umn.edu.

Three CL's are supported: AKCL, Allegro and Macintosh CL. Porting to
another CL should be fairly simple -- mainly it involves adapting the
interface to the C code to the CL's foreign function interface. The
AKCL and Allegro versions seem fairly stable; the Macintosh version is
rather flakey at least for the amount of memory I have available.

If you try out this code and have any comments or suggestions, please
let me know.



luke

From owner-SL-news  Sun Nov  3 11:09:25 1991
Resent-Date: Sun, 3 Nov 91 12:02:06 EST
Resent-From: owner-SL-news
Resent-Message-Id: <9111031709.AA12370@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 3 Nov 91 11:09:25 CST
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Sun, 3 Nov 91 11:09:16 CST
Received: from neptune.fsu.edu (neptune.stat.fsu.edu) by stat.fsu.edu (4.1/25-eef)
	id AA19180; Sun, 3 Nov 91 12:02:06 EST
Date: Sun, 3 Nov 91 12:02:06 EST
From: Shau-Ming Wu <wu@stat.fsu.edu>
Message-Id: <9111031702.AA19180@stat.fsu.edu>
To: stat-lisp-news
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Shau-Ming Wu <wu@stat.fsu.edu>
Status: OR

;;;;
;;;; I need a gamma random number which is greater than a.
;;;; However, none of the following functions works.
;;;; Please give me help.    
;;;; S.M. Wu ,Deaprtment of Statistics, Florida State University, Tallahassee,
;;;;         FL 32306
;;;; wu@stat.fsu.edu
;;;;

(defun cond-exp-rand (a)
        (do ((x (gamma-rand 1 1)  (gamma-rand 1 1))
            )
          ((> x a) x)
        )
)

> (COND-EXP-RAND 2)
(0.644391) ;;; Why is the output is sent with ( )? 

> (COND-EXP-RAND 2)
(3.13239) ;;; Why is the output is sent with ( )?

;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;
;; An experimental function.
;;

(defun cond-exp-rand (a)
        (do ((x (gamma-rand 1 1)  (+ 1 x))
            )
          ((> x a) x)
        )
)


> (COND-EXP-RAND 2)
(2.91729) ;;; Why is the output is sent with ( )?

> (COND-EXP-RAND 2)
(0.0277206) ;;; Why is the output is sent with ( )?

;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;; However, this function seems OK in syntax.
;;

(defun cond-exp-rand (a)
        (do ((x 1  (+ 1 x))
            )
          ((> x a) x)
        )
)


> (COND-EXP-RAND 2.5)
3

>  (COND-EXP-RAND 9)
10


;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;
;;Recursive one doesn't work, either.
;; 

(defun cond-exp-rand (a)
     (setf x (gamma-rand 1 1))
;;;(break)
          (if (>= x a)
              x
              (cond-exp-rand a)
          )
;;;(break)
)

> (COND-EXP-RAND 2)
(1.81516) ;;; Why is the output is sent with ( )?

> (COND-EXP-RAND 2)
(2.32997) ;;; Why is the output is sent with ( )?




From owner-SL-news  Fri Nov  8 20:57:52 1991
Resent-Date: Fri, 8 Nov 91 18:56:19 PST
Resent-From: owner-SL-news
Resent-Message-Id: <9111090257.AA20573@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 8 Nov 91 20:57:52 CST
Received: from bert.stat.washington.edu by umnstat.stat.umn.edu; Fri, 8 Nov 91 20:57:44 CST
Received: by bert.stat.washington.edu
	(4.1/UW-NDC Revision: 2.13 ) id AA05220; Fri, 8 Nov 91 18:56:19 PST
Date: Fri, 8 Nov 91 18:56:19 PST
From: Steve McKinney <kilroy@stat.washington.edu>
Message-Id: <9111090256.AA05220@bert.stat.washington.edu>
To: stat-lisp-news
Subject: Lisp-Stat and S
Cc: kilroy@biostat.washington.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Steve McKinney <kilroy@stat.washington.edu>
Status: OR


I acquired some code from Wayne Olford of U. Waterloo which allows
users of any Common Lisp to access S functions.

I have modified these Common Lisp routines into Xlisp routines, so
users of Lisp-Stat can pass lisp data variables off to a background
S process, manipulate the data in S and then retrieve the results
back into lisp variables.  This adds a considerable array of number
crunching routines to the Lisp-Stat repertoire without tying into
yet another fortran library.

Should I send these routines off to some central location at U Minnesota
so that they may be generally accessed?

For now, contact me
kilroy@biostat.washington.edu
for more info.



        \`|'/
        (. .)
   ---uuu-U-uuu---
   kilroy was here


From owner-SL-news  Sat Nov  9 05:45:51 1991
Resent-Date: Sat, 9 Nov 91 13:46:33 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <9111091145.AA22097@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 9 Nov 91 05:45:51 CST
Received: from noppa.Helsinki.FI by umnstat.stat.umn.edu; Sat, 9 Nov 91 05:45:37 CST
Received: by noppa.Helsinki.FI (4.1/SMI-4.1)
	id AA06332; Sat, 9 Nov 91 13:46:33 +0200
Date: Sat, 9 Nov 91 13:46:33 +0200
From: jpuranen@noppa.Helsinki.FI (Juha Puranen)
Message-Id: <9111091146.AA06332@noppa.Helsinki.FI>
To: stat-lisp-news
Subject: ndf.lsp
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: jpuranen@noppa.Helsinki.FI (Juha Puranen)
Status: OR

I am trying to visualize, how the form of distribution
depends on the parameters.  I do it as follows:

(I am a beginner in programming lisp, so the code is
not very elegant. Sometimes, when I try to give a negative
value for std, the program will change the range 0 in myplot2
to the same what it is in myplot1. I don't know why.
I am using XLS for Microsoft Windows 3.0 Version 2.1
Alpha 6)

---8<----------------8<--------------------8<-----------
;; starting values
(setq mean 0)
(setq std 1)
(def m1 (cons mean nil))
(def s1 (cons std nil))

(def x (rseq (- 10) 10 100))

(defun ndf(x m s)
	( / (exp (/ (* (- .5) (- x  m)
	      (- x m))  s))
		  (sqrt ( *  2 pi s) )))

(def y (ndf x mean std))

(def myplot1 (plot-lines x y))

;; construct the plots

(send myplot1 :title "Normal distribution")
;; (send myplot1 :location 30 50 )     for SVGA
;; (send myplot1 :size 950 300)        for SVGA
    (send myplot1 :location 15 20 )  ; for vga
    (send myplot1 :size 600 160 )    ; for vga
(send myplot1 :range 0 -10.0 10.0)
(send myplot1 :range 1  0.0 .7)
(def myplot2  (plot-points m1 s1))
;;(send myplot2 :location 250 400 )    ; for SVGA
;;(send myplot2 :size 515 200)         ; for SVGA
(send myplot2 :location 148 205 )    ; for VGA
(send myplot2 :size 340 150)         ; for VGA

(send myplot2 :title "Parameter space")
(send myplot2 :range 0 -5.0 5.0)
(send myplot2 :range 1  0.1 3.0)


;; add a new "mouse mode", with menu title,
;; cusror and mouse method name

(send myplot2 :add-mouse-mode 'point-moving
      :title "Point Moving"
      :cursor 'finger
      :click :do-point-moving)

;; add the new mouse method

(defmeth myplot2 :do-point-moving (mean std a b)
  (let ((p (send self :drag-point mean std :draw nil)))
       (if p (send self :update-picture))))

;; plot densityfunction

  (defmeth myplot2 :update-picture ()
     (send self :adjust-screen)
     (send self :redraw-content)
      (setq mean (send self :point-coordinate 0 0 ))
      (setq std (send self :point-coordinate 1 0 ))
      (cond ((> std 0) std )
	     ( t (setq std 0.1)
	       (rplaca s1 std)
	       (rplaca m1 mean)
	       (send myplot2 :clear nil)
	       (send self :add-points m1 s1)
	       (send self :show-all-points)
;;             (send self :redraw-content)
;;             (send self :point-showing mean std t)
	     ))
      (setq y (ndf x mean std))
      (send myplot1 :clear nil)
      (send myplot1 :add-lines x y)
      )

;; put the plot in "point moving" mode
(send myplot2 :mouse-mode 'point-moving)

---------8<-------------8<--------------8<--------------------

I have made same kind of programs also for other distributions,
but how I can put them together?

What is the most elegant way to use menu for to change the
distribution function?


Juha Puranen
University of Helsinki
Department of statistics






From owner-SL-news  Tue Nov 12 02:25:41 1991
Resent-Date: Sat, 9 Nov 91 10:51:17 +0100
Resent-From: owner-SL-news
Resent-Message-Id: <9111120825.AA06258@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 12 Nov 91 02:25:41 CST
Received: from [141.250.1.50] by umnstat.stat.umn.edu; Tue, 12 Nov 91 02:25:25 CST
Received: by ipgaix.unipg.it (5.61-AIX-1.2/1.0)
	id AA304539 (for stat-lisp-news@umnstat.stat.umn.edu, from glm/glm); Sat, 9 Nov 91 10:51:17 +0100
Date: Sat, 9 Nov 91 10:51:17 +0100
From: glm@ipgaix.unipg.it (Gianfranco Galmacci)
Message-Id: <9111090951.AA304539@ipgaix.unipg.it>
To: kilroy%stat.washington.edu@IPGUNIV.unipg.it, stat-lisp-news
Subject: Re:  Lisp-Stat and S
Cc: kilroy@biostat.washington.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: glm@ipgaix.unipg.it (Gianfranco Galmacci)
Status: OR



From luke  Fri Nov 15 10:45:41 1991
Resent-Date: Fri, 15 Nov 91 10:45:34 CST
Resent-Message-Id: <9111151645.AA21976@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 15 Nov 91 10:45:41 CST
Date: Fri, 15 Nov 91 10:45:34 CST
From: "Luke Tierney" <luke>
Message-Id: <9111151645.AA21971@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 15 Nov 91 10:45:34 CST
To: stat-lisp-news
Subject: New MS WIndows version of xlispstat (Alpha 7)
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR


A new MS Windows version of xlispstat, 2.1R3 Alpha 7, has been placed
in the anonymous ftp directory on umnstat. This version incorporates a
couple of bug fixes and a minor change:

	Mouse click and while-button-down actions would fail to detect
	the mouse release if the action popped up a new window, e.g. a
	dialog.  This could cause the system to hang. This bug occurs
	when using some of Dennis Cook & Sandy Weisberg's dynamic
	diagnostic tools. This bug should now be fixed.

	Checks for control-C interrupts have been added to event
	handlers to allow interrupts out of dialog loops.

	Dashed lines have been changed to use another Windows line
	drawing mode that seems to look a bit better (PS_DOT instead
	of PS_DASH)

luke

From owner-SL-news  Mon Dec 16 21:23:05 1991
Resent-Date: Mon, 16 Dec 91 11:58:25 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <9112170323.AA04194@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 16 Dec 91 21:23:05 CST
Received: from PO5.ANDREW.CMU.EDU by umnstat.stat.umn.edu; Mon, 16 Dec 91 21:22:55 CST
Received: by po5.andrew.cmu.edu (5.54/3.15) id <AA18588> for stat-lisp-news@umnstat.stat.umn.edu; Mon, 16 Dec 91 22:18:07 EST
Received: via switchmail; Mon, 16 Dec 1991 22:18:05 -0500 (EST)
Received: from po2.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/service/mailqs/q002/QF.gdHKlau00jZd81dFBC>;
          Mon, 16 Dec 1991 22:18:01 -0500 (EST)
Received: from MONACA.MACH.CS.CMU.EDU via qmail
          ID </afs/andrew.cmu.edu/usr13/st0u/.Outgoing/QF.cdHBgm600W0CIS4kZA>;
          Mon, 16 Dec 91 11:58:26 -0500 (EST)
Received: from Messages.7.8.N.CUILIB.3.45.SNAP.NOT.LINKED.MONACA.MACH.CS.CMU.EDU.rt.r3
          via MS.5.6.MONACA.MACH.CS.CMU.EDU.rt_r3;
          Mon, 16 Dec 91 11:58:25 -0500 (EST)
Message-Id: <sdHBglu00W0CQS4kRC@andrew.cmu.edu>
Date: Mon, 16 Dec 91 11:58:25 -0500 (EST)
From: Serge Taylor <st0u+@andrew.cmu.edu>
To: stat-lisp-news
Subject: Xlisp manual?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Serge Taylor <st0u+@andrew.cmu.edu>
Status: OR

Does anyone know where I can get a manual for Xlisp, 2.1,
preferrable a ftp-able source of a .ps file that I can print out on
a postscript printer?

Thanks,
Serge Taylor

From owner-SL-news  Thu Dec 19 21:10:12 1991
Resent-Date: Thu, 19 Dec 91 19:04:57 -0800
Resent-From: owner-SL-news
Resent-Message-Id: <9112200310.AA24749@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 19 Dec 91 21:10:12 CST
Received: from hplms2.hpl.hp.com by umnstat.stat.umn.edu; Thu, 19 Dec 91 21:10:04 CST
Received: from hplnpm.hpl.hp.com by hplms2.hpl.hp.com with SMTP
	(16.5/15.5+IOS 3.20) id AA13524; Thu, 19 Dec 91 19:05:19 -0800
Received: from localhost by hplnpm.hpl.hp.com with SMTP
	(15.11.1.3/15.5+IOS 3.14) id AA00516; Thu, 19 Dec 91 19:04:58 pst
To: stat-lisp-news
Subject: Re: Xlisp manual?
Organization: Hewlett-Packard Labs, Software & Systems Lab, Palo Alto, CA.
X-Mailer: mh6.7
Date: Thu, 19 Dec 91 19:04:57 -0800
Message-Id: <514.693198297@hplnpm.hpl.hp.com>
From: "Niels P. Mayer" <mayer@hplnpm.hpl.hp.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Niels P. Mayer" <mayer@hplnpm.hpl.hp.com>
Status: OR

> Does anyone know where I can get a manual for Xlisp, 2.1,
> preferrable a ftp-able source of a .ps file that I can print out on
> a postscript printer?

I include Betz's xlisp 2.1 manual, Mikkelsen's "Xlisp 2.0 reference
guide", Mikkelsen's "Xlisp Object Primer", and Prothero's "Xlisp internals"
document with my WINTERP OSF/Motif Widget INTERPreter (which is based on
a modified xlisp 2.1).

These are all "plain text" files that come out ok-looking on a printer:
-r--r--r--   1 mayer    users      43388 Oct  6 07:04 XlispImpl.doc
-r--r--r--   1 mayer    users      23691 Oct  6 07:12 XlispOOP.doc
-r--r--r--   1 mayer    users     414134 Oct  6 07:14 XlispRef.doc
-r--r--r--   1 mayer    users      90232 Oct  6 07:20 xlisp.doc

You can get the latest public release (WINTERP version 1.13) off of the MIT
X11r5 contrib tape, or via anonymous ftp from export.lcs.mit.edu, directory
contrib/winterp, file winterp-1.13.tar.Z (remember to retrieve in binary
mode).

After doing
	'zcat winterp-1.13.tar.Z | tar xvf -'
you'll find the documentation under directory winterp-1.13/doc/

-------------------------------------------------------------------------------
            Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com
                  Human-Computer Interaction Department
                       Hewlett-Packard Laboratories
                              Palo Alto, CA.
                                   *

From owner-SL-news  Wed Feb  5 09:41:51 1992
Resent-Date: Wed, 5 Feb 92 10:42:00 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <9202051541.AA24587@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 5 Feb 92 09:41:51 -0600
Received: by umnstat.stat.umn.edu; Wed, 5 Feb 92 09:41:39 -0600
Received:  by stat.ufl.edu (5.57/4.08)
	id AA09143; Wed, 5 Feb 92 10:42:00 -0500
Date: Wed, 5 Feb 92 10:42:00 -0500
From: Mike Conlon <mconlon@stat.ufl.edu>
Message-Id: <9202051542.AA09143@stat.ufl.edu>
To: stat-lisp-news@umnstat
Subject: Changing fonts
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Mike Conlon <mconlon@stat.ufl.edu>
Status: OR


Are there app-defaults for XlispStat in an X11 environment?
I would like to be able to change fonts in some situations,
but I haven't found anyway to do it.

Mike Conlon
Department of Statistics
University of Florida

From owner-SL-news  Thu Feb  6 07:57:36 1992
Resent-Date: Thu, 6 Feb 92 7:56:58 CST
Resent-From: owner-SL-news
Resent-Message-Id: <9202061357.AA11436@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 6 Feb 92 07:57:36 -0600
From: "Luke Tierney" <luke>
Message-Id: <9202061356.AA11429@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 6 Feb 92 07:56:59 -0600
Subject: Re: Changing fonts
To: mconlon@stat.ufl.edu, stat-lisp-news@umnstat
Date: Thu, 6 Feb 92 7:56:58 CST
In-Reply-To: <9202051542.AA09143@stat.ufl.edu>; from "Mike Conlon" at Feb 5, 92 10:42 am
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

> 
> 
> Are there app-defaults for XlispStat in an X11 environment?
> I would like to be able to change fonts in some situations,
> but I haven't found anyway to do it.
> 
> Mike Conlon
> Department of Statistics
> University of Florida
> 

In principle you are supposed to ba eble to change menu, dialog and
graphics fonts using X resources; for example, a resource

xlisp*menu*font: fixed

should change the menu font to "fixed". The way I implemented this
seems to work on R3 servers but not R4 or later. This is on the list
of things to be fixed (should not be too hard, just have to get around
to it :-))

luke


From owner-SL-news  Mon Feb 10 15:49:04 1992
Resent-Date: Mon, 10 Feb 92 15:49:01 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9202102149.AA14822@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 10 Feb 92 15:49:04 -0600
Date: Mon, 10 Feb 92 15:49:01 -0600
From: "Luke Tierney" <luke>
Message-Id: <9202102149.AA14815@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 10 Feb 92 15:49:01 -0600
To: stat-lisp-news
Subject: a test
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR



From owner-SL-news  Wed Feb 19 10:09:10 1992
Resent-Date: Wed, 19 Feb 92 10:09:07 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9202191609.AA21463@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 10:09:10 -0600
Date: Wed, 19 Feb 92 10:09:07 -0600
From: "Luke Tierney" <luke>
Message-Id: <9202191609.AA21458@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 10:09:07 -0600
To: stat-lisp-news
Subject: testing 1
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

Recently umnstat has undergone an identity change. Most things moved
fine, but unfortunately there have been some problems with the mailer.
In particular, this mailing list seems to be broken. To help track the
problem, I will have to send a few test messages to this list. I will
try to keep the number of these messages to a minimum; I apologize for
the inconvenience.

luke

This is test 1


From owner-SL-news  Wed Feb 19 11:28:04 1992
Resent-Date: Wed, 19 Feb 92 11:28:02 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9202191728.AA15907@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 11:28:04 -0600
Date: Wed, 19 Feb 92 11:28:02 -0600
From: "Luke Tierney" <luke>
Message-Id: <9202191728.AA15902@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 11:28:02 -0600
To: stat-lisp-news
Subject: testing 2
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

Recently umnstat has undergone an identity change. Most things moved
fine, but unfortunately there have been some problems with the mailer.
In particular, this mailing list seems to be broken. To help track the
problem, I will have to send a few test messages to this list. I will
try to keep the number of these messages to a minimum; I apologize for
the inconvenience.

luke

This is test 2


From owner-SL-news  Wed Feb 19 11:35:28 1992
Resent-Date: Wed, 19 Feb 92 11:35:26 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9202191735.AA15941@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 11:35:28 -0600
Date: Wed, 19 Feb 92 11:35:26 -0600
From: "Luke Tierney" <luke>
Message-Id: <9202191735.AA15936@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 11:35:26 -0600
To: stat-lisp-news
Subject: testing 3
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

Recently umnstat has undergone an identity change. Most things moved
fine, but unfortunately there have been some problems with the mailer.
In particular, this mailing list seems to be broken. To help track the
problem, I will have to send a few test messages to this list. I will
try to keep the number of these messages to a minimum; I apologize for
the inconvenience.

luke

This is test 3


From owner-SL-news  Wed Feb 19 11:56:12 1992
Resent-Date: Wed, 19 Feb 92 11:56:10 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9202191756.AA16060@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 11:56:12 -0600
Date: Wed, 19 Feb 92 11:56:10 -0600
From: "System PRIVILEGED Account" <root>
Message-Id: <9202191756.AA16055@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 11:56:10 -0600
Apparently-To: stat-lisp-news
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "System PRIVILEGED Account" <root>
Status: OR

Recently umnstat has undergone an identity change. Most things moved
fine, but unfortunately there have been some problems with the mailer.
In particular, this mailing list seems to be broken. To help track the
problem, I will have to send a few test messages to this list. I will
try to keep the number of these messages to a minimum; I apologize for
the inconvenience.

luke

This is test 4


From luke  Wed Feb 19 13:58:41 1992
Resent-Date: Wed, 19 Feb 92 13:58:39 -0600
Resent-Message-Id: <9202191958.AA16375@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 13:58:41 -0600
Date: Wed, 19 Feb 92 13:58:39 -0600
From: "Luke Tierney" <luke>
Message-Id: <9202191958.AA16370@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Feb 92 13:58:39 -0600
To: stat-lisp-news
Subject: test 5
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>
Status: OR

Recently umnstat has undergone an identity change. Most things moved
fine, but unfortunately there have been some problems with the mailer.
In particular, this mailing list seems to be broken. To help track the
problem, I will have to send a few test messages to this list. I will
try to keep the number of these messages to a minimum; I apologize for
the inconvenience.

luke

This is test 5


From owner-SL-news  Wed Feb 26 10:27:04 1992
Resent-Date: Wed, 26 Feb 92 11:30:10 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <9202261627.AA16698@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 26 Feb 92 10:27:04 -0600
Received: by umnstat.stat.umn.edu; Wed, 26 Feb 92 10:26:57 -0600
Received: from frosty.Princeton.EDU by Princeton.EDU (5.65b/2.86/princeton)
	id AA04738; Wed, 26 Feb 92 11:26:49 -0500
Received: by frosty.Princeton.EDU (911016.SGI/1.111)
	id AA04149; Wed, 26 Feb 92 11:30:10 -0500
Date: Wed, 26 Feb 92 11:30:10 -0500
From: "Richard D. De Veaux" <deveaux@frosty.princeton.edu>
Message-Id: <9202261630.AA04149@frosty.Princeton.EDU>
To: lisp-stat-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Richard D. De Veaux" <deveaux@frosty.princeton.edu>
Status: OR


    **************Grants for Beginning Researchers Offered**************


	Through a generous donation from the Statistics Division of
the American Society for Quality Control, six grants are available 
to pay for registration, lodging and food for beginning researchers 
to attend the 1992 Gordon Research Conference on Statistics in 
Chemistry and Chemical Engineering (usual cost is $390).  Grant 
recipients will be responsible for their own travel expenses.  
These grants are available to individuals who have received their 
highest degree since May 1989 or who are still in school and who 
are involved in research in statistics, chemistry or chemical 
engineering.  Applications should consist of a letter of interest, 
a resume, a letter of recommendation from a major professor, 
research supervisor, or colleague familiar with the applicant's 
research record, and an abstract of research to be presented in 
the conference poster session.  

For consideration at the first decision point, applications must
be received by the conference Vice Chair by May 15, 1992.  Please
send applications (4 copies) for these grants to Roger W. Hoerl,
Conference Vice Chair, Scott Paper Company, Scott Plaza II, Phila.,
PA 19113, with a copy to the conference chair, Richard D. De Veaux,
Dept. of Civil Eng'g and OR, Princeton University, Princeton, NJ
08544.  Applicants must also apply directly to the conference
itself by contacting Dr. A. M. Cruickshank,  
Gordon Research Center, University of Rhode Island, Kingston, 
RI 02881; (401) 783-4011 (E-mail:bcp101@uriacc.bitnet). 


From owner-SL-news  Wed Feb 26 10:27:04 1992
Resent-Date: Wed, 26 Feb 92 11:29:59 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <9202261627.AA16697@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 26 Feb 92 10:27:04 -0600
Received: by umnstat.stat.umn.edu; Wed, 26 Feb 92 10:26:49 -0600
Received: from frosty.Princeton.EDU by Princeton.EDU (5.65b/2.86/princeton)
	id AA04734; Wed, 26 Feb 92 11:26:39 -0500
Received: by frosty.Princeton.EDU (911016.SGI/1.111)
	id AA04146; Wed, 26 Feb 92 11:29:59 -0500
Date: Wed, 26 Feb 92 11:29:59 -0500
From: "Richard D. De Veaux" <deveaux@frosty.princeton.edu>
Message-Id: <9202261629.AA04146@frosty.Princeton.EDU>
To: lisp-stat-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Richard D. De Veaux" <deveaux@frosty.princeton.edu>
Status: OR


 			CONFERENCE ANNOUNCEMENT

                 1992 Gordon Research Conference on
          Statistics in Chemistry and Chemical Engineering

	     New Hampton School, New Hampton, NH
                   July 27 to July 31, 1992


This conference, which has met annually since 1951, brings together 
researchers and practitioners in the fields of statistics, chemistry
and chemical engineering in a relaxed and informal setting.  The 
objective of the Gordon Research Conferences is to explore the
`frontiers of science'.  Participants will discuss new developments
in statistical methodology and new applications of statistics to
chemistry and chemical engineering.  There are two talks each day
(morning and evening) with the exception of Friday, with extended time
for open discussion after each formal presentation.  There are also
round table discussions at lunch and a poster session, which will provide
attendees the opportunity to post recent research results, and to discuss
these with others at designated times.  The potential for extended formal
and informal discussions provides a unique learning opportunity for
all conferees.  It is customary to attend the entire conference.

The fee to attend the Conference (Sunday dinner through Friday lunch) is
$390 including registration, lodging and meals for those whose 
payments and registrations cards are received by July 6, 1992 
($50 additional thereafter).  
Please note, however, that all applications must be received no later than
June 15, 1992 to allow time for approval.  Due to the anticipated number
of applications, it is advisable to apply earlier than this date.
The charge for guests (not
attending the technical sessions) is $300.

Program details are provided below.  Please also
bring this conference to the attention of your colleagues.

Requests for applications to the conference
should be addressed to:

Dr. Alexander Cruickshank
Gordon Research Conferences, 
University of Rhode Island, Kingston, RI 02881; 
(401) 783-4011 (E-mail:bcp101@uriacc.bitnet). 


with, if convenient, a copy to the Conference Chair.

To submit abstracts for poster session papers, please contact the Vice-Chair: 
Roger W. Hoerl, Scott Paper Company, Scott Plaza II, Philadelphia, PA 19113. (215)
522-5011

All interested persons are encouraged to apply.  Further information
can be obtained from the Conference Chair:
Richard D. De Veaux, 
Department of Civil Engineering and Operations Research, 
ACE-43 Engineering Quadrangle, 
Princeton University, Princeton, NJ 08544; 
(609) 258-6494 FAX: (609) 258-1270. E-mail:deveaux@frosty.princeton.edu.

********************------------------------------********************

			PROGRAM FOR THE
                 1992 Gordon Research Conference on
          Statistics in Chemistry and Chemical Engineering


	     New Hampton School, New Hampton, NH
                   July 27 to July 31, 1992

	Chair: Richard D. De Veaux, Princeton University 
	Vice Chair: Roger W. Hoerl, Scott Paper Company


 Speaker: John F. MacGregor, McMaster University, Ontario, Canada
 Topic:   Multivariate Methods for Process Identification 
 Discussant: Svante Wold, Umea University, Sweden
 Moderator: Karen Kafadar, National Cancer Institute

 Speaker:  Adrian F.M. Smith, Imperial College, London, UK
 Topic:   Bayesian Methods for Reliability
 Discussant: Bruce Hoadley, Bellcore
 Moderator: Edward I. George, University of Chicago

 Speaker: Ingram Olkin, Stanford University
 Topic: Meta Analysis in Science
 Discussant: Donald B. Rubin, Harvard Univeristy
 Moderator: Donna F. Stroup, Centers for Disease Control

 Speaker:  Lyle H. Ungar, University of Pennsylvania
 Topic: Neural Networks for Chemical Process Control
 Discussant: James M. Minor, Dupont
 Moderator: Roger W. Hoerl, Scott Paper Company 

 Speaker: Trevor J. Hastie, AT&T Bell Laboratories
 Topic: Generalized-Generalized Additive Models 
 Discussant: Anthony C. Atkinson, London School of Economics, UK
 Moderator: Diane E. Duffy, Bellcore

 Speaker: Philip K. Hopke, Clarkson University
 Topic: Multivariate Methods for Environmental Chemical Analysis
 Discussant: Nouna Kettaneh-Wold, MDS Inc.
 Moderator: Age Smilde, University Center for Pharmacy, Groningen, Netherlands

 Speaker: V.V. Fedorov, Academy of Sciences, Moscow, Russia 
 Topic: Moving regression: analysis and design of experiments 
 Discussant: Toby J. Mitchell, Oak Ridge National Laboratory 
 Moderator: James M. Lucas, Consultant

 Speaker: John C. Bailar, McGill University, Quebec, Canada
 Topic: New Directions in Risk Assessment
 Discussant: J. Michael Steele, University of Pennsylvania
 Moderator: Karen J. Hyver, Baxter Health Care

 Speaker:  Andreas Buja, and Deborah F. Swayne, Bellcore 
 Topic:  Interactive Statistical Graphics using the X windows System
 Discussant: Randall D. Tobias, SAS Institute
 Moderator:  Karen J. Bandeen-Roche, Johns-Hopkins University


For applications to attend the conference contact:
Dr. A. Cruickshank,
Gordon Research Conferences, University of Rhode Island, Kingston,
RI 02881; (401)-783-4011 (bcp101@uriacc.bitnet). To submit
abstracts for poster session papers, contact: Roger W. Hoerl,
Scott Paper Company, Scott Plaza II, Philadelphia, PA 19113.
For further information on other aspects of the conference,
contact: Richard D. De Veaux, Department of Civil Engineering and
Operations Research, ACE-43 Engineering Quadrangle, Princeton 
University, Princeton, NJ 08544; (609)-258-6494
(deveaux@frosty.princeton.edu).




From owner-SL-news  Fri Feb 28 18:56:40 1992
Resent-Date: Fri, 28 Feb 92 16:56:23 GMT
Resent-From: owner-SL-news
Resent-Message-Id: <9202290056.AA21170@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 28 Feb 92 18:56:40 -0600
Received: by umnstat.stat.umn.edu; Fri, 28 Feb 92 18:56:34 -0600
Received: by uhura.biostat.washington.edu
	(5.64/UW-NDC Revision: 2.21 ) id AA09597; Fri, 28 Feb 92 16:56:25 -0800
From: Steve McKinney <kilroy@biostat.washington.edu>
Message-Id: <9202290056.AA09597@uhura.biostat.washington.edu>
Subject: Xlisp, LispStat to S
To: stat-lisp-news@umnstat
Date: Fri, 28 Feb 92 16:56:23 GMT
Cc: kilroy@uhura.biostat.washington.edu (kilroy)
X-Mailer: ELM [version 2.3 PL11]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Steve McKinney <kilroy@biostat.washington.edu>
Status: OR

I have made some improvements to the Xlisp to S package that
substantially speeds up the output from S, allowing much better access
to the S library of functions from LispStat.  I have submitted this
version 1.1 to statlib@lib.stat.cmu.edu in the form of a shar file.
If you send e-mail to statlib@lib.stat.cmu.edu containing the line

send index from xlispstat
 
you should get the information on how to get it.  Send me e-mail if
that approach doesn't work.

kilroy@biostat.washington.edu



        \`|'/
        (. .)
   ---uuu-U-uuu---
   kilroy was here



From owner-SL-news  Tue Mar 10 08:36:45 1992
Resent-Date: Tue, 10 Mar 1992 08:35:44 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9203101436.AA08670@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 10 Mar 92 08:36:45 -0600
Received: by umnstat.stat.umn.edu; Tue, 10 Mar 92 08:36:42 -0600
Date: Tue, 10 Mar 1992 08:35:44 -0600
From: bates@stat.wisc.edu (Douglas M. Bates)
Message-Id: <199203101435.AA06091@wingra.stat.wisc.edu>
Received: by wingra.stat.wisc.edu; Tue, 10 Mar 1992 08:35:44 -0600
To: S-news@jupiter.econ.umn.edu, lisp-stat-news@umnstat
Subject: Scripts to search the Current Index to Statistics database
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: bates@stat.wisc.edu (Douglas M. Bates)
Status: OR

This is a cross-posting of a message sent to sci.math.stat as I
believe it may be of interest to these groups.

In article <10002@tamsun.tamu.edu> jhardin@data.tamu.edu (James Hardin) writes:
     In the UNIX TOOLS session of the Interface '92 conference in 
   College Station (March 16-20), there will be a talk on a collection
   of scripts written in the perl language. Sorry - I don't know the 
   author's intentions for these scripts. Let me know if you are interested
   and I can send you a summary of what transpires in case you are not 
   attending the conference. I can pass your name to the presenter
   if you are interested (I think the presenter is Professor Bates at 
   Wisconsin, but I don't remember).

Indeed I am the presenter of that session on perl.  In the technical
session I will be speaking about perl as a language for data
manipulation but I will later give a demo (Friday at noon, I believe)
of the CIS search software.

If you want to try it out, the perl scripts for searching the CIS
database are available for anonymous ftp from wingra.stat.wisc.edu
(128.105.5.32) under pub/src/CIS.shar.Z.  This is a compressed shar
file; please remember to set "bin" mode before transfering it.  These
scripts are only suitable for Un*x workstations because they use
sockets to implement a client/server architecture.  There is also an
implementation of perl for MS-DOS machines but the scripts would have
to be modified somewhat to run under MS-DOS.

The scripts use an inverted index so lookups are very fast.  To
install the system you first need to purchase a departmental license
for the database from AMS or IMS, then install perl (freely available
from many sites on the net including prep.ai.mit.edu under pub/gnu or
by e-mail), then create the inverted index and start the server
running.  After that clients from any machines you authorize can
access the database easily.

Some advantages are:

- output in a bib-like form, or BibTeX form (undocumented feature -
  use the -B option).
- output piped through a pager by default.  Commands to redirect the
  output to a file or in raw form to a file are available.
- client/server means only one machine has to have a copy of the
  database. (It takes up about 20 Mb with the indices.) Also,
  integrity of the database is more easily maintained.
- two-stage indices enhance the speed of intersecting the set of
  citations for different keywords
- relatively easy to add new output formats, etc.

This is a beta release of the software which was jointly written with
Paul Tukey.  I will announce further releases in this newsgroup.

From owner-SL-news  Tue Mar 10 16:18:45 1992
Resent-Date: Tue, 10 Mar 1992 16:18:41 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <9203102218.AA09725@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 10 Mar 92 16:18:45 -0600
Received: by umnstat.stat.umn.edu; Tue, 10 Mar 92 16:18:42 -0600
Date: Tue, 10 Mar 1992 16:18:41 -0600
From: bates@stat.wisc.edu (Douglas M. Bates)
Message-Id: <199203102218.AA06493@wingra.stat.wisc.edu>
Received: by wingra.stat.wisc.edu; Tue, 10 Mar 1992 16:18:41 -0600
To: S-news@jupiter.econ.umn.edu, lisp-stat-news@umnstat
Subject: forwarded item from NA Digest
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: bates@stat.wisc.edu (Douglas M. Bates)
Status: OR

The following was announced on NA-digest, an electronic newsletter for
the numerical analysis community.  I thought it was of sufficient
interest to forward it to these lists.  My apologies if you receive it
more than once.
------- Start of forwarded message -------
From: nacomb@surfer.EPM.ORNL.GOV (NA-NET)
Message-Id: <9203091235.AA01860@surfer.EPM.ORNL.GOV>
Subject: NA Digest, V. 92, # 10
Apparently-To: wahba@stat.wisc.edu
Status: R

NA Digest   Sunday, March 8, 1992   Volume 92 : Issue 10
 
Today's Editor:
 
    Cleve Moler
    The MathWorks, Inc.
    moler@mathworks.com
 
Today's Topics:

    LAPACK is Now Available
    Second Release of XNETLIB
 
Information about NA-NET:
    Mail to na.help@na-net.ornl.gov.
 
- -------------------------------------------------------

From: Jack Dongarra <dongarra@cs.utk.edu>
Date: Fri, 6 Mar 92 12:36:44 -0500
Subject: LAPACK is Now Available

            ( L   A    P    A    C    K )
            ( L  -A    P   -A    C   -K )
            ( L   A    P    A   -C   -K )
            ( L  -A    P   -A   -C    K )
            ( L   A   -P   -A    C    K )
            ( L  -A   -P    A    C   -K )

LAPACK is a transportable library of Fortran 77 subroutines for
solving the most common problems in numerical linear algebra: systems
of linear equations, linear least squares problems, eigenvalue problems,
and singular value problems. It has been designed to be efficient
on a wide range of modern high-performance computers.

LAPACK is intended to be the successor to LINPACK and EISPACK.
It extends the functionality of these packages by including driver 
routines, iterative refinement and error bounds for linear systems, the 
capability for finding selected eigenvalues and invariant subspaces, and 
condition estimation for the eigenproblem.  LAPACK improves on the accuracy 
of standard algorithms for linear systems, for finding singular values and 
singular vectors of bidiagonal matrices, and for finding eigenvalues and 
eigenvectors of tridiagonal matrices.  The algorithms and software in the 
package have been restructured to achieve high efficiency on vector processors, 
high-performance ``superscalar'' workstations, and shared memory 
multiprocessors. In addition to the LAPACK routines, comprehensive 
testing and timing suite is provided along with the LAPACK software.

The LAPACK Users' Guide will be available from SIAM in or around May, 1992.
The Users' Guide gives an informal introduction to the design of the algorithms
and software, summarizes the contents of the package, describes conventions
used in the software and documentation, and includes complete specifications
for calling the routines. 

The LAPACK routines are available from netlib for users who require only 
selected pieces of the package.
For a description of the contents of LAPACK, send email to
netlib@ornl.gov, and in the mail message type: send index from lapack.
A set of working notes are available from netlib as well and details
can be found in the index to LAPACK.

The complete LAPACK package can be obtained on magnetic media from NAG for a
nominal handling charge. For further details, contact NAG at one of these
addresses: 

NAG Inc                       NAG Ltd              NAG GmbH
1400 Opus Place               Wilkinson House      Schleissheimerstrasse 5
Suite 200                     Jordan Hill Road     W-8046 Garching bei Munchen
Downers Grove, IL 60515-5702  Oxford OX2 8DR       Germany 
USA                           England
Tel: +1 708 971 2337          Tel: +44 865 511245  Tel: +49 89 3207395
Fax: +1 708 971 2706          Fax: +44 865 310139  Fax: +49 89 3207396


LAPACK has been funded in part by NSF, DOE, and DARPA, with
developmental support from NAG Ltd., Cray Research, and many friends
and colleagues around the world.

Ed Anderson, Zhao-jun Bai, Chris Bischof, Jim Demmel, Jack Dongarra, 
Jeremy Du Croz, Anne Greenbaum, Sven Hammarling, Alan McKenney, 
Susan Ostrouchov, and Danny Sorensen


            (           l    l    l    l )
            (           a   -a    a   -a )
      1/4 * ( p    p             -p   -p )
            ( a   -a             -a    a )
            ( c    c   -c   -c           )
            ( k   -k   -k    k           )

 

- ------------------------------

From: Jack Dongarra <dongarra@cs.utk.edu>
Date: Fri, 6 Mar 92 17:21:23 -0500
Subject: Second Release of XNETLIB

We have a second release version of XNETLIB.

XNETLIB is a new version of NETLIB recently developed at the University
of Tennessee and Oak Ridge National Laboratory.  Unlike NETLIB, which
uses electronic mail to process requests for mathematical software,
XNETLIB uses an X Window graphical user interface and a socket-based
connection between the user's machine and the XNETLIB server machine to
process software requests.

To receive a copy of XNETLIB send the message "send xnetlib.shar from
xnetlib" to netlib@ornl.gov.

When you receive the shar file, remove the mail header, save it to a
file, type 'sh filename' and follow the instructions in the README
file.

Send comments to xnetlib@cs.utk.edu.

Jack Dongarra
Tom Rowan
Reed Wade
    
- ------------------------------
------- End of forwarded message -------

From owner-SL-news  Fri May 29 02:48:44 1992
Resent-Date: Fri, 29 May 1992 02:48:44 GMT
Resent-From: owner-SL-news
Resent-Message-Id: <199205290929.AA04409@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 29 May 1992 04:29:01 -0500
Received: from coco.ms.washington.edu by umnstat.stat.umn.edu; Fri, 29 May 1992 04:28:57 -0500
Received: by coco.ms.washington.edu
	(5.65/UW-NDC Revision: 2.21 ) id AA13134; Thu, 28 May 92 19:01:13 -0700
Received: from arugula by statsci.com (4.1/SMI-3.2 ssi v3.13)
	id AA23928; Thu, 28 May 92 18:48:24 PDT
Received: by arugula
	(16.7/16.2) id AA03177; Thu, 28 May 92 21:48:56 -0400
Newsgroups: lists.statlisp,sci.math.stat,comp.lang.lisp.x,comp.ai
Path: almond
From: statsci!almond@coco.ms.washington.edu (Russell G. Almond)
Subject: Announcing ElToY
Message-Id: <ALMOND.92May28184844@bass.statsci.com>
Sender: statsci!usenet@coco.ms.washington.edu (Usenet News Account)
Organization: Statistical Sciences, Inc., Seattle, WA USA
Date: Fri, 29 May 1992 02:48:44 GMT
Lines: 123
Apparently-To: lists-statlisp@mailhost
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: statsci!almond@coco.ms.washington.edu (Russell G. Almond)


I have just released a new Bayesian Elicitation tool called ElToY.  It
demonstrates several elementary statistical concepts, and may
eventually form the basis of a more sophisticated elicitation tool.

I have included the rather unusual cross posting to comp.ai, because I
view this a knowledge caputuring tool.  If an "expert" is asked to
encode her knowledge in the form of a probability distribution, then
she must also understand the implications of her choice of
distribution.  ElToY provides an interactive environment for
exploring the implications of such judgements.

ElToY is written in XLISP-STAT; instructions for obtaining it are
below.  It is released into the public domain under the GNU library
copyleft (I hope it may be useful as part of some other more complex
software).  I am willing to offer limited support over email (my
addresses are below).



Short Description:

ElToY is an XLISP-STAT program which does one parameter elicitation
for univariate conjugate priors through dynamic graphics.  It contains
a tool for interactively displaying a univariate distribuiton and a
central limit theorem demonstration.  [Russell Almond: almond@statsci.com]

Long Description:

ElToY is a collection of three program written in XLISP-STAT.

Dist-toy displays a univarate distribution dynamically linked to its
parameters.  

CLT-toy provides an illustration of the central limit theorem for
univariate distributions.

ElToY provides a mechanism for displaying the prior and posterior
distributions for a conjugate family dynamically linked so that
changes to the prior affect the posterior and visa versa.

ElToY is coded relatively cleanly in XLISP-STAT and serves as an
illustration of object oriented programming style in statistics.


OBTAINING A COPY:

	1) Via FTP:  ElToY is available via anonymous ftp from
stat.washington.edu (128.95.17.34).  To get a copy, log in with user
name anonymous (password <your-name>@<your-host>) and copy the file
ElToY.tar.Z in binary mode.  This can then be uncompressed and untared
on your computer.  Then follow the directions in the file
INSTALLATION.

	2) Via Email:  ElToY is available via automatic email from
statlib@stat.cmu.edu.  To obtain a copy, send mail to
statlib@stat.cmu.edu with the single line "send index" (no subject
line).  This will give you instructions on how to use the automatic
mail server.


DISTRIBUTION CONTENTS:

ElToY is rather large and is broken into several pieces.

Documentation:

doc        --- Plain TeX documentation.  Is useful without the
		    rest of ElToY
COPYRIGHT  --- GNU COPYLEFT, must be copied if other files are
		    copied. 
README, INSTALLATION, OBJECTS --- misc documentation.

General Stuff (may be useful without the rest of ElToY):

utils	--- Various utilities which may be useful including
		extensions to LISP-STAT, common lisp functions not
	 	provided in XLISP and a cleaned-up slider.

fam     --- Protocol for probability distribution objects and
		Graphical User Interfaces. 

params	--- Parameter object protocols and Graphical User
	        Interfaces. 

Dist-Lib--- Library of univariate distribution objects

Required for both Dist-Toy and ElToY:

toys	--- Top level graphical tools and menus.

clt	--- Central Limit Theorem Stuff

load	--- Loading scripts

Required only for ElToY:

conj	--- Conjugate distribution and Data-Link protocols and
		objects. 

Conj-Lib--- Library of Conjuage Distributions.

This software is proteted by a GNU Library Copyleft which allows:
	1) Unlimited redistribution at cost and
	2) Inclusion as part of a larger system which is sold.
The file COPYING.shar for the exact terms and conditions.

I am willing to provide limited support via email, and am happy to
hear your suggestions for improvements or bug fixes.  I can be reached
at either of the addresses below.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu

	"This is lightly tricky; one wrong calculation and the whole
analysis results in different answers."  ---From a Stat 390 lab
report.



From owner-SL-news  Sat Jun  6 11:19:58 1992
Resent-Date: Sat, 6 Jun 1992 17:19:58 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <199206062118.AA17364@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 6 Jun 1992 16:18:38 -0500
Received: from math.mtu.edu by umnstat.stat.umn.edu; Sat, 6 Jun 1992 16:18:30 -0500
Received: from [141.219.151.138] (wollan.math.mtu.edu) by math.mtu.edu (4.1/SMI-4.1)
	id AA21762; Sat, 6 Jun 92 17:13:36 EDT
Message-Id: <9206062113.AA21762@math.mtu.edu>
Date: Sat, 6 Jun 1992 17:19:58 -0600
To: stat-lisp-news@umnstat
From: wollan@math.mtu.edu
Subject: missing values?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: wollan@math.mtu.edu

Is it possible to have Xlisp-Stat handle missing values--at all, much less
intelligently?  This would seem to be a basic requirement for examining
real data.

----------------------------------------------------------------------------
Peter Wollan, Math Dept, Mich. Tech. U., Houghton MI 49931   906-487-2694
  wollan@math.mtu.edu
----------------------------------------------------------------------------


From almond@statsci.com  Sun Jun  7 12:01:16 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Sun, 7 Jun 1992 21:13:43 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA22756; Sun, 7 Jun 92 22:13:17 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 221306.23724; Sun, 7 Jun 1992 22:13:06 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.17)
	id AA09818; Sun, 7 Jun 92 19:01:16 PDT
Date: Sun, 7 Jun 92 19:01:16 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9206080201.AA09818@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA09818; Sun, 7 Jun 92 19:01:46 PDT
To: wollan@math.mtu.edu
Cc: SL-news-list@umnstat
In-Reply-To: wollan@math.mtu.edu's message of Sat, 6 Jun 1992 17:19:58 -0600 <199206062118.AA17364@umnstat.stat.umn.edu>
Subject: missing values?

Peter Wollan writes:

> Is it possible to have Xlisp-Stat handle missing values--at all, much less
> intelligently?  This would seem to be a basic requirement for examining
> real data.



Missing values are a perenial problem, but there are ways of dealing
with them.


1) Quick and dirty method for using missing values.

Most lisp data structures handle objects of type T and are not
restricted to numeric data.  Thus:

#(1 2.4 1.234567892345 FOO (3 4))

Is a vector consisting of the integer 1 the single-float 2.4 the
double-float 1.234567892345 the symbol FOO and a list whose elements
are 3 and 4.  There is no problem defining and including a symbol for
missing values into a Lisp data structure.

Thus:

(defconstant NA NA  "Missing value")
;; I define it as a self-evaluating constant so it will behave like a
;; number.

(defun is-na (data)
  (cond ((numberp data) nil)
        ((eq data NA) T)
	((listp data) (map-elements #'isnt-na data))
        ((arrayp data) (map-elements #'isnt-na data))
	(t (error "~S Isn't a number or NA." data))))


(defun isnt-na (data)
  ;; (declare (type data Sequence))
  (remove NA data))


Thus 

(mean (isnt-na '(1 2 NA 4 5)))

should yield 3.

[Note, the declaration was commented out as XLISP doesn't support
them.]

Isnt-na doesn't work for compound data structures, but (in theory) you
would want to define specific methods for such a structure (e.g, leave
out the whole row of the data matrix if one element is missing.)

This answers the "At all" part of the question.

2) Statistically intellegent.

"Intellegently" has two potential meanings.  One is will the procedure
provide a sensible way of handling missing data in the input.

The problem here is what is the correct way to handle missing data.

The "obvious method" of dropping missing observations, or missing
rows, rather assumes that the data is missing at random.  This is a
rather strong assumption and should be verified.  It might be better
to handle the missing values with multiple imputation, or some other
technique. 

There are a variety of ways that a numeric function can handle missing
values. 

0) Quietly perform some default behavior, such as ignoring the missing
values.

1) Perform some default behavior, but issue a warning.  (This is the
approach that S-Plus, StatSci's version, takes.)

2) Issue a continuable error, performing some appropriate default
behavior as one of the restart conditions.

3) Issue an error.  (this is the approach that S, AT&T's version,
takes.)

As you can see, there is some disagreement among experts about how to
handle missing data.  AT&T's decision to provide utility functions and
force the user to do it for himself is based on Statisical Principle,
particularly, the idea that missing values should always be carefully
studied.  StatSci's approach is somewhat temperred by demmand by
non-statisticians to support missing data.

I think that a good argument can be put forth for either 1, 2 or 3.  0
is much harder to defend.  I think I would push for 2, but it probably
requires a full ANSI Common Lisp (in particular, the ANSI condition
system) to properly handle the restarts.

I think that Luke has taken approach (3) in LISP-STAT because that way
he can get on with the stuff he would like to work on without spending
a lot of time handling missing data.  He may have been partially
motivated by efficiency issues as well.  As XLISP will signal an error
if it gets a symbol where it was expecting a number, the current 
XLISP-STAT implementation, with a couple of extra utility functions
like the ones above is in fact a correct implementation of approach (3).


3) Efficiency Issues.


There are a number of different efficiency issues associated with
missing data.

3.1) Speed.  Missing data checks can add about twices as much overhead
to your code.  Thus:

(* (- X (mean X)) (- X (mean X)))

could take four times as long if missing data checks were added to all
of the arithmetic statements  (once in calculating each of the means,
and once in each of the minuses.)  Just using normal LISP mechanism
for catching items of the wrong type is considerably faster.

3.2) Space.  

Consider a matrix of values  #2A((1.0 0.0) (0.0 1.0)).  This can be
stored as a matrix of double-floats (or a matrix of single-floats) in
an efficient packed format.  On the other hand #2A((1.0 0.0) (NA 1.0))
must be stored as a matrix of typed object, adding a typing overhead
to the storage requirements.  To really support NA, we would need a
more efficient storage type which was:
(deftype Extended-Float '(or (eq NA) Double-float))

This would need to be done at a very low level.  I don't see such an
extended Double-float data being supported by any free LISP which
would be a platform for LISP-STAT.  I could see a comercial vendor
such as Lucid or Franz supporting it as part of an IEEE floating point
extension, but its not likely to be free.

Caviat:  I'm not sure if XLISP supports vector and array data types.
I have recently been programming with Common Lisp and I often forget
which subset of that XLISP is.


Hope this throws some fuel on the fire.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu




From owner-SL-news  Mon Jun  8 05:54:12 1992
Resent-Date: Mon, 8 Jun 92 09:54:12 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199206081354.AA19940@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 8 Jun 1992 08:54:53 -0500
Received: from stat.ufl.edu (pilot.stat.ufl.edu) by umnstat.stat.umn.edu; Mon, 8 Jun 1992 08:54:48 -0500
Received:  by stat.ufl.edu (5.57/4.08)
	id AA24591; Mon, 8 Jun 92 09:54:12 -0400
Date: Mon, 8 Jun 92 09:54:12 -0400
From: Chuck Kincaid <statman@stat.ufl.edu>
Message-Id: <9206081354.AA24591@stat.ufl.edu>
To: stat-lisp-news@umnstat
Subject: Re:  missing values?
Cc: h
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Chuck Kincaid <statman@stat.ufl.edu>


Hello,
	Hmmm, I'm using a brain-dead mailer from a peecee.  Since I can't
include the original articles I hope I don't misquote or slander anyone.
:-)
	Can xls take advantage of the ieee NA?  On my machine (a NeXTstation)
it is defined as HUGE/HUGE.  And seems to be propogated in reasonable
ways.  This might overcome the problem of storing multi-type matrices.
Obviously, the actual representation would be machine dependent, but 
if the machine follows the ieee spec's (whatever they are) it should 
work.  Comments?

charles d. kincaid
statman@stat.ufl.edu
With some work I can receive NeXTMail.

'It just works'.
	- Steve Jobs

From owner-SL-news  Tue Jun  9 13:00:31 1992
Resent-Date: Tue, 9 Jun 92 17:00:31 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199206092100.AA23300@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 9 Jun 1992 16:00:28 -0500
Received: from unx.al.alcoa.com by umnstat.stat.umn.edu; Tue, 9 Jun 1992 16:00:23 -0500
Received: by unx.al.alcoa.com (5.57/Ultrix3.0-C)
	id AA08387; Tue, 9 Jun 92 17:00:31 -0400
Date: Tue, 9 Jun 92 17:00:31 -0400
From: daniel@unx.al.alcoa.com (David Daniel)
Message-Id: <9206092100.AA08387@unx.al.alcoa.com>
To: stat-lisp-news@umnstat
Subject: symbol creation
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: daniel@unx.al.alcoa.com (David Daniel)

Given a character string containing the name of a symbol I would 
like to create, I can't figure out how to create that symbol.  The
underlying problem seems to be that when I do create a symbol it
is unbound.  Can anyone tell me what's up?  (I suppose I could get
around this by creating a string containing a "def" command and then
evaluate the string, but I'd really like to know what the problem is
with unbound symbols.)

Thanks,
-David Daniel
daniel@unx.al.alcoa.com

From almond@statsci.com  Tue Jun  9 09:16:20 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Tue, 9 Jun 1992 18:24:39 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA29444; Tue, 9 Jun 92 19:24:26 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 192329.11706; Tue, 9 Jun 1992 19:23:29 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.17)
	id AA26103; Tue, 9 Jun 92 16:16:20 PDT
Date: Tue, 9 Jun 92 16:16:20 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9206092316.AA26103@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA11799; Tue, 9 Jun 92 16:16:50 PDT
To: daniel@unx.al.alcoa.com
Cc: SL-news-list@umnstat
In-Reply-To: David Daniel's message of Tue, 9 Jun 92 17:00:31 -0400 <199206092100.AA23300@umnstat.stat.umn.edu>
Subject: symbol creation

| Given a character string containing the name of a symbol I would 
| like to create, I can't figure out how to create that symbol.  The
| underlying problem seems to be that when I do create a symbol it
| is unbound.  Can anyone tell me what's up?  (I suppose I could get
| around this by creating a string containing a "def" command and then
| evaluate the string, but I'd really like to know what the problem is
| with unbound symbols.)

| Thanks,
| -David Daniel
| daniel@unx.al.alcoa.com

Sounds like you are confused between "set" and "setq", which is all
the more confusing because LISP-STAT style uses "def" instead of
"setq."

"Set" is a function, which means when you evaluate an expression like
"(set the-answer-to-life-the-universe-and-everything 42)"  Lisp first
evaluates the arguments and this expression will probably generate an
error because "the-answer-to-life-the-universe-and-everything" is
probably unbound.

There are two ways around this.  One is to use the special form quote
which protects its argument from evaluation (abbreviated ').  Thus:

(set 'the-answer-to-life-the-universe-and-everything 42)

This is so often what you want to do that lisp provides a built in
abbreviation called setq, thus:

(setq the-answer-to-life-the-universe-and-everything 42)

The LISP-STAT macro "def" expands into a setq call, as well as doing
some other stuff (declares the variable to be special and (I believe)
recording it on a list.  "def" is not standard lisp usage it is unique
to LISP-STAT.)  The "setf" macro is similar to "setq" except that it
will take a generalized variable (a place) instead of just a symbol as
an argument.  

A modern style convention (which Luke used in his book) was to "setf"
for variables as well as other places.  Between "setf" and "def" he
could thus completely ignore the "set"/"setq" dilema.  97.5% of the
time, you want to be using "def" (special variable) or "setf" (local
variable) anyway, and you don't need to worry about "set."

I think your application is one of the lucky 2.5%.  The problem is
when you create your new symbol, and you then want to set its value,
you need to bind the value of the symbol which is stored in a local
variable.  This is a job for "set".  Thus

(defun make-new-data-var (name data)
  "Makes a new symbol with print-name <name> and value <data>"
   ;(declare (type String name) (type T data)
   ;         (:returns (type Symbol)))
 (let ((new-symbol (intern name)))
   (set new-symbol data)
   new-symbol))

Mind you, this will not do any of the normal processing LISP-STAT does
on variables which are "def"ed instead of "setf"ed.  To do that, you
probably want a macro.

(defmacro make-new-data-var (name data)
  "Makes a new symbol with print-name <name> and value <data> using def"
   ;(declare (type String name) (type T data)
   ;         (:returns (type Symbol)))
 `(def ,(intern name) ,data))


Symbols are always created unbound by default, because the are usually
created at read time, not eval time.  At read time, you are unsure
whether the symbol is going to be a function, a variable or just used
for its name as a datum.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu




From daniel@unx.al.alcoa.com  Wed Jun 10 06:32:30 1992
Received: from unx.al.alcoa.com by umnstat.stat.umn.edu; Wed, 10 Jun 1992 09:32:22 -0500
Received: by unx.al.alcoa.com (5.57/Ultrix3.0-C)
	id AA09798; Wed, 10 Jun 92 10:32:30 -0400
Date: Wed, 10 Jun 92 10:32:30 -0400
From: daniel@unx.al.alcoa.com (David Daniel)
Message-Id: <9206101432.AA09798@unx.al.alcoa.com>
To: almond@statsci.com, daniel@unx.al.alcoa.com
Subject: Re:  symbol creation
Cc: SL-news-list@umnstat

Thanks for the replies.  The "set" command was what I needed.
Nearly all of my exposure to Xlisp/Lisp has been from Luke's
text, and to my knowledge it doesn't discuss some of these issues
(although it's been a great help to me).  I also wish I had a better
understanding of "defmacro" (and a number of other things).  So...
Is there a good literature source to which I can turn?

Thanks,
-David Daniel
daniel@unx.al.alcoa.com


> (def what-is-the-question-to 
   	(extract-question the-answer-to-life-the-universe-and-everything))
error: insufficient processor speed - try allocating more time


From almond@statsci.com  Wed Jun 10 04:24:01 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Wed, 10 Jun 1992 13:46:57 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA22871; Wed, 10 Jun 92 14:46:44 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 144546.6508; Wed, 10 Jun 1992 14:45:46 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.17)
	id AA01518; Wed, 10 Jun 92 11:24:01 PDT
Date: Wed, 10 Jun 92 11:24:01 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9206101824.AA01518@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA12600; Wed, 10 Jun 92 11:24:32 PDT
To: daniel@unx.al.alcoa.com
Cc: SL-news-list@umnstat
In-Reply-To: David Daniel's message of Wed, 10 Jun 92 10:32:30 -0400 <9206101432.AA09798@unx.al.alcoa.com>
Subject:  symbol creation

> Is there a good literature source to which I can turn?


I highly recommend Peter Norvig's new book "Paradigms of Artificial
Intellegence Programming: Case Studies in Common Lisp,"
Morgan-Kaufmann.  If you are used to traditional Fortran Programming
this will help you see some other ways of looking at a problem.

People have also recommended Winston and Horn, "Lisp", 3rd ed.,
Addison-Wesley.  Wilensky, "Common LISPcraft," Norton is another
source (I first learned LISP with an earlier version of this book).

Steele, "Common LISP the Language", Digital (frequently abbreviated
CLtL) is the defacto standard for Common LISP.  The second edition
tracks most of the recent changes made by the X3J13 committe which are
trying to draft the ansi standard.  Note that XLISP is a Common LISP
subset, and hence does not track most of the later changes to CLtL-2.
If you are exclusively using XLISP, you might be able to pick up a
copy of CLtL-1 used.  WARNING:  XLISP is only a subset.  I am
sometimes rather fustrated and surprized by looking things up in
CLtL-2 and discovering that XLISP doesn't implement that feature.


If you have access to USENET, check out comp.lang.lisp and
comp.lang.lisp.x.  Comp.lang.lisp contains a frequently asked
questions list (FAQ) which among other things, gives a longer list of
LISP references, as well as some simple hints to basic problems.
Comp.lang.lisp.x is a discussing group for XLISP, and is regularly
read by both David Betz (XLISP) and Luke Tierney (LISP-STAT).


Maybe somebody should cross-post the comp.lang.lisp FAQ lists to this
group.

	--Russell Almond

	

From aboulang@BBN.COM  Wed Jun 10 12:48:48 1992
Message-Id: <199206102048.AA25680@umnstat.stat.umn.edu>
Received: from KARIBA.BBN.COM by umnstat.stat.umn.edu; Wed, 10 Jun 1992 15:48:57 -0500
To: SL-news-list@umnstat
In-Reply-To: "Russell G. Almond"'s message of Wed, 10 Jun 92 11:24:01 PDT <9206101824.AA01518@statsci.com>
Subject: Lisp FAQsymbol creation
From: aboulang@BBN.COM
Sender: aboulang@BBN.COM
Reply-To: aboulanger@BBN.COM
Date: Wed, 10 Jun 92 16:48:48 EDT
Source-Info:  From (or Sender) name not authenticated.

   Date: Wed, 10 Jun 92 11:24:01 PDT
   From: "Russell G. Almond" <almond@statsci.com>

   Maybe somebody should cross-post the comp.lang.lisp FAQ lists to this
   group.



Here they are (as of Feb 10):
****************************************************************

Newsgroups: comp.lang.lisp
From: mkant+@cs.cmu.edu (Mark Kantrowitz)
Subject: FAQ: Frequently Asked Questions about Lisp 1/2 [Monthly posting]
Date: Tue, 11 Feb 92 00:30:26 GMT
Organization: School of Computer Science, Carnegie Mellon
Nntp-Posting-Host: a.gp.cs.cmu.edu
Followup-To: poster
Reply-To: lisp-faq@think.com

Archive-name: lisp-faq/part1
Last-Modified: Mon Feb 10 17:40:59 1992 by Mark Kantrowitz
Version: 1.1

The news.answers newsgroup has been temporarily removed from this
posting until the news.answers moderator gets around to reading his email.

;;; ****************************************************************
;;; Answers to Frequently Asked Questions about Lisp ***************
;;; ****************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp-faq-1.text -- 49756 bytes

This post contains Part 1 of the Lisp FAQ.

If you think of questions that are appropriate for this FAQ, or would
like to improve an answer, please send email us at lisp-faq@think.com.

Topics Covered (Part 1):
  [1]   What is the purpose of this newsgroup?
  [2]   What documentation is available on Lisp? How can I learn Lisp?
  [3]   What documentation is available about object-oriented
        programming in Lisp?  
  [4]   How can I improve my Lisp programming style and coding efficiency?
  [5]   Where can I learn about implementing Lisp interpreters and compilers?
  [6]   Where can I get/buy Lisp for the ... architecture?
  [7]   Where can I get an implementation of Prolog in Lisp?
  [8]   What Lisp-related discussion groups and mailing lists exist?

Topics Covered (Part 2):
  [9]   What FTP resources are available?
  [10]  Is there a GNU-Emacs interface to Lisp?
  [11]  How can I use the X Window System from Lisp?
  [12]  What does CLOS, PCL, X3J13, CAR, CDR, ... mean? 
        What is CLOS (PCL) and where can I get it?
        How do you pronounce CLOS?
        What is CLOS (PCL) and where can I get it?
  [14]  Why does (READ-FROM-STRING "foobar" :START 3) return FOOBAR
        instead of BAR?  
  [15]  Why can't it deduce from (READ-FROM-STRING "foobar" :START 3)
        that the intent is to specify the START keyword parameter
        rather than the EOF-ERROR-P and EOF-VALUE optional parameters?   
  [16]  How I write a function that can access defstruct slots by
        name?  I would like to write something like 
        (STRUCTURE-SLOT <object> '<slot-name>).   
  [17]  Why can't I apply #'AND and #'OR?
  [18]  When is it right to use EVAL?
  [19]  I used a destructive function (e.g. DELETE, SORT), but it
        didn't seem to work.  Why? 
  [20]  After I NREVERSE a list, it's only one element long.  After I
        SORT a list, it's missing things.  What happened? 
  [21]  What is the equivalent of EXPLODE and IMPLODE in Common Lisp?
  [22]  Is Lisp inherently slower than more conventional languages such as C?
  [23]  Why does my program's behavior change each time I use it?
  [24]  Why does Common Lisp have "#'"?
  [25]  How can I list all the CLOS instances in a class?
  [26]  How do I call non-Lisp functions from Lisp?
  [27]  Can I call Lisp functions from other languages?
  [28]  Why does (READ-LINE) return "" immediately instead of waiting
        for me to type a line?  
  [29]  I typed a form to the read-eval-print loop, but nothing happened. Why?
  [30]  I want to call a function in a package that might not exist at
        compile time. How do I do this?  
  [31]  What is CDR-coding?
  [32]  What is garbage collection?
  [33]  How do I save an executable image of my loaded Lisp system?
  [34]  I'm porting some code from a Symbolics Lisp machine to some
        other platform, and there are strange characters in the code.
        What do they mean?  
  [35]  History: Where did Lisp come from?

Search for [#] to get to question number # quickly.


Introduction:

Certain questions and topics come up frequently in the various network
discussion groups devoted to and related to Lisp.  This file/article is
an attempt to gather these questions and their answers into a convenient
reference for Lisp programmers.  It (or a reference to it) is posted
periodically.  The hope is that this will cut down on the user time and
network bandwidth used to post, read and respond to the same questions
over and over, as well as providing education by answering questions
some readers may not even have thought to ask.

This is not a Lisp tutorial, nor is it an exhaustive list of all Lisp
intricacies.  Lisp is a very powerful and expressive language, but with
that power come many complexities.  This list attempts to address the
ones that average Lisp programmers are likely to encounter.  If you are
new to Lisp, see the answer to the question "How can I learn Lisp?".

The latest version of this file should always be available via anonymous
FTP from any CMU CS machine (e.g., a.gp.cs.cmu.edu), in the directory
/afs/cs.cmu.edu/user/mkant/Public/Lisp-Utilities/ as the files
lisp-faq-1.text and lisp-faq-2.text.
[Note: You must cd to this directory in one command, as intermediate
directories are protected from an anonymous ftp.]

Unless otherwise specified, the Lisp dialect referred to is Common Lisp,
as defined by "Common Lisp: the Language" (aka "CLtL") as well as
corrections (but not enhancements) from "Common Lisp: the Language, 2nd
Edition" (aka "CLtL2"), both by Guy L. Steele, Jr. and published by
Digital Press.

----------------------------------------------------------------
[1] What is the purpose of this newsgroup?

This newsgroup (comp.lang.lisp) exists for general discussion of
topics related to the programming language Lisp. For example, possible
topics can include (but are not necessarily limited to):
   announcements of Lisp books and products
   discussion of programs and utilities written in Lisp
   discussion of portability issues
   questions about possible bugs in Lisp implementations
   problems porting an implementation to some architecture
Postings should be of general interest to the Lisp community.

Questions about object oriented programming in Lisp should be directed
to the newsgroup comp.lang.clos. Similarly, questions about the
programming language Scheme should be directed to the newsgroup
comp.lang.scheme. Discussion of AI programs implemented in Lisp should
sometimes be cross-posted to the newsgroup comp.ai.

----------------------------------------------------------------
[2] What documentation is available on Lisp? 
    How can I learn Lisp?

There are several good Lisp introductions and tutorials:

   1. David S. Touretzky
      "Common Lisp: A Gentle Introduction to Symbolic Computation"
      Benjamin/Cummings Publishers, 1990. 384 pages.
           Perhaps the best tutorial introduction to the language. It has
           clear and correct explanations, and covers some fairly advanced
           topics. The book is an updated Common Lisp version of the 1984
           edition published by Harper and Row Publishers.

   2. Robert Wilensky
      "Common LISPcraft"
      W. W. Norton, 1986. 385 pages.

   3. Wade L. Hennessey 
      "Common Lisp"
      McGraw-Hill, 1989. 395 pages.
           Fairly good, but jumps back and forth from the simple to the
           complex rather quickly, with no clear progression in difficulty.

   4. Laurent Siklossy
      "Let's Talk LISP"
      Prentice-Hall, NJ, 1976. 237 pages.

Other introductions to Lisp include:

   1. A. A. Berk.
      "LISP, The Language of Artificial Intelligence"
      Van Nostrand Reinhold, 1985. 160 pages.

   2. Paul Y. Gloess.
      "An Alfred handy guide to Understanding LISP"
      Alfred Publishers (Sherman Oaks, CA), 1982. 64 pages.

   3. Ward D. Maurer.
      "The Programmer's Introduction to LISP"
      American Elsevier, 1972. 112 pages.

   4. Hank Bromley and Richard Lamson.
      "LISP Lore: A Guide to Programming the LISP Machine"
      Kluwer Academic (Boston), 1987. 337 pages.

   5. Sharam Hekmatpour.
      "Introduction to LISP and Symbol Manipulation"
      Prentice Hall (New York), 1988. 303 pages.

   6. Deborah G. Tatar
      "A programmer's guide to Common Lisp"
      Digital Press, 1987. 327 pages. ISBN 0-932376-87-8.
           Good introduction on Common Lisp.

More advanced introductions to Lisp and its use in Artificial
Intelligence include:

   1. Peter Norvig.
      "Paradigms of AI Programming: Case Studies in Common Lisp"
      Morgan Kaufmann, 1992. 946 pages. ISBN 1-55860-191-0.

   2. Eugene Charniak, Christopher K. Riebeck, Drew V. McDermott
      and James R. Meehan.
      "Artificial Intelligence Programming", 2nd edition.
      Lawrence Erlbaum Associates (Hillsdale, NJ), 1987. 533 pages.
           Provides many nice code fragments, all of which are written
           in Common Lisp. The first half of the book covers topics
           like macros, the reader, data structures, control structures,
           and defstructs. The second half of the book describes
           programming techniques specific to AI, such as
           discrimination nets, production systems, deductive database
           retrieval, logic programming, and truth maintenance.

   3. Patrick H. Winston and Berthold K. P. Horn.
      "LISP", 3rd edition.
      Addison-Wesley (Reading, MA), 1989. 611 pages.
           Covers the basic concepts of the language, but also gives a lot
           of detail about programming AI topics such as rule-based expert
           systems, forward chaining, interpreting transition trees, 
           compiling transition trees and finding patterns in images. Not 
           a tutorial. Has many good examples.

   4. Rodney A. Brooks.
      "Programming in Common Lisp"
      Wiley, 1985. 303 pages.

   5. John R. Anderson, Albert T. Corbett, and Brian J. Reiser.
      "Essential LISP"
      Addison-Wesley (Reading, MA), 1987. 352 pages.
           Concentrates on how to use Lisp with iteration and recursion.

   6. Robert D. Cameron and Anthony H. Dixon
      "Symbolic Computing with Lisp"
      Prentice-Hall, 1992, 326 pages. ISBN 0-13-877846-9.
           The book is intended primarily as a third-year computer science
           text. In terms of programming techniques, it emphasizes recursion
           and induction, data abstraction, grammar-based definition of Lisp
           data structures and functional programming style. It uses
           two Lisp languages: 
                (1) a purely functional subset of Lisp called Small Lisp and
                (2) Common Lisp.
           An MS-DOS interpreter for Small Lisp (including source) is
           provided with the book.  It considers applications of Lisp
           to formal symbolic data domains: algebraic expressions,
           logical formulas, grammars and programming languages. 

   7. Hasemer and Domingue.
      "Common Lisp Programming for Artificial Intelligence"
      Addison-Wesley, 1989.

General Lisp reference books include:

   1. Guy L. Steele
      "Common Lisp: The Language" [CLtL1]
      Digital Press, 1984. 465 pages. ISBN 0-932376-41-X.

   2. Guy L. Steele
      "Common Lisp: The Language, 2nd Edition" [CLtL2]
      Digital Press, 1990. 1029 pages. ISBN 1-55558-041-6.

   3. Franz Inc. 
      "Common Lisp: The Reference"
      Addison-Wesley, Reading, MA 1988. ISBN 0-201-11458-5
           Entries on lisp functions in alphabetical order.

   4. K. Dybvig. 
      "The Scheme programming language"
      Prentice Hall, 1987.
         Good reference for Scheme.

Lisp periodicals include:
        
   1. LISP Pointers.
      Published by ACM SIGPLAN six times a year. Volume 1, Number 1
      was April-May 1987. 

   2. LISP and Functional Programming (jlz@lucid.com is the editor).

   3. Proceedings of the biannual ACM Lisp and Functional Programming
      Conference. (First one was in 1980.)

   4. Proceedings of the annual Lisp Users and Vendors Conference.

Introductions to Scheme (Many books on Scheme are worth reading
even if you use Common Lisp, because many of the issues are similar):

   1. Harold Abelson and Gerald Jay Sussman, with Julie Sussman.
      "Structure and Interpretation of Computer Programs"
      MIT Press (Cambridge, MA) and McGraw-Hill (New York), 1985.
      542 pages.
           Starts off introductory, but rapidly gets into powerful
           Lisp-particular constructs, such as using closures and
           engines, building interpreters, compilers and
           object-oriented systems.  

   2. Daniel P. Friedman and M. Felleisen.
      "The Little LISPer"
      Science Research Associates (Chicago), 1974. 58 pages.
      MIT Press (Cambridge, MA), 1987. ISBN 0-262-56038-0.
           Good for a quick introduction. Uses Scheme instead of
           Common Lisp.  

   3. George Springer and Daniel P. Friedman
      "Scheme and the Art of Programming" 
      MIT Press and McGraw Hill, 1989.
           Introduces basic concepts of programming in Scheme. Also deals 
           with object oriented programming, co-routining, continuations. 

   4. Wolfgang Kreutzer and Bruce McKenzie
      "Programming for Artificial Intelligence: 
       Methods, Tools and Applications"
      Addison-Wesley (Reading, MA), 1990. 682 pages. 
      ISBN 0-201-41621-2.
           Discusses Scheme, Prolog, and Smalltalk, gives an overview of
           the history and philosophy of AI, surveys three major
           programming paradigms (procedural, declarative, and
           object-oriented), and metaphors to AI programming.

   5. Smith
      "Introduction to Scheme"
       1988.
           Focuses on PC Scheme.

   6. Michael Eisenberg 
      "Programming in Scheme"
      Scientific Press (Redwood City, CA), 1988. 304 pages.

----------------------------------------------------------------
[3] What documentation is available about object-oriented programming in Lisp?

Books about object-oriented programming in Lisp include:

   1. See CLtL2 for a description of the CLOS standard.

   2. Sonya E. Keene
      "Object-Oriented Programming in Common Lisp: 
       A Programmer's Guide to CLOS "
      Addison-Wesley (Reading, MA), 1989. 266 pages. ISBN 0-201-17589-4.
           Tutorial introduction to CLOS with many examples and
           a lot of good advice for designing large programs using CLOS.

   3. Jo A. Lawless and Molly M. Miller.
      "Understanding CLOS: the Common Lisp Object System"
      Digital Press, 1991. 192 pages.

   4. Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow.
      "The Art of the Metaobject Protocol"
      MIT Press, 1991. 335 pages. ISBN 0-262-61074-4
           The first part of the book presents a model CLOS implementation,
           introduces the basic principles of metaobject protocols, and 
           works through the key elements of the CLOS Metaobject Protocol.
           The second half is the detailed specification of the CLOS
           Metaobject Protocol. A simple working interpreter suitable
           for experimentation is contained in an appendix.

   5. Robert R. Kessler and Amy R. Petajan.
      "LISP, Objects, and Symbolic Programming"
      Scott, Foresman and Company (Glenview, IL), 1988. 644 pages.
           Includes a small Lisp compiler.
----------------------------------------------------------------
[4] How can I improve my Lisp programming style and coding efficiency?

There are several books about Lisp programming style, including:
   
   1. Molly M. Miller and Eric Benson
      "Lisp Style and Design"
      Digital Press, 1990. 214 pages. ISBN 1-55558-044-0.
           How to write large Lisp programs and improve Lisp programming 
           style. Uses the development of Lucid CL as an example. 

   2. Robin Jones, Clive Maynard, and Ian Stewart.
      "The Art of Lisp Programming"
      Springer-Verlag, 1989. 169 pages.

   3. W. Richard Stark.
      "LISP, Lore, and Logic: an algebraic view of LISP
       programming, foundations, and applications"
      Springer-Verlag, 1990. 278 pages.
           Self-modifying code, self-reproducing programs, etc.

   4. CMU CL User's Manual, Chapter 7, (talks about writing
      efficient code). It is available by anonymous ftp from any CMU CS 
      machine (e.g., lisp-rt1.slisp.cs.cmu.edu) as the file
        /afs/cs.cmu.edu/project/clisp/docs/cmu-user/cmu-user.ps 
      [when getting this file by anonymous ftp, one must cd to 
      the directory with one command, as intermediate directories
      a protected during an anonymous ftp].

   5. See also Norvig's book, SICP (Abelson & Sussman), SAP
      (Springer and Friedman).

Here are some general suggestions/notes about improving Lisp
programming style:

   Functions often abused or misunderstood by novices: 
      - EVAL
      - PROGV. Avoid unnecessary use of special variables; PROGV
        is especially dangerous because of the risk that variables
        will get dynamically rebound.
      - CATCH and THROW. Often a named BLOCK and RETURN-FROM are
        more appropriate.
      - Many programmers religiously avoid using BLOCK, PROG, TAGBODY.
      - Destructive operations, such as NCONC, SORT, DELETE,
        RPLACA, and RPLACD, should be used carefully and sparingly.
        In general, trust the garbage collector: allocate new
        data structures when you need them.
   Think twice before using any of these functions.

   To improve the readability of your code,
      - Don't use any C{A,D}R functions with more than two
        letters between the C and the R. When nested, they become
        hard to read. If you have complex data structures, you
        are often better off describing them with a DEFSTRUCT,
        even if the type is LIST. If you must use C{A,D}R, try to
        use destructuring-bind instead.
      - Use COND instead of IF and PROGN. In general, don't use PROGN if
        there is a way to write the code within an explicit
        progn. For example, 
           (if (foo x)
               (progn (print "hi there") 23)
               34)
        should be written using COND instead.

   Don't use rplaca and rplacd. If you must, use (setf (car ..) ..)
   and (setf (cdr ..) ..).
   
   Don't use quoted constants where you might later destructively
   modify them. For example, instead of writing '(c d) in
      (defun foo ()
        (let ((var '(c d)))
          ..))
   write (list 'c 'd) instead. Using a quote here can lead to
   unexpected results later. If you later destructively modify the 
   value of var, this is self-modifying code! Some Lisp compilers
   will complain about this, since they like to make constants
   read-only. Modifying constants has undefined results in ANSI CL.

   Don't proclaim unsafe optimizations, such as
      (proclaim '(optimize (safety 0) (speed 3) (space 1))) 
   since this yields a global effect. Instead, add the
   optimizations as local declarations to small pieces of
   well-tested, performance-critical code:
      (defun well-tested-function ()
         (declare (optimize (safety 0) (speed 3) (space 1)))
        ..)
   Such optimizations can remove run-time type-checking, which
   is necessary unless you've very carefully checked your code
   and added all the appropriate type declarations.

   Don't add declarations to code until it is fully debugged.
   Incorrect declarations can be an annoying source of errors.
   Use CHECK-TYPE liberally while developing code, if you later
   intend to add declarations.

   To produce efficient code,
      - choose the right algorithm. For example, append is an
        O(n^2) operation, so replacing it with a more efficient
        algorithm (e.g., keeping a pointer to the last cons of 
        the list and nconcing onto the end of that) can speed up
        the code. 
      - use type declarations liberally, if you are a seasoned
        Lisp programmer. This helps the compiler
        generate more specific and optimized code. It also lets
        the reader know what assumptions were made. For example,
        if you only use fixnum arithmetic, adding declarations
        can lead to a significant speedup. If you are a novice
        Lisp programmer, you should use type declarations
        sparingly, as there is no checking to see if the
        declarations are correct.
      - check the code produced by the compiler by using the
        disassemble function
----------------------------------------------------------------
[5] Where can I learn about implementing Lisp interpreters and compilers?

Books about Lisp implementation include:

   1. John Allen
      "Anatomy of Lisp"
      McGraw-Hill, 1978. 446 pages. ISBN 0-07-001115-X

   2. Kamin
      "Programming Languages, An Interpreter-Based Approach"
           Includes sources to several interpreters for Lisp-like
           languages, and a pointer to sources via anonymous ftp.

   3. Sharam Hekmatpour
      "Lisp: A Portable Implementation"
      Prentice Hall, 1985. ISBN 0-13-537490-X.
           Describes a portable implementation of a small dynamic
           Lisp interpreter (including C source code). 

   4. Peter Henderson
      "Functional Programming: Application and Implementation"
      Prentice-Hall (Englewood Cliffs, NJ), 1980. 355 pages.

   5. Peter M. Kogge
      "The Architecture of Symbolic Computers"
      McGraw-Hill, 1991. ISBN 0-07-035596-7.
           Includes sections on memory management, the SECD and
           Warran Abstract Machines, and overviews of the various
           Lisp Machine architectures.
   
   6. Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
      "Essentials of Programming Languages"
      MIT Press, 1992, 536 pages. ISBN 0-262-06145-7.
           Teaches fundamental concepts of programming language
           design by using small interpreters as examples. Covers
           most of the features of Scheme. Includes a discussion
           of parameter passing techniques, object oriented languages,
           and techniques for transforming interpreters to allow
           their implementation in terms of any low-level language.
           Also discusses scanners, parsers, and the derivation of
           a compiler and virtual machine from an interpreter.

   7. Also see the proceedings of the biannual ACM Lisp and
      Functional Programming conferences, and the implementation
      notes for CMU Common Lisp.
----------------------------------------------------------------
[6] Where can I get/buy Lisp for the ... architecture?
     
There are about eight free implementations of Lisp and Scheme
interpreters and compilers and a dozen or so commercially available
Lisp and Scheme implementations.

Free Lisp implementations:

   Kyoto Common Lisp (KCL) is free, but requires a license.  Austin Kyoto
   Common Lisp (AKCL) is Bill Schelter's improvements to KCL. Both are
   available by anonymous ftp from rascal.ics.utexas.edu [128.83.138.20]
   in the directory /pub. KCL is in the file kcl.tar, and AKCL is in the
   file akcl-xxx.tar.Z (take the highest value of xxx).  Runs on Sparc,
   IBM RT, RS/6000.  Mailing List: kcl@rascal.ics.utexas.edu

   XLISP is free, and runs on the IBM PC (MSDOS), Amiga (Atari ST),
   Macintosh, and Unix. It should run on anything with a C compiler.  It
   was written by David Michael Betz, 127 Taylor Road, Peterborough, NH
   03458. The reference manual was written by Tim Mikkelsen. Version 2.0
   is available by anonymous ftp from
           cs.orst.edu:/pub/xlisp/ [128.193.32.1] or
           sumex-aim.stanford.edu:info-mac/lang/
   Version 2.1 is the same as XLISP 2.0, but modified to bring it closer
   to Common Lisp and with several bugs fixed. It can be obtained by
   anonymous ftp from
                   glia.biostr.washington.edu      128.95.10.115
                   bikini.cis.ufl.edu              128.227.224.1
   in the file xlisp21c.zip (soon xlisp21d.zip) and comes with IBM/PC
   executables. For obtaining a copy through US mail, send email to Tom
   Almy, toma@sail.labs.tek.com.

   CMU Common Lisp is free, and runs on Sparcs (Mach and SunOs),
   DecStation 3100 (Mach), IBM RT (Mach) and requires 16mb RAM, 25mb
   disk. It includes an incremental compiler, Hemlock emacs-style editor,
   source-code level debugger, code profiler and is mostly X3J13
   compatible, including the new loop macro.  It is available by
   anonymous ftp from any CMU CS machine, such as
   lisp-rt1.slisp.cs.cmu.edu and lisp-rt2.slisp.cs.cmu.edu, in the
   directory /afs/cs.cmu.edu/project/clisp/release. Login with username
   "anonymous" and "userid@host" (your email address) as password. Due to
   security restrictions on anonymous ftps, it is important to "cd" to
   the source directory with a single command. Don't forget to put the
   ftp into binary mode before using "get" to obtain the
   compressed/tarred files. The binary releases are contained in files of
   the form
                <version>-<machine>_<os>.tar.Z
   Other files in this directory of possible interest are
   15b-sun4-source.tar.Z, which contains all the ".lisp" source files
   used to build version 15b for Sparc machines, and
   10-16-91-cmucl-master.tar.Z which contains the project/clisp/master
   subtree, with RCS source (,v) files for all of CMU CL. Bug reports
   should be sent to cmucl-bugs@cs.cmu.edu.

   PC LISP is a Lisp interpreter for IBM PCs (MSDOS) available from any
   site that archives the group comp.binaries.ibm.pc, such as
   ix1.cc.utexas.edu:/microlib/pc/languages/pc-lisp/ps-lisp.arc
   wuarchive.wustl.edu:/mirrors/msdos/lisp/pclisp30.zip

Free Scheme implementations:
   
   Many free Scheme implementations are available from altdorf.ai.mit.edu
   [18.43.0.246]. See also the Scheme Repository described below in the
   section about repositories of Lisp/Scheme code.

   C-Scheme, free by anonymous ftp from altdorf.ai.mit.edu.

   PC-Scheme, free by anonymous ftp from altdorf.ai.mit.edu in the
   directory /archive/pc-scheme/.  Written by Texas Instruments. Runs on
   IBM PCs and compatibles.  Includes an optimizing compiler and an
   emacs-like editor.  Conforms to the Revised^4 Report on Scheme. Also
   supports the dialect used in SICP. The official implementation costs
   $95 and includes a reference manual and user's guide. Write to: Texas
   Instruments, 12501 Research Boulevard, MS 2151, Austin, TX 78759 and
   order TI Part number #2537900-0001, or call 1-800-TI-PARTS and order
   it using your Visa or Mastercard.

   MIT Scheme, free by anonymous ftp from altdorf.ai.mit.edu in the
   directory scheme-7.1. The compiler is currently ported to four
   architectures: MC68020/30/40, HP Precision Architecture, MIPS, and
   VAX. The interpreter will soon be available for any Unix-based
   machine. Includes a reference manual and user's manual, as well as a
   copy of the Revised^4 Report on Scheme. Send bug reports to
   bug-cscheme@zurich.ai.mit.edu. The mailing list
   info-cscheme@altdorf.ai.mit.edu is gatewayed to the comp.lang.scheme.c
   mailing list.

   SCM, free by anonymous ftp from altdorf.ai.mit.edu:archive/scm or
   nexus.yorku.ca:pub/oz/scheme/new. Current version 3c. Runs on Amiga,
   IBM PC, VMS, Macintosh, Unix, and similar systems.  Scm conforms to
   the Revised^4 Report on the Algorithmic Language Scheme and the IEEE
   P1178 specification. Scm is written in C. ASCII and EBCDIC are
   supported.

   Gambit is an optimizing Scheme compiler/system. It supports the IEEE
   Scheme standard and `future' construct. It is available by anonymous
   ftp from acorn.cs.brandeis.edu:/dist [129.64.3.8] and runs on M680x0
   based unix machines, such as Sun3, HP300, BBN GP1000, etc. Contact
   Marc Feeley at feeley@chaos.cs.brandeis.edu.

   T3.1 is a Scheme-like language developed at Yale. Available by
   anonymous ftp from altdorf.ai.mit.edu in the directory /archive/t3.1/.
   Runs on DecStations 3100 (PMAX), Sun4 (SPARC), Sun3, Vax/Unix, Encore,
   HP workstations, Apollo and Macintosh (AUX).  Includes a copy of the
   online version of the T manual and release notes for T3.0 and T3.1.
   The vaxen/sun implementations include a foreign function (C)
   interface.  To be informed of fixes, new releases, etc., send your
   email address to t-project@cs.yale.edu. Bug reports should go to
   t3-bugs@cs.yale.edu. A multiprocessing version of T is available from
   masala.lcs.mit.edu:/pub/mult

   Oaklisp is an seamless integration of Scheme with an object-oriented
   substrate. Available by anonymous ftp from f.gp.cs.cmu.edu
   [128.2.250.164] in the directory /usr/bap/oak/ftpable, and includes
   reference and implementation manuals.

   Elk (Extension Language Kit) is a Scheme interpreter designed to be
   used as a general extension language. Available by anonymous ftp from
   the Scheme Repository in nexus.yorku.ca:/pub/scheme/imp/.  Runs on
   Unix, SunOs, and Ultrix based platforms, including VAX, Sun3, Sun4
   (Sparc), 680x0, 80386, MIPS, and IBM RT. The Elk interpreter is mostly
   R3RS compatible. Elk has interfaces to Xlib and the various widget
   sets.  Implemented by Oliver Laumann.

   EuLisp is available from gmdzi.gmd.de [129.26.8.90] in the
   /lang/lisp/eulisp directory.

   Scheme->C compiles R3RS Scheme to C that is then compiled by the
   native C compiler for the target machine. Runs on Vaxen and DecStation
   3100s running Ultrix, as well as Sun3, Sun4, and Apollo. It is
   available for anonymous ftp from gatekeeper.dec.com [16.1.0.2] in
   /pub/DEC/Scheme-to-C.  Information on obtaining documentation may be
   obtained by sending mail to WRL-Techreports@decwrl.dec.com with
   subject line "help".

   SIOD (Scheme in One Defun), free by anonymous ftp from
   bu.edu:users/gjc/siod-v2.4-shar [128.197.2.6]. Runs on VAX/VMS, VAX
   UNIX, Sun3, Sun4, Amiga, Macintosh, MIPS, Cray.  Small scheme
   implementation in C arranged as a set of subroutines that can be
   called from any main program for the purpose of introducing an
   interpreted extension language.  Compiles to ~20K bytes of executable.
   Lisp calls C and C calls Lisp transparently.

   XScheme is available free by anonymous ftp from uunet.uu.net in the
   directories MSDOS/languages/X-scheme and amiga-sources/xscheme.20.zoo.
   Implemented by David Betz.  XScheme is discussed in the newsgroup
   comp.lang.scheme.x.  It may also be found in the Scheme Repository.

   Fools' Lisp is a small Scheme interpreter that is R4RS conformant, and
   is available by anonymous ftp from scam.berkeley.edu [128.32.138.1] in
   the directory src/local/fools.tar.Z. Runs on Sun3 and Sun4 (SunOs),
   DecStation 3100s, Vax (Ultrix), Sequent, and Apollo. Implemented by
   Jonathan Lee <jonathan@scam.berkeley.edu>.

   Scheme84 is in the public domain, and available by mail from Indiana
   University. It runs on the VAX under either VMS or BSD Unix. To
   receive a copy, send a tape and return postage to: Scheme84
   Distribution, Nancy Garrett, c/o Dan Friedman, Department of Computer
   Science, Indiana University, Bloomington, Indiana. Call 1-812-335-9770
   or send mail to nlg@indiana.edu for more information.

   UMB Scheme is a R4RS Scheme available by anonymous ftp from
   ucbarpa.berkeley.edu in pub/UMB_scheme.tar.Z and also in the Scheme
   Repository. It includes a simple editor, debugger, Written by William
   Campbell, University of Massachusetts at Boston, bill@cs.umb.edu.

Free Scheme Implementations implemented in Lisp:   

   Peter Norvig's book "Paradigms of AI Programming" has a chapters about
   Scheme interpreters and compilers, both written in Common Lisp. The
   software from the book is available by anonymous ftp from
   unix.sri.com:pub/norvig and on disk in Macintosh or DOS format from
   the publisher, Morgan Kaufmann.  For more information, contact: Morgan
   Kaufmann, Dept. P1, 2929 Campus Drive, Suite 260, San Mateo CA 94403,
   or call Toll free tel: (800) 745-7323; FAX: (415) 578-0672

   PseudoScheme is available free by anonymous ftp from
   altdorf.ai.mit.edu:/archive/pseudo/pseudo-2-8.tar.Z. It is Scheme
   implemented on top of Common Lisp, and runs in Lucid, Symbolics CL,
   VAX Lisp under VMS, and Explorer CL. It should be easy to port to
   other Lisps. It was written by Jonathan Rees (jar@altdorf.ai.mit.edu,
   jar@cs.cornell.edu). Send mail to info-clscheme-request@mc.lcs.mit.edu
   to be put on a mailing list for announcements. Conforms to R3RS except
   for lacking a correct implementation of call/cc. It works by running
   the Scheme code through a preprocessor, which generates Common Lisp code.

   Scheme88 is available by anonymous ftp from rice.edu:public/scheme88.sh
   and also from the Scheme Repository.

Commercial Lisp implementations:

   Macintosh Common Lisp (MCL) runs on the Apple Macintosh (Mac+ or
   higher with 2.5mb RAM [4mb recommended] and system software 6.0.4 or
   later) and is available from APDA for $495.  It includes a native
   CLOS, Macintosh Toolbox/interface toolkit, generational garbage
   collection, incremental compiler, window-based debugger, source-code
   stepper, object inspector, emacs-style editor, and a foreign function
   (C) interface.  Write to: APDA, Apple Computer Inc., 20525 Mariani
   Avenue, MS 33-G, Cupertino, CA 95014-6299 or call toll free
   1-800-282-2732 (US), 1-800-637-0029 (Canada), 1-408-562-3910. Their
   fax number is 1-408-562-3971 and their telex is 171-576. Email may
   also be sent to APDA@applelink.apple.com. There is a mailing list for
   users <info-mcl@cambridge.apple.com> which is gatewayed to the
   newsgroup comp.lang.lisp.mcl and vice versa. If you don't get news,
   you can be added to the list by sending mail to
   info-mcl-request@cambridge.apple.com.

   Procyon Common Lisp runs on either the Apple Macintosh or IBM PC
   (MSDOS), costing approximately $2700. It requires 8mb RAM on the
   Macintosh and 5mb RAM on PCs, and includes a native CLOS with
   meta-object protocol, incremental compilation, foreign function
   interface, object inspector, text editor, debugger, and trace.  Write
   to: ExperTelligence, Inc., 5638 Hollister Ave, Suite 302, Goleta, CA
   93117 or call 1-800-828-0113, (805) 967-1797. Their fax is (805)
   964-8448 and email is D2042@applelink.apple.com.  An alternate address
   for British customers is: Procyon Research Ltd., Block B, Westbrook
   Centre, Milton Road, Cambridge CB4 1YQ, UK, with phones 011
   44-223-421221, 011 44-223-65011, FAX 011 44-223-460290, and email
   UK0061@applelink.apple.com.

   Franz Lisp 2.0 runs on the Apple Macintosh, requiring 1mb RAM for the
   interpreter ($99) and 2.5mb RAM for the compiler ($199).  Write to:
   Fort Pont Research, 15 Fort Pond Road, Acton, MA 01720 or call
   1-508-263-9692.

   Allegro Common Lisp 4.1 runs on a variety of platforms, including
   Sparcs and DecStations ($3750), as well as the NeXT ($1875).  It
   requires 12mb RAM for the 680x0 and 16mb for RISC. It includes native
   CLOS, X-windows support, Unix interface, incremental compilation,
   generational garbage collection, and a foreign function interface.
   Options include Allegro Composer (development environment, including
   debugger, inspector, object browser, time/space code profiler, and a
   graphical user interface), Common LISP Interface Manager (CLIM is a
   Symbolic's Dynamic WIndows clone) and Allegro CLIP (a parallel version
   of Lisp for the Sequent).  Write to: Franz Inc., 1995 University
   Avenue, Berkeley, CA 94704 or call (510) 548-3600 (area code was 415),
   fax (510) 548-8253, telex 340179 WUPUBTLXSFO. Bug reports can be
   mailed to bugs@franz.com. Questions about Franz Inc. products (e.g.,
   current and special pricing) can be sent to info@franz.com.

   Ibuki Common Lisp is a commercialized and improved version of Kyoto
   Common Lisp. It runs on over 30 platforms, including Sparc, Dec
   (Ultrix), Apollo, HP 9000, IBM RS/6000, Silicon Graphics and IBM PCs.
   It includes an incremental compiler, interpreter, foreign function
   interface. It generates C code from the Lisp and compiles it using the
   local C compiler.  Cost is $2800 (workstations), $3500 (servers), $700
   (IBM PCs).  Ibuki now also has a product called CONS which compiles
   Lisp functions into linkable Unix libraries.  Write to: Ibuki Inc., PO
   Box 1627, Los Altos, CA 94022, or call 415-961-4996, fax 415-961-8016.

   Lucid Common Lisp runs on a variety of platforms, including PCs (AIX),
   Apollo, HP, Sun-3, Sparc, IBM RT, IBM RS/6000, Decstation 3100,
   Silicon Graphics, and Vax, and costs $2500 (IBM PCs), $4400 (other
   platforms). Lucid includes native CLOS, foreign function interface,
   and generational garbage collection.  Write to: Lucid Inc., 707 Laurel
   Street, Menlo Park, CA 94025, or call toll free in CA 800-225-1386
   (outside CA 800-843-4204), 415-329-8400, fax 415-329-8480, or
   email customer-support@lucid.com.

   Medley is a Common Lisp development environment that includes a native
   CLOS, window toolkit, window-based debugger, incremental compiler,
   structure editor, inspectors, stepper, code analysis tools, and
   browsers. It runs on a variety of platforms, including Suns,
   DecStations, 386s, IBM RS/6000, MIPS, HP, and Xerox 1186. Requires
   Unix and 8mb RAM.  Write to: Venue, 1549 Industrial Rd, San Carlos, CA
   94070, or call 1-800-228-5325, fax 415-508-9770, or email
   aisupport.mv@envos.xerox.com.

   Golden Common Lisp (GCLisp) runs on IBM PCs under DOS and Windows,
   costing $2,000 ($250 extra for Gold Hill Windows), and includes an
   incremental compiler, foreign function interface, interactive
   debugger, and emacs-like editor. It supports DDE and other Windows
   stuff, and is CLtL1 compatible.  It requires 4mb RAM. See a review in
   PC-WEEK 4/1/91 comparing GCLisp with an older version of MCL.  Write
   to: Gold Hill Computers, 26 Landsdowne Street, Cambridge, MA 02139, or
   call (617) 621-3300.

   Star Saphire Common LISP provides a subset of Common Lisp and includes
   an emacs-like editor. It runs on IBM PCs (MSDOS), requires 640kb RAM,
   and costs $100.  Write to: Sapiens Software Corporation, PO Box 3365,
   Santa Cruz, CA 95063-3365, call (408) 458-1990, or fax (408) 425-0905.

   Software Engineer is a Lisp for Windows that creates small stand-alone
   executables. It is a subset of Common Lisp, but includes CLOS. It
   requires 2mb RAM, but can use up to 16mb of memory, generating 286
   specific code. It costs $250.  Write to: Raindrop Software, 833
   Arapaho Road, Suite 104, Richardson, TX 75081, call (214) 234-2611, or
   fax (214) 234-2674.

   CLOE (Common Lisp Operating Environment) is a cross-development
   environment for IBM PCs (MSDOS) and Symbolics Genera. It includes
   CLOS, condition error system, generational garbage collection,
   incremental compilation, code time/space profiling, and a stack-frame
   debugger. It costs from $625 to $4000 and requires 4-8mn RAM and a 386
   processor.  Write to: Symbolics, 8 New England Executive Park,
   Burlington, MA 01803, call 1-800-533-SMBX, or fax (617) 221-1099.

   Top Level Common Lisp includes futures, a debugger, tracer, stepper,
   foreign function interface and object inspector.  It runs on Unix
   platforms, requiring 8mb RAM, and costs $687.  Write to: Top Level,
   100 University Drive, Amherst, MA 01002, call (413) 549-4455, or fax
   (413) 549-4910.

   Harlequin Lispworks runs on a variety of Unix platforms, including
   Sun3, Sparc, RS/6000, DEC (MIPS), MIPS, Intergraph, HP 400, HP 700,
   and IBM PCs. It is a full graphical Common Lisp environment and costs
   $2500. Harlequin is coming out with a delivery 386 Lisp in June.
   Write to: Harlequin Limited, Barrington Hall, Barrington, Cambridge,
   CB2 5RG, call 0223 872522 (or 44223 872522 outside UK), telex 818440
   harlqn g, fax 0223 872519, or send email to ai@uk.co.harlqn (or
   ai@harlqn.co.uk for US people).

   Lisp-to-C Translator translates Common Lisp into C. It costs $12,000.
   Write to: Chestnut Software, Inc., 636 Beacon Street, Boston, MA 02215, 
   call (617) 262-0914, or fax (617) 536-6469.

   Poplog Common Lisp is an integrated Lisp/Prolog environment with an
   incremental compiler. It runs on a variety of platforms, including
   Unix ($749), Sparc ($4500), Macintosh A/UX ($749), and VAX/VMS
   ($4500). Write to: Computable Functions, Inc., 35 South Orchard Drive,
   Amherst, MA 01002, call (413) 253-7637, or fax (413) 545-1249.

Other Lisps for PCs include: 
   o  UO-LISP from Calcode Systems, e-mail:calcode!marti@rand.org
      It comes complete with compiler and interpreter, and is optimised for
      large programs.  It is Standard LISP, not Common LISP. They are based
      in Amoroso Place in Venice, CA. 
   o  muLISP-87. Not Common Lisp.
   o  LISP/88 v1.0. Gotten from Norell Data Systems, 3400 Wilshire Blvd,
      Los Angeles, CA 90010, in 1983. They may or may not still exist. 
   o  IQLisp. Not a Common Lisp but still very good for PCs - you can
      actually get a lot done in 640K.  The lisp itself runs in less than
      128K and every cons cell takes only 6 bytes.  Unfortunately that
      makes the 640K (maybe a little more, but certainly no more than 1M)
      limit really hard. It has a byte code compiler which costs extra. 
      This has support for all sorts of PC specific things.
      It costs $175 w/o compiler, $275 with. 
      Write to: Integral Quality, Box 31970, Seattle, WA 98103,
      call Bob Rorschach, (206) 527-2918 or email rfr@franz.com. 

Lisps which run on special-purpose hardware (Lisp Machines) include
   o  Symbolics
   o  TI Explorers
   o  Xerox Interlisp.

Commercial Scheme implementations:

   Chez Scheme is fully compatible with the IEEE and R4RS standards for the
   Scheme programming language and includes an incremental compiler, object
   inspector, multitasking with engines, and a foreign function interface. It
   runs on Sparc and Sun3 (SunOs), Vax and DecStation (Ultrix), Apollo, and
   NeXT, costs approximately $2000 and requires 4-8mb RAM.  Implemented by
   Kent Dybvig, Robert Hieb, and Carl Bruggeman.  Write to: Cadence Research
   Systems, 620 Park Ridge Road, Bloomington, IN 47408, call (812) 333-9269,
   or fax (812) 332-4688.  email: dyb@iuvax.cs.indiana.edu

   MacScheme is a Scheme interpreter and compiler for the Apple Macintosh, and
   includes an editor, debugger and object system.  MacScheme costs $125
   (includes compiler) and Scheme Express costs $70 (interpreter only). It
   requires 1mb RAM. A development environment (MacScheme+Toolsmith) costs
   $395. Conforms to the Revised^4 Report on the Algorithmic Language Scheme.
   MacScheme+Toolsmith includes support for menus, windows, and interfaces to
   the Macintosh Toolbox, and can create small standalone Macintosh
   executables. Implemented by Will Clinger, John Ulrich, Liz Heller and Eric
   Ost.  Write to: Lightship Software, PO Box 1636, Beaverton, OR 97075, or
   call (503) 292-8765. They're moving to California. The temporary phone
   number is 415-940-4008 (Liz Heller). The new phone number will be
   415-694-7799.

   EdScheme runs on Macintosh, DOS and Atari Amiga and costs $50.  It includes
   an incremental compiler, and editor, and is a close match to the IEEE
   standard. Implemented by Iain Ferguson, Edward Martin, and Burt Kaufman.
   The book (The Schemer's Guide) costs $30.  Write to: Schemers Inc., 4250
   Galt Ocean Mile, Suite 7U, Fort Lauderdale, FL 33308, call (305) 776-7376,
   or fax (305) 749-3541. You can also send email to 71020.1774@compuserve.com
----------------------------------------------------------------
[7] Where can I get an implementation of Prolog in Lisp?

Implementations of Prolog in Lisp:

   The Frolic package from the University of Utah is written in Common Lisp
   and available by anonymous ftp from cs.utah.edu:pub/frolic.tar.Z
     
   The Prolog package from the University of Calgary is written in Scheme and
   has support for delayed goals and interval arithmetic. It relies on
   continuations, and so is not easily ported to Common Lisp. Available by
   anonymous ftp from cpsc.ucalgary.ca:pub/prolog1.1/prolog11.tar.Z
     
   A prolog interpreter for Chez Scheme is available by anonymous ftp from
   titan.rice.edu:public/slog.sh
     
   LM-PROLOG by Ken Kahn and Mats Carlsson is written in ZetaLisp and not
   easily portable to Common Lisp. It is available by anonymous ftp from
   sics.se:archives/lm-prolog.tar.Z.
     
   Peter Norvig's book "Paradigms of AI Programming" includes Common Lisp
   implementations of a prolog interpreter and compiler. The software is
   available by anonymous ftp from unix.sri.com:pub/norvig and on disk in
   Macintosh or DOS format from the publisher, Morgan Kaufmann.  For more
   information, contact: Morgan Kaufmann, Dept. P1, 2929 Campus Drive, Suite
   260, San Mateo CA 94403, (800) 745-7323; FAX: (415) 578-0672
----------------------------------------------------------------
[8] What Lisp-related discussion groups and mailing lists exist?
     
Before posting to any discussion group, please read the rest
of this FAQ, to make sure your question isn't already answered.
     
First of all, there are several lisp-related newsgroups:
   comp.lang.lisp          General Lisp-related discussions.
                           Not currently archived by any known site.
   comp.lang.clos          Discussion related to CLOS, PCL, and
                           object-oriented programming in Lisp.
   comp.lang.lisp.mcl      Discussions related to Macintosh
                           Common Lisp. This newsgroup is gatewayed
                           to the info-mcl@cambridge.apple.com
                           mailing list.
   comp.lang.lisp.franz    Discussion of Franz Lisp, a dialect of Lisp.
                           (Note: *not* Franz Inc's Allegro.)
   comp.lang.lisp.x        Discussion of XLISP, a dialect of Lisp.
   comp.lang.scheme        General Scheme-related discussion.
                           This newsgroup is gatewayed to the
                           scheme@mc.lcs.mit.edu mailing list.
   comp.lang.scheme.c      Discussion of C-Scheme, a scheme dialect.
                           This newsgroup is gatewayed to the
                           info-cscheme@zurich.ai.mit.edu mailing list.
   comp.ai and subgroups   General AI-related dicusssion.

We list several mailing lists below. In general, to be added to
a mailing list, send mail to the "-request" version of the address.
This avoids flooding the mailing list with annoying and trivial
administrative requests.

General Lisp Mailing Lists:

   common-lisp@mcc.com             Technical discussion of Common Lisp.
   cl-utilities@cs.cmu.edu         Low volume mailing list associated with
                                   the Lisp Utilities repository at CMU.
                                   Do *NOT* post directly to this list.
                                   Send mail to 
                                      CL-Utilities-Request@cs.cmu.edu
                                   instead and the moderator will either
                                   answer your question or post
                                   the message for you.
   lisp-faq@think.com              A mailing list concerning the contents
                                   of this FAQ posting.
   scheme@mc.lcs.mit.edu           Discussion of Scheme. Gatewayed to
                                   the comp.lang.scheme newsgroup.

Particular Flavors of Lisp:

   info-mcl@cambridge.apple.com    Macintosh Common Lisp. Gatewayed
                                   to the comp.lang.lisp.mcl newsgroup.
   slug@ai.sri.com                 Symbolics Lisp Users Group
   allegro-cl@ucbvax.berkeley.edu  Franz Allegro Common Lisp
   allegro-cl@franz.com            Franz Allegro Common Lisp
   kcl@rascal.ics.utexas.edu       Kyoto Common Lisp
   cmucl-bugs@cs.cmu.edu           CMU Common Lisp bug reports
   info-ti-explorer@sumex-aim.stanford.edu  TI Explorer Lisp Machine
   info-cscheme@zurich.ai.mit.edu  C-Scheme. Gatewayed to the
                                   comp.lang.scheme.c newsgroup.
   t-project@cs.yale.edu           T, a dialect of Scheme.
   info-clscheme@mc.lcs.mit.edu    PseudoScheme

Lisp Windowing Systems:

   cl-windows@mcc.com              Common Lisp Window System Discussions.
   bug-clx@expo.lcs.mit.edu        CLX (Common Lisp X Windows)
   clim@bbn.com                    Common Lisp Interface Manager
   clue-review@dsg.csc.ti.com      Common Lisp User-Interface Environment
   express-windows@cs.cmu.edu      Express Windows
   garnet-users@cs.cmu.edu         Garnet
   gina-users@gmdzi.gmd.de         GINA and CLM
   lispworks@harlequin.co.uk       LispWorks 
   winterp@hplnpm.hpl.hp.com       WinterP
   yyonx@csrl.aoyama.ac.jp         YYonX

Lisp Object-Oriented Programming:
   
   CommonLoops@Xerox.com           PCL (Xerox PARC's portable
                                   implementation of CLOS).

Miscellaneous:

   stat-lisp-news-request@umnstat.stat.umn.edu     
           Use of Lisp and Lisp-based systems in statistics. 
   lisp-emacs-forum-request@ucbarpa.berkeley.edu
           Franz Inc's GNU-Emacs/Lisp interface.
     
----------------------------------------------------------------

Questions 9-35 are continued in Part 2 of this Lisp FAQ. 
     
;;; ********************************
;;; Change Log *********************
;;; ********************************
;;; Date      Who     Ver   Reason
;;; ------------------------------------------------------------
;;;  7-FEB-92 mk      1.0   Initial release.
;;; 10-FEB-92 mk      1.1   Pre-release corrections and additions.
;;; ------------------------------------------------------------

;;; *EOF*

Archive-name: lisp-faq/part2
Last-Modified: Mon Feb 10 17:40:59 1992 by Mark Kantrowitz
Version: 1.1

The news.answers newsgroup has been temporarily removed from this
posting until the news.answers moderator gets around to reading his email.

;;; ****************************************************************
;;; Answers to Frequently Asked Questions about Lisp ***************
;;; ****************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp-faq-2.text -- 62773 bytes

This post contains Part 2 of the Lisp FAQ.

If you think of questions that are appropriate for this FAQ, or would
like to improve an answer, please send email us at lisp-faq@think.com.

Topics Covered (Part 2):
  [9]   What FTP resources are available?
  [10]  Is there a GNU-Emacs interface to Lisp?
  [11]  How can I use the X Window System from Lisp?
  [12]  What does CLOS, PCL, X3J13, CAR, CDR, ... mean? 
        What is CLOS (PCL) and where can I get it?
        How do you pronounce CLOS?
        What is CLOS (PCL) and where can I get it?
  [14]  Why does (READ-FROM-STRING "foobar" :START 3) return FOOBAR
        instead of BAR?  
  [15]  Why can't it deduce from (READ-FROM-STRING "foobar" :START 3)
        that the intent is to specify the START keyword parameter
        rather than the EOF-ERROR-P and EOF-VALUE optional parameters?   
  [16]  How I write a function that can access defstruct slots by
        name?  I would like to write something like 
        (STRUCTURE-SLOT <object> '<slot-name>).   
  [17]  Why can't I apply #'AND and #'OR?
  [18]  When is it right to use EVAL?
  [19]  I used a destructive function (e.g. DELETE, SORT), but it
        didn't seem to work.  Why? 
  [20]  After I NREVERSE a list, it's only one element long.  After I
        SORT a list, it's missing things.  What happened? 
  [21]  What is the equivalent of EXPLODE and IMPLODE in Common Lisp?
  [22]  Is Lisp inherently slower than more conventional languages such as C?
  [23]  Why does my program's behavior change each time I use it?
  [24]  Why does Common Lisp have "#'"?
  [25]  How can I list all the CLOS instances in a class?
  [26]  How do I call non-Lisp functions from Lisp?
  [27]  Can I call Lisp functions from other languages?
  [28]  Why does (READ-LINE) return "" immediately instead of waiting
        for me to type a line?  
  [29]  I typed a form to the read-eval-print loop, but nothing happened. Why?
  [30]  I want to call a function in a package that might not exist at
        compile time. How do I do this?  
  [31]  What is CDR-coding?
  [32]  What is garbage collection?
  [33]  How do I save an executable image of my loaded Lisp system?
  [34]  I'm porting some code from a Symbolics Lisp machine to some
        other platform, and there are strange characters in the code.
        What do they mean?  
  [35]  History: Where did Lisp come from?

Search for [#] to get to question number # quickly.

----------------------------------------------------------------
[9] What FTP resources are available?

There are several repositories of publicly redistributable and
public domain Lisp and Scheme code. 

   The Lisp Utilities collection is accessible by anonymous ftp
   to any CMU CS machine (e.g., a.gp.cs.cmu.edu, b.gp.cs.cmu.edu)
   or through AFS in the directory
           /afs/cs.cmu.edu/user/mkant/Public/Lisp-Utilities/
   If accessing this directory through anonymous ftp, it is 
   important to cd to the directory using one command, as
   intermediate directories are protected during an anonymous ftp.
   Files included in the repository include:
      extensions.lisp         A collection of extensions to Common Lisp.
      initializations.lisp    Brad Miller's initializations packaged
                              for Allegro CL 4.0.
      xref.lisp               Portable cross referencing tool for Lisp.
                              Similar to the Symbolics Who-Calls and
                              the Xerox MasterScope programs.
      defsystem.lisp          Portable system definition facility (a
                              "Make" for lisp). More featureful than
                              other defsystem implementations.
      logical-pathnames.lisp  Portable implementation of the X3J13
                              June 1989 specification for logical pathnames. 
      metering.lisp           Portable code time/space profiling tool.
      source-compare.lisp     A portable "diff" utility for Lisp.
      user-manual.lisp        Program which helps with documenting Lisp code.
      psgraph.lisp            Joe Bates' PostScript DAG grapher.
      matcher.lisp            A regexp-like matcher for Lisp.
      framework.lisp          A portable generic frame system.
      date-formatter.lisp     Simple code for formatting a date.
      save-object.lisp        Kerry Koitzsch's package to save ASCII
                              representations of Lisp objects to a file. 
      defpackage.lisp         Stephen Nicoud's semi-portable
                              CLtL2 version of defpackage. 
      johnson-yacc.lisp       Mark Johnson's lisp YACC.
      ops5.tar.Z              Public domain Common Lisp implementation 
                              of the OPS5 production system interpreter.
                              "Expert System Shell".
                              Written by Charles Forgy and ported by
                              George Wood and Jim Kowalski.
      cmu-loop.lisp           Implements the CLtL2 Loop Macro.
      mit-loop.lisp           Implements the CLtL1 Loop Macro.
      sloop.lisp              William Schelter's loop macro, not CLtL.
      yloop.lisp              Frank Ritter and Jim Panagos' implementation
                              of the Yale loop macro described in
                              McDermont, Charniak and Riesbeck's
                              AI programming book. Not CLtL.
      ew/                     Express Windows distribution.
      iterate/                The Iterate Macro.
      series/                 Waters' Series Macro package.
   The Lisp Utilities repository is maintained by Mark
   Kantrowitz, cl-utilities-request@cs.cmu.edu.

   The Scheme Repository contains a Scheme bibliography, copies
   of the R4RS report, sample Scheme code for a variety of
   purposes, several utilities, and some implementations. The
   repository is maintained by Ozan S. Yigit, scheme@nexus.yorku.ca.
   The repository is accessible by anonymous ftp at
   nexus.yorku.ca [130.63.9.66] in the directory pub/scheme/.

   Scheme Implementations may also be found at altdorf.ai.mit.edu:/archive/ 

   The Macintosh Common Lisp repository contains Lisp code for
   MCL contributed by MCL users. It is available by anonymous ftp from
   cambridge.apple.com:pub/MACL/CONTRIB       [134.149.2.3]
   and also contains the Info-MCL mailing list archives.

   MIT AI Lab -- ftp.ai.mit.edu:pub/
      loop-macro.tar               [LOOP from CLtL]
      series/                      [SERIES from CLtL2]
      Iterate/                     [Alternative to series and loop.]
      clmath.tar                   [Symbolic math]
      xp/                          [Waters' XP Lisp Pretty Printer]

   Common Lisp versions of the mini programs from "Inside Computer
   Understanding" by Schank and Riesbeck, 1981, are available by anonymous ftp
   from cs.umd.edu in the directory pub/schank. Contact Bill Andersen
   (waander@cs.umd.edu) for more information. The directory pub/schank/icbr
   contains the complete code for "Inside Case-Based Reasoning" by Riesbeck
   and Schank, 1989.

   Norvig:
   The software from Peter Norvig's book "Paradigms of AI Programming" is
   available by anonymous ftp from unix.sri.com:pub/norvig and on disk in
   Macintosh or DOS format from the publisher, Morgan Kaufmann.
   |
   Software includes Common Lisp implementations of:
      Eliza and pattern matchers, Emycin, Othello, Parsers,
      Scheme interpreters and compilers, Unification and a prolog
      interpreter and compiler, Waltz line-labelling,
      implementation of GPS, macsyma, and random number generators.
   |
   For more information, contact:
           Morgan Kaufmann, Dept. P1, 2929 Campus Drive, Suite 260
           San Mateo CA 94403, (800) 745-7323; FAX: (415) 578-0672

   A catalog of free and commercial natural language software
   is available from the Natural Language Software Registry,
   by anonymous ftp from tira.uchicago.edu [128.135.96.31] in
   the directory /registry, or by email to registry@tira.uchicago.edu.

 Other sites contain specific programs:

   PCL -- parcftp.xerox.com:pcl/ [13.1.100.206]
   Portable Common Loops (PCL) is a portable implementation of
   the Common Lisp Object System (CLOS).

   Gabriel Lisp Benchmarks are available by anonymous ftp as
   ai.toronto.edu:/pub/gabriel-lisp-benchmarks.tar.Z.

   GLisp -- apple.com:/pub/dts/mac/lisp/glisp.tar.Z
   
   OBVIUS -- whitechapel.media.mit.edu:/pub/ [18.85.0.125]
   Object-Based Vision and Image Understanding System (OBVIUS), is a Common
   Lisp image processing package. Provides a library of image processing
   routines (e.g., convolutions, fourier transforms, statistical
   computations, etc.) on gray or binary images and image-sequences (no
   color support yet), an X windows display interface, postscript printer
   output, etc.  It uses a homebrew interface to X11 (i.e., it does not use
   clx or clue). However, they eventually hope to port Obvius to a clx/clue
   platform. Written by David Heeger <heeger@white.stanford.edu> and Eero
   Simoncelli <eero@whitechapel.media.mit.edu>. Runs in Lucid-4.0. Includes
   LaTeX documentation and User's Guide.
   
   Scheme Utilities -- brokaw.lcs.mit.edu:/pub/scmutils.tar  18.30.0.33

   GNU-Emacs -- prep.ai.mit.edu:

   StarLisp Simulator -- think.com:/cm/starlisp/starsim-f19-sharfile
   Simulates *Lisp, one of the programming langauges used to program
   the Connection Machine. Runs under Symbolics, Lucid, Allegro, and Franz.

   InterLisp->Common-Lisp Translator -- ai.sri.com:pub/pkarp/lisp/

   MCS (Meta Class System) -- gmdzi.gmd.de:/pub/lisp/mcs/ [129.26.1.90]
   Portable object-oriented extension to Common Lisp. Integrates the
   functionality of CLOS (the Common Lisp Object System), and TELOS, (the
   object system of LeLisp Version 16 and EULISP).  MCS provides a metaobject
   protocol which the user can specialize.  MCS is claimed to be more
   efficient in time and space than comparable systems we know, including
   commercial CLOS implementations. Runs in any valid Common Lisp.
   Contact: Harry Bretthauer and Juergen Kopp, German National Research
   Center for Computer Science (GMD), Expert System Research Group,
   P.O. Box 1240, D-5205 Sankt Augustin 1, FRG, email: kopp@gmdzi.gmd.de

   LMath -- ucbarpa.berkeley.edu:pub/fateman/lmath.*       [128.32.130.11]
   A Mathematica-style parser written in Common Lisp. Written by Richard
   Fateman; fateman@renoir.Berkeley.EDU. Runs in any valid Common Lisp.

   CLOS-on-KEE -- zaphod.lanl.gov:/pub/
   A subset of CLOS that is implemented on top of KEE. Contact
   egdorf%zaphod@LANL.GOV (Skip Egdorf) for more info.
   
   ftp.csrl.aoyama.ac.jp:
           YY/     YY window toolkit sources
           Lisp/   several common lisp sources, including MIT's FRL.

   RRL (Rewrite Rule Laboratory) -- herky.cs.uiowa.edu [128.255.28.100]

   TMYCIN -- sumex-aix.stanford.edu:/tmycin  The TMYCIN rule based system.

   NONLIN -- cs.umd.edu:/pub/nonlin (128.8.128.8)
   Common Lisp implementation of the NONLIN planning system originally
   designed and implemented by Austin Tate. Bugs can be reported to
   nonlin-bugs@cs.umd.edu. User's group is nonlin-users@cs.umd.edu.

   rascal.ics.utexas.edu:/pub/             128.83.138.20
      Maxima for Common Lisp (License required from National
      Energy Software Center at Argonne.) Ported by Bill Schelter.

      nqthm/               Boyer and Moore's theorem prover.
                           Also available from cli.com:/pub/nqthm.
      proof-checker/       Matt Kaufmann's proof checking
                           enhancements to nqthm.

   Eliza and similar programs. Besides Norvig's book, see:
      o  The doctor.el is an implementation of Eliza for
         GNU-Emacs emacs-lisp. Invoke it with "Meta-X doctor"
      o  Source code for ELIZA in Prolog (implemented by Viren
         Patel) is available by ftp from aisun1.ai.uga.edu.
      o  muLISP-87 (a MSDOS Lisp sold by Soft Warehouse) includes
         a Lisp implementation of Eliza.
      o  Compute!'s Gazette, June 1984, includes source for a
         BASIC implementation of Eliza. You can also find it
         in 101 more computer games, edited by David Ahl,
         published by Creative Computing (alas, they're defunct,
         and the book is out of print).
      o  Herbert Schildt "Artificial Intelligence using C", 
         McGraw-Hill, 1987, ISBN 0-07-881255-0, pp315-338,
         includes a simple version of DOCTOR. 

   BELIEF is a Common Lisp implementation of the Dempster and
   Kong fusion and propagation algorithm for Graphical Belief
   Function Models and the Lauritzen and Spiegelhalter algorithm 
   for Graphical Probabilistic Models. It is available by
   anonymous ftp from hustat.harvard.edu and beligica.stat.washington.edu,
   and by email from the author, Russell Almond <almond@stat.washington.edu>.

   A Common Lisp implementation of an ABTWEAK-like hierarchical
   nonlinear planner may be obtained by anonymous ftp from
   csis.dit.csiro.au in the directory pub/steve. A user's manual
   and a copy of the associated masters thesis by Steve Woods
   are also contained in that directory. Send mail to
   Steven.Woods@csis.dit.csiro.au for more information.

   Frame Languages:
      o  FrameWork is available in the Lisp Utilities Repository 
         described above. 
      o  Theo (learning frame system) is available free from CMU, after
         signing a license agreement. Send mail to Tom.Mitchell@cs.cmu.edu.
      o  FrameKit is available free from CMU, after signing a
         license agreement. Send mail to Eric.Nyberg@cs.cmu.edu
      o  KR. Send mail to Brad.Myers@cs.cmu.edu for more info.
      o  PARMENIDES (Frulekit) is available free, after signing
         a license agreement. Send mail to peter.shell@cs.cmu.edu 
      o  FROBS is available free by anonymous ftp from
         cs.utah.edu:/pub/frobs.tar.Z
         Contact Robert Kessler <kessler@cs.utah.edu> for more info.
      o  PFC is a simple frame system written by Tim Finin
         available free by anonymous ftp from linc.cis.upenn.edu.

   The UMass GBB system (V1.2) is available by anonymous ftp from
   dime.cs.umass.edu:/gbb. The commercial GBB product is not.
   Work on the UMass GBB project (and funding) ended over 2 years ago.
   Many researchers using it have opted for the commercial
   release.  The UMass research system remains available, but the
   two should not be confused as the commercial system is
   substantially improved and extended. 

   MVL (Multi-Valued Logic) is a theorem proving system written
   in Common Lisp, and is available from t.stanford.edu:/mvl/mvl.tar.Z
   A user's manual may be found in /mvl/manual.tex. Send mail
   to ginsberg@t.stanford.edu.

   Postgres is an object-oriented database, and is available
   from postgres.berkeley.edu:/pub/postgres*
   It runs on DecStation 3100s, Sun3 (SunOs), Sun4 (Sparc),
   and Sequent Symmetry.

   CL-Protos is a Common Lisp implementation of the case-based
   reasoning system developed by E. Ray Bareiss and Bruce W.
   Porter of the University of Texas/Austin AI Lab. It runs
   on Sun3, TI Explorer, HP 9000, and Symbolics, and gobbles a
   huge amount of memory. Common Lisp implementation by
   Rita Duran, Dan Dvorak, Jim Kroger, Hilel Swerdlin, and Ben Tso.
   For more information, bug reports, or comments, contact
   either Dan Dvorak <dvorak@cs.utexas.edu> or Ray Bareiss
   <bareiss@vuse.vanderbilt.edu> or Erik Eilerts <eilerts@cs.utexas.edu>
   Available by anonymous ftp from cs.utexas.edu:/pub/porter

   QSIM is a qualitative reasoning system implemented in Common
   Lisp. It is available by anonymous ftp from cs.utexas.edu:/pub/qsim

   RHETORICAL is a planning and knowledge tool available by
   anonymous ftp from cs.rochester.edu:/pub/knowledge-tools
   in the files rhet-19-40.tar.Z and cl-lib-3-11.tar.Z. The files
   tempos-3-6.tar.Z and timelogic-5-0.tar.Z add James Allen's
   interval logic to Rhet. It runs on Symbolics Genera and
   Allegro Common Lisp. Written by Brad Miller <miller@cs.rochester.edu>.

   KNOWBEL is an implementation of Telos (a sorted/temporal logic
   system) by Bryan M. Kramer, <kramer@ai.toronto.edu>. It is
   available by anonymous ftp from ai.toronto.edu:/pub/kr/ as the
   files knowbel.tar.Z and manual.txt.tar.Z 
   Runs in Allegro CL on Sparcstations and Silicon Graphics 4d
   and in MCL on Apple Macintoshes. 
   
   SNePS is a semantic net implementation, available free after
   signing a license agreement. Contact shapiro@cs.buffalo.edu
   for more information.

   PRODIGY is an integrated planning and learning system,
   available free after signing a license agreement. Contact
   prodigy@cs.cmu.edu for more information.

   SOAR is an integrated intelligent agent architecture. It is
   available free after signing a license agreement. Contact
   soar-request@cs.cmu.edu for more information.

   RegExp is an extension to Allegro Common Lisp which adds
   regular expression string matching, using the foreign
   function interface. Available by anonymous ftp from
   ai.sri.com:/pub/pkarp/regexp/. Contact pkarp@ai.sri.com
   for more information.

   SNLP is a domain independent systematic nonlinear planner,
   available by anonymous ftp from cs.washington.edu:/pub/snlp.tar.Z
   Contact weld@cs.washington.edu for more information. 

   TILEWORLD is a planning testbed/simulator developed at SRI
   International by Martha Pollack, Michael Frank and Marc
   Ringuette. TILEWORLD originally ran under Lucid CL, but was
   later extended and ported to Allegro CL by Badr H. Al-Badr
   and Steve Hanks. The new tileworld is available by anonymous
   ftp from cs.washington.edu as the file new-tileworld.tar.Z
   It includes an X interface.

   TRUCKWORLD is a simulated world intended to provide a 
   testbed for AI planning programs, where the planning agent
   is a truck that roams around the simulated world. It is
   available by anonymous ftp from cs.washington.edu in the
   file simulator.tar.Z. It includes an X interface. Contact
   Steve Hanks <hanks@cs.washington.edu> for more information.

   COBWEB/3 is a concept formation system available free after
   signing a license agreement. Contact cobweb@ptolemy.arc.nasa.gov
   for more information.

   Xerox Lisp code -- tut.cis.ohio-state.edu:/pub/lispuser [128.146.8.60]
----------------------------------------------------------------
[10] Is there a GNU-Emacs interface to Lisp?

ILISP is a powerful GNU-Emacs interface to many dialects of
Lisp, including Lucid, Allegro, {A}KCL, IBCL, and CMU. Written by
Chris McConnell <ccm+@cs.cmu.edu>. It is available by anonymous
ftp from atmandu.mt.cs.cmu.edu [128.2.250.68] in the directory
pub/ilisp as the file ilisp.tar.Z. If you start using it, send
Chris mail, as he maintains a mailing list of users.

Franz Inc.'s GNU-Emacs/Lisp interface includes an online Common
Lisp manual. It is available by anonymous ftp from 
   uunet.uu.net:/lisp/emacs-lisp-1.5.2.tar.Z
   ucbvax.berkeley.edu:/pub/franzinc/emacs-lisp-interface/1.5.2.tar.Z
Send bug reports to bugs@franz.com. To be added to the mailing
list, send mail to lisp-emacs-forum-request@ucbarpa.berkeley.edu.

Lucid includes some other Emacs-Lisp interfaces in its goodies directory.
----------------------------------------------------------------
[11] How can I use the X Window System from Lisp?

There are several GUI's and Lisp interfaces to the X Window System. Mailing
lists for these systems are listed in the answer to question [8].

   CLX provides basic Common Lisp/X functionality. It is a de facto standard
   low-level interface to X, providing equivalent functionality to XLib, but
   in Lisp. It is also a good source for comparing the foreign function calls
   in various Lisps. Does *not* depend on CLOS.  Available free as part of the
   X release in the contrib directory.  Also available form
   export.lcs.mit.edu:/contrib as the files CLX.Manual.tar.Z, CLX.R4.5.tar.Z
   and CLX.R5.tar.Z Primary Interface Author: Robert W. Scheifler
   <rws@zermatt.lcs.mit.edu> Send bug reports to bug-clx@expo.lcs.mit.edu.

   CLIM (Common Lisp Interface Manager) is a GUI originally developed by
   Symbolics and International Lisp Associates, and now under joint
   development by several Lisp vendors, including Symbolics, Franz, and Lucid.
   It is intended to be a portable analogue of Symbolics UIMS (Dynamic
   Windows, Presentations Types). It runs on Symbolics Lisp Machines; Allegro
   and Lucid on several Unix platforms; Harlequin on 386/486 IBM PCs running
   Windows; and MCL on Apple Macintoshes.  It is *not* free, and with the
   exception of Macintoshes, if it is available it can be purchased from the
   vendor of the Lisp system you are using. For the Macintosh version write to
   the ILA:
        International Lisp Associates, 114 Mt. Auburn St.,
        Cambridge, MA 02138, 617-576-1151
        Contact: Dennis Doughty - Doughty@ILA.com

        International Lisp Associates, 898 Windmill Park Road,
        Mountain View, CA 94043, 1-800-477-CLIM
        Contact: Bill York - York@ILA.com

   CLUE (Common Lisp User-Interface Environment) is from TI, and extends CLX
   to provide a simple, object-oriented toolkit (like Xt) library that uses
   CLOS. Provides basic window classes, some stream I/O facilities, and a few
   other utilities. Still pretty low level (it's a toolkit, not widget
   library).  Available free by anonymous ftp from csc.ti.com:pub/clue.tar.Z
   Written by Kerry Kimbrough. Send bug reports to clue-bugs@dsg.csc.ti.com.

   CLIO (Common Lisp Interactive Objects) is a GUI from the people who created
   CLUE. It provides a set of CLOS classes that represent the standard
   components of an object-oriented user interface -- such as text, menus,
   buttons, scroller, and dialogs.  It is included as part of the CLUE
   distribution, along with some packages that use it, both sample and real.

   Allegro Common Windows provides a front end to CLX. Uses CLOS.
   It is *not* free. Contact info@franz.com for more information.

   CLM (Common Lisp Motif) and GINA (Generic Interactive Application) and IB
   (Interface Builder). CLM runs Motif widgets in a separate C process, with
   minimal work on the Lisp side and communicates between C and Lisp using TCP
   sockets. Runs in Allegro CL, Sun CL, and Symbolics Genera. GINA uses CLOS.
   Available free in the X contrib directory or by anonymous ftp from either
   export.lcs.mit.edu:/contrib or ftp.gmd.de:/gmd/gina [129.26.8.90] as the
   files CLM+GINA.README, CLM2.1.tar.Z and GINA2.1.tar.Z.  CLM was written by
   Andreas Baecker <baecker@gmdzi.gmd.de>, GINA by Mike Spenke
   <spenke@gmdzi.gmd.de>, and IB by Thomas Berlage <berlage@gmdzi.gmd.de>.
   Contact Mike Spenke for more info. 

   EW (Express Windows) is intended to mimic Symbolics' Dynamic Windows user
   and programmer interfaces. It is available free in the ew/ subdirectory of
   the Lisp Utilities repository.  It is no longer under active development.
   Runs on Sun/Lucid, Franz Allegro, and Symbolics. Should port easily to
   other Lisps with CLX. 
   Written by Andrew L. Ressler <aressler@oiscola.columbia.ncr.com>.

   Garnet is a large and flexible GUI. Lots of high-level features.  Does
   *not* depend on CLOS, but does depend on CLX. Available free, after signing
   a license agreement. Contact Brad Myers (bam@a.gp.cs.cmu.edu) for more
   information. Bug reports: garnet@cs.cmu.edu.

   LispView is a GUI written at Sun that does not use CLX.  Instead it
   converts Xlib.h directly into Lucid foreign function calls. It is intended
   to be fast and tight. Uses CLOS.  Available for anonymous ftp from
      export.lcs.mit.edu:contrib/lispview1.1 and 
      xview.ucdavis.edu:pub/XView/LispView1.1 
   Written by Hans Muller (hmuller@sun.com). Runs in Sun CL and Lucid CL.
   Direct questions about the source provision to lispview@Eng.Sun.Com.
   
   WINTERP (Widget Interpreter) was developed at HP and uses the Xtoolkit and
   Motif widget set. It is based on David Betz's XLISP interpreter, which is a
   small subset of Common Lisp that runs on IBM PCs. Runs on DecStation 3100,
   HP9000s, Sun3, Sparcs.  It is a free-standing Lisp-based tool for setting
   up window applications. Available free in X contrib directory, or by
   anonymous ftp from export.lcs.mit.edu:contrib/winterp-???.tar.Z where ???
   is the version number.  If you do not have Internet access you may request
   the source code to be mailed to you by sending a message to
   winterp-source%hplnpm@hplabs.hp.com or hplabs!hplnpm!winterp-source.
   Contact Niels Mayer mayer@hplabs.hp.com for more information.  

   YYonX is a port of the YY system to X windows. Runs in Lucid CL, Allegro
   CL, and Symbolics Genera. Supports kanjii.  Developed at Aoyama Gakuin
   University. Available free by anonymous ftp from ftp.csrl.aoyama.ac.jp:YY/
   Written by Masayuki Ida <ida@cc.aoyama.ac.jp>

   Picasso is a CLOS based GUI, and is available from
   postgres.berkeley.edu:/pub/Picasso-2.0 It runs on DecStation 3100s, Sun3
   (SunOs), Sun4 (Sparc), and Sequent Symmetry in Allegro CL. The file
   pub/xcl.tar.Z contains X-Common Lisp interface routines. Send mail to
   picasso@postgres.berkeley.edu for more information.

----------------------------------------------------------------
[12] What does CLOS, PCL, X3J13, CAR, CDR, ... mean? 
     What is CLOS (PCL) and where can I get it?
     How do you pronounce CLOS?

Glossary of acronyms:
   CAR             Originally meant "Contents of Address portion of Register",
                   which is what CAR actually did on the IBM 704.
   CDR             Origianlly meant "Contents of Decrement portion of 
                   Register", which is what CDR actually did
                   on the IBM 704. Pronounced "Cudder".
   LISP            Originally from "LISt Processing"
   GUI             Graphical User Interface
   CLOS            Common Lisp Object System. The object oriented
                   programming standard for Common Lisp. Based on
                   Symbolics FLAVORS and Xerox LOOPS, among others.
                   Pronounced either as "See-Loss" or "Claws".
   PCL             Portable Common Loops. A portable CLOS implementation.
                   Available by anonymous ftp from parcftp.xerox.com:pcl/.
   LOOPS           Lisp Object Oriented Programming System. A predecessor
                   to CLOS on Xerox Lisp machines.
   X3J13           Subcommittee of the ANSI committee X3 which is
                   working on the ANSI Standardization of Common Lisp.
   ANSI            American National Standards Institute
   CL              Common Lisp
   SC22/WG16       The full name is ISO/IEC JTC 1/SC 22/WG 16. It stands
                   for International Organization for
                   Standardization/International Electronics(?)  
                   Congress(?) Joint Technical Committee 1, Subcommittee 22,
                   Working Group 16.  This long-winded name is the ISO
                   working group working on an international Lisp standard,
                   (i.e., the ISO analogue to X3J13).
   CLtL1           First edition of Guy Steele's book, 
                   "Common Lisp the Language". 
   CLtL2           Second edition of Guy Steele's book,
                   "Common Lisp the Language". 

   SICP            Abelson and Sussman's book "Structure and
                   Interpretation of Computer Programs".
   SCOOPS          An experimental object-oriented programming
                   language for Scheme.
   R3RS            Revised^3 Report on the Algorithmic Language Scheme.
   R4RS            Revised^4 Report on the Algorithmic Language Scheme.
     
----------------------------------------------------------------
[14] Why does (READ-FROM-STRING "foobar" :START 3) return FOOBAR instead 
     of BAR?

READ-FROM-STRING is one of the rare functions that takes both &OPTIONAL and
&KEY arguments.  When a function takes both types of arguments, all the
optional arguments must be specified explicitly before any of the keyword
arguments may be specified.  In the example above, :START becomes the value
of the optional EOF-ERROR-P parameter and 3 is the value of the optional
EOF-VALUE parameter.
     
----------------------------------------------------------------
[15] Why can't it deduce from (READ-FROM-STRING "foobar" :START 3) that
     the intent is to specify the START keyword parameter rather than
     the EOF-ERROR-P and EOF-VALUE optional parameters?

In Common Lisp, keyword symbols are first-class data objects.  Therefore,
they are perfectly valid values for optional parameters to functions.
There are only four functions in Common Lisp that have both optional and
keyword parameters (they are PARSE-NAMESTRING, READ-FROM-STRING,
WRITE-LINE, and WRITE-STRING), so it's probably not worth adding a
nonorthogonal kludge to the language just to make these functions slightly
less confusing; unfortunately, it's also not worth an incompatible change
to the language to redefine those functions to use only keyword arguments.
     
----------------------------------------------------------------
[16] How can I write a function that can access defstruct slots by name?  I
     would like to write something like (STRUCTURE-SLOT <object>
     '<slot-name>).

There is currently no portable, built-in way to access structure slots
given only the name.  If your Common Lisp includes an implementation of
CLOS that supports the meta-object protocol specified in the original X3J13
draft spec (document X3J13/88-003), then it should allow (SLOT-VALUE
<object> '<slot-name>); however, not all implementations of CLOS currently
provide this.  Lacking this, some implementations may provide
implementation-dependent functions that allow access to structure slots by
name; note that this may cause saved images to be larger, as some
implementations normally open-code structure accessors and discard slot
name information.

While it is not possible to write a fully general STRUCTURE-SLOT function,
it is not very difficult to write version that handles specific structure
types.  For instance, after defining:

   (defstruct spaceship name captain position velocity)

one may then define:

   (defun spaceship-slot (spaceship slot-name)
     (ecase slot-name
       (name (spaceship-name spaceship))
       (captain (spaceship-captain spaceship))
       (position (spaceship-position spaceship))
       (velocity (spaceship-velocity spaceship))))

Another popular way to define this is:

   (defun spaceship-slot (spaceship slot-name)
     (funcall (symbol-function
                (find-symbol (format nil "SPACESHIP-~A" slot-name)
                             #.(package-name *package*)))
              spaceship))

I personally recommend the first version.  It is likely to be much faster
and more memory efficient than the second version.  It's also easy to get
the second one wrong; many people forget to specify the package argument to
FIND-SYMBOL, which can cause incorrect results when the package at run time
is different from the one at compile time.  Even my version assumes that
SPACESHIP-SLOT is being defined in a file that is in the same package as
the one containing the structure definition; if this isn't the case,
#.(PACKAGE-NAME *PACKAGE*) should be replaced by a string naming the
correct package.

Another workaround is to define a MY-DEFSTRUCT macro that parses the
defstruct arguments and expands into a call to DEFSTRUCT along with a
definition of the runtime slot-accessor function.

Some non-portable techniques include the use of LCL:STRUCTURE-REF
in Lucid and EXCL:STRUCTURE-REF in Allegro.
     
----------------------------------------------------------------
[17] Why can't I apply #'AND and #'OR?

Here's the simple, but not necessarily satisfying, answer: AND and OR are
macros, not functions; APPLY and FUNCALL can only be used to invoke
functions, not macros and special operators.

OK, so what's the *real* reason?  The reason that AND and OR are macros
rather than functions is because they implement control structure in
addition to computing a boolean value.  They evaluate their subforms
sequentially from left/top to right/bottom, and stop evaluating subforms as
soon as the result can be determined (in the case of AND, as soon as a
subform returns NIL; in the case of OR, as soon as one returns non-NIL);
this is referred to as "short circuiting" in computer language parlance.
APPLY and FUNCALL, however, are ordinary functions; therefore, their
arguments are evaluated automatically, before they are called.  Thus, were
APPLY able to be used with #'AND, the short-circuiting would be defeated.

Perhaps you don't really care about the short-circuiting, and simply want
the functional, boolean interpretation.  While this may be a reasonable
interpretation of trying to apply AND or OR, it doesn't generalize to other
macros well, so there's no obvious way to have the Lisp system "do the
right thing" when trying to apply macros.  The only function associated
with a macro is its expander function; this function accepts and returns
and form, so it cannot be used to compute the value.

The Common Lisp functions EVERY and SOME can be used to get the
functionality you intend when trying to apply #'AND and #'OR.  For
instance, the erroneous form:

   (apply #'and *list*)

can be translated to the correct form:

   (every #'identity *list*)

----------------------------------------------------------------
[18] When is it right to use EVAL?

Hardly ever.  Any time you think you need to use EVAL, think hard about it.
EVAL is useful when implementing a facility that provides an external
interface to the Lisp interpreter.  For instance, many Lisp-based editors
provide a command that prompts for a form and displays its value.
Inexperienced macro writers often assume that they must explicitly EVAL the
subforms that are supposed to be evaluated, but this is not so; the correct
way to write such a macro is to have it expand into another form that has
these subforms in places that will be evaluated by the normal evaluation
rules.  Explicit use of EVAL in a macro is likely to result in one of two
problems: the dreaded "double evaluation" problem, which may not show up
during testing if the values of the expressions are self-evaluating
constants (such as numbers); or evaluation at compile time rather than
runtime.  For instance, if Lisp didn't have IF and one desired to write it,
the following would be wrong:

   (defmacro if (test then-form &optional else-form)
     ;; this evaluates all the subforms at compile time, and at runtime
     ;; evaluates the results again.
     `(cond (,(eval test) ,(eval then-form))
            (t ,(eval else-form))))

   (defmacro if (test then-form &optional else-form)
     ;; this double-evaluates at run time
     `(cond ((eval ,test) (eval ,then-form))
            (t (eval ,else-form)))

This is correct:

   (defmacro if (test then-form &optional else-form)
     `(cond (,test ,then-form)
            (t ,else-form)))

----------------------------------------------------------------
[19] I used a destructive function (e.g. DELETE, SORT), but it didn't seem to
     work.  Why?

I assume you mean that it didn't seem to modify the original list.  There
are several possible reasons for this.  First, many destructive functions
are not *required* to modify their input argument, merely *allowed* to; in
some cases, the implementation may determine that it is more efficient to
construct a new result than to modify the original (this may happen in Lisp
systems that use "CDR coding", where RPLACD may have to turn a CDR-NEXT or
CDR-NIL cell into a CDR-NORMAL cell), or the implementor may simply not
have gotten around to implementing the destructive version in a truly
destructive manner.  Another possibility is that the nature of the change
that was made involves removing elements from the front of a list; in this
case, the function can simply return the appropriate tail of the list,
without actually modifying the list. And example of this is:
     
   (setq *a* (list 3 2 1))
   (delete 3 *a*) => (2 1)
   *a* => (3 2 1)

Similarly, when one sorts a list, SORT may destructively rearrange the
pointers (cons cells) that make up the list. SORT then returns the cons
cell that now heads the list; the original cons cell could be anywhere in
the list. The value of any variable that contained the original head of the
list hasn't changed, but the contents of that cons cell have changed
because SORT is a destructive function:

   (setq *a* (list 2 1 3))
   (sort *a* #'<) => (1 2 3)
   *a* => (2 3)     

In both cases, the remedy is the same: store the result of the
function back into the place whence the original value came, e.g.

   (setq *a* (delete 3 *a*))
   *a* => (2 1)

Why don't the destructive functions do this automatically?  Recall that
they are just ordinary functions, and all Lisp functions are called by
value.  Therefore, these functions do not know where the lists they are
given came from; they are simply passed the cons cell that represents the
head of the list. Their only obligation is to return the new cons cell that
represents the head of the list.

One thing to be careful about when doing this is that the original list
might be referenced from multiple places, and all of these places may need
to be updated.  For instance:

   (setq *a* (list 3 2 1))
   (setq *b* *a*)
   (setq *a* (delete 3 *a*))
   *a* => (2 1)
   *b* => (3 2 1) ; *B* doesn't "see" the change
   (setq *a* (delete 1 *a*))
   *a* => (2)
   *b* => (3 2) ; *B* sees the change this time, though

One may argue that destructive functions could do what you expect by
rearranging the CARs of the list, shifting things up if the first element
is being deleted, as they are likely to do if the argument is a vector
rather than a list.  In many cases they could do this, although it would
clearly be slower.  However, there is one case where this is not possible:
when the argument or value is NIL, and the value or argument, respectively,
is not.  It's not possible to transform the object referenced from the
original cell from one data type to another, so the result must be stored
back.  Here are some examples:

   (setq *a* (list 3 2 1))
   (delete-if #'numberp *a) => NIL
   *a* => (3 2 1)
   (setq *a* nil *b* '(1 2 3))
   (nconc *a* *b*) => (1 2 3)
   *a* => NIL

The names of most destructure functions (except for sort, delete,
rplaca, rplacd, and setf of accessor functions) have the prefix N.

In summary, the two common problems to watch out for when using
destructive functions are:

   1. Forgetting to store the result back. Even though the list
      is modified in place, it is still necessary to store the
      result back into the original location, e.g.,
           (setq foo (delete 'x foo))

      If the original list was stored in multiple places, you may
      need to store it back in all of them, e.g.
           (setq bar foo)
           ...
           (setq foo (delete 'x foo))
           (setq bar foo)

   2. Sharing structure that gets modified. If it is important
      to preserve the shared structure, then you should either
      use a nondestructive operation or copy the structure first
      using COPY-LIST or COPY-TREE.
           (setq bar (cdr foo))
           ...
           (setq foo (sort foo #'<))
           ;;; now it's not safe to use BAR
     
----------------------------------------------------------------
[20] After I NREVERSE a list, it's only one element long.  After I SORT
     a list, it's missing things.  What happened?

These are particular cases of the previous question.  Many NREVERSE and
SORT implementations operate by rechaining all the CDR links in the list's
backbone, rather than by replacing the CARs.  In the case of NREVERSE, this
means that the cons cell that was originally first in the list becomes the
last one.  As in the last question, the solution is to store the result
back into the original location.
     
----------------------------------------------------------------
[21] What is the equivalent of EXPLODE and IMPLODE in Common Lisp?

Hopefully, the only reason you need to do this is as part of trying to port
some old MacLisp code to Common Lisp.  These functions predated the
inclusion of strings as a first-class data type in Lisp; symbols were used
as strings, and they ere EXPLODEd to allow the individual characters to be
manipulated in a list.

Probably the best approximations of these are:

   (defun explode (object)
     (loop for char being the array-elements of (prin1-to-string object)
           collect (intern (string char))))

   (defun implode (list)
     (read-from-string (coerce (mapcar #'character list) 'string)))

----------------------------------------------------------------
[22] Is Lisp inherently slower than more conventional languages such as C?

This is a tough question to answer, as I'm sure you expected.  In many
cases, it appears to be.  Lisp does not require the programmer to specify
the data type of variables, so generic arithmetic operators may have to
perform type checking at runtime in order to determine how to proceed.
However, Lisp code can also be dense (i.e.  there is more expressed in a
single line) than many other languages: the Lisp expression (+ A B) is more
powerful than the C expression A+B (the Lisp version supports bignums,
rationals, and complex numbers, while the C version only supports
limited-size integers and floating point); therefore, one may claim that it
is reasonable that the Lisp version take longer than the C version (but
don't expect everyone to accept this rationalization).  Solutions to this
include hardware support (e.g. processors that support type tags in data,
such as SPARC and Symbolics Lisp Machines), declarations, and specialized
variants of functions (e.g. in MacLisp, + accepts and returns only fixnums,
+$ accepts and returns only flonums, and PLUS is generic).

At one time, the MIT PDP-10 MacLisp compiler was compared to DEC's PDP-10
Fortran compiler.  When appropriate declarations were supplied in the Lisp
code, the performance of compiled Lisp arithmetic rivaled that of the
Fortran code.  It would hardly be fair to compare Lisp without declarations
to Fortran, since the Fortran compiler would have more information upon
which it could base its optimizations.

Since Lisp is a good language for rapid prototyping, it is easy for a
mediocre programmer (or even a good programmer, who isn't being careful) to
generate a large amount of inefficient Lisp code. A good example is the use
of APPEND to link successive lists together, instead of keeping a pointer
to the tail of the list.
     
----------------------------------------------------------------
[23] Why does my program's behavior change each time I use it?

Most likely your program is altering itself, and the most common way this
may happen is by performing destructive operations on embedded constant
data structures.  For instance, consider the following:

   (defun one-to-ten-except (n)
     (delete n '(1 2 3 4 5 6 7 8 9 10)))
   (one-to-ten-except 3) => (1 2 4 5 6 7 8 9 10)
   (one-to-ten-except 5) => (1 2 4 6 7 8 9 10) ; 3 is missing

The DELETE function destructively modified the list that is actually a part
of the lambda expression that is in ONE-TO-TEN-EXCEPT's function cell.  The
next time that the function is called, this modified list is used.

In some implementations the result of calling ONE-TO-TEN-EXCEPT may even be
that an error is signalled or the Lisp process aborts completely.  Some
Lisp implementations put self-evaluating and quoted constants onto memory
pages that are marked read-only, in order to catch bugs such as this.

All of these behaviors are allowed by the draft ANSI Common Lisp
specification, which specifically states that the consequences of modifying
a constant are undefined.
     
----------------------------------------------------------------
[24] Why does Common Lisp have "#'"?

#' is a macro-character which expands #'FOO to (FUNCTION FOO).  Symbols in
Lisp have two bindings, one for values and one for functions, allowing them
to represent both variables and functions, depending on context. #'FOO
accesses FOO's lexical function binding in a context where the value
interpretation would normally occur.  #' is also used to create lexical
closures for lambda expressions. A lexical closure is a function which when
invoked executes the body of the lambda-expression in the lexical
environment within which the closure was created.  See pp. 115-117 of CLtL2
for more details.

----------------------------------------------------------------
[25] How can I list all the CLOS instances in a class?

There is no built-in way to enumerate the instances of a class.  If you are
only interested in listing the instances of classes that you have defined,
it is not very difficult to implement it as part of your class definition.
Add a shared slot, e.g. ALL-INSTANCES, with an initial value of NIL, to the
class definition.  Then write an after-method on INITIALIZE-INSTANCE for
this class, which pushes the instance being initialized onto ALL-INSTANCES.
Note that this must done separately for each class that wants to maintain
such a list; it can't be encapsulated in a mixin class, because all its
dependent classes would share the same ALL-INSTANCES slot.  A compromise
would be to use a mixin to define the INITIALIZE-INSTANCE after-method (and
any other general-purpose methods that use the slot), but not the shared
slot; it would be up to the descendent classes to define the slot at the
level of the class hierarchy that is appropriate.
     
----------------------------------------------------------------
[26] How do I call non-Lisp functions from Lisp?

Most Lisp implementations for systems where Lisp is not the most common
language provide a "foreign function" interface.  As of now there has been
no significant standardization effort in this area.  They tend to be
similar, but there are enough differences that it would be inappropriate to
try to describe them all here.  In general, one uses an
implementation-dependent macro that defines a Lisp function, but instead of
supplying a body for the function supplies the name of a function written
in another language; the argument list portion of the definition is
generally augmented with the data types the foreign function expects and
the data type of the foreign function's return value, and the Lisp
interface function arranges to do any necessary conversions.  There is also
generally a function to "load" an object file or library compiled in a
foreign language, which dynamically links the functions in the file being
loaded into the address space of the Lisp process, and connects the
interface functions to the corresponding foreign functions.

IF you need to do this, see the manual for your language implementation for
full details.  In particular, be on the lookout for restrictions on the
data types that may be passed.  You may also need to know details about the
linkage conventions that are used on your system; for instance, many C
implementations prepend an underscore onto the names of C functions when
generating the assembler output (this allows them to use names without
initial underscores internally as labels without worrying about conflicts),
and the foreign function interface may require you to specify this form
explicitly.
     
----------------------------------------------------------------
[27] Can I call Lisp functions from other languages?

In implementations that provide a foreign function interface as described
above, there is also usually a "callback" mechanism.  The programmer may
associate a foreign language function name with a Lisp function.  When a
foreign object file or library is loaded into the Lisp address space, it is
linked with these callback functions.  As with foreign functions, the
programmer must supply the argument and result data types so that Lisp may
perform conversions at the interface.
     
----------------------------------------------------------------
[28] Why does (READ-LINE) return "" immediately instead of waiting for
     me to type a line?

Many Lisp implementations on line-buffered systems do not discard the
newline that the user must type after the last right parenthesis in order
for the line to be transmitted from the OS to Lisp.  Lisp's READ function
returns immediately after seeing the matching ")" in the stream.  When
READLINE is called, it sees the next character in the stream, which is a
newline, so it returns an empty line.  If you were to type "(read-line)This
is a test" the result would be "This is a test".

The simplest solution is to use (PROGN (CLEAR-INPUT) (READ-LINE)).  This
discards the buffered newline before reading the input.  However, it would
also discard any other buffered input, as in the "This is a test" example
above; some implementation also flush the OS's input buffers, so typeahead
might be thrown away.

----------------------------------------------------------------
[29] I typed a form to the read-eval-print loop, but nothing happened. Why?

There's not much to go on here, but a common reason is that you haven't
actually typed a complete form.  You may have typed a doublequote, vertical
bar, "#|" comment beginning, or left parenthesis that you never matched
with another doublequote, vertical bar, "|#", or right parenthesis,
respectively.  Try typing a few right parentheses followed by Return.

----------------------------------------------------------------

[30] I want to call a function in a package that might not exist at
     compile time. How do I do this?

Use (funcall (find-symbol <symbol-name> <pkg-name>) ...).

----------------------------------------------------------------
[31] What is CDR-coding?

CDR-coding is a space-saving way to store lists in memory.  It is normally
only used in Lisp implementations that run on processors that are
specialized for Lisp, as it is difficult to implement efficiently
efficiently in software.  In normal list structure, each element of the
list is represented as a CONS cell, which is basically two pointers (the
CAR and CDR); the CAR points to the element of the list, while the CDR
points to the next CONS cell in the list or NIL.  CDR-coding takes
advantage of the fact that most CDR cells point to another CONS, and
further that the entire list is often allocated at once (e.g. by a call to
LIST).  Instead of using two pointers to implement each CONS cell, the CAR
cell contains a pointer and a two-bit "CDR code".  The CDR code may contain
one of three values: CDR-NORMAL, CDR-NEXT, and CDR-NIL.  If the code is
CDR-NORMAL, this cell is the first half of an ordinary CONS cell pair, and
the next cell in memory contains the CDR pointer as described above.  If
the CDR code is CDR-NEXT, the next cell in memory contains the next CAR
cell; in other words, the CDR pointer is implicitly thisaddress+1, where
thisaddress is the memory address of the CAR cell.  If the CDR code is
CDR-NIL, then this cell is the last element of the list; the CDR pointer is
implicitly a reference to the object NIL.  When a list is constructed
incrementally using CONS, a chain of ordinary pairs is created; however,
when a list is constructed in one step using LIST or MAKE-LIST, a block of
memory can be allocated for all the CAR cells, and their CDR codes all set
to CDR-NEXT (except the last, which is CDR-NIL), and the list will only
take half as much storage (because all the CDR pointers are implicit).

If this were all there were to it, it would not be difficult to implement
in software on ordinary processors; it would add a small amount of overhead
to the CDR function, but the reduction in paging might make up for it.  The
problem arises when a program uses RPLACD on a CONS cell that has a CDR
code of CDR-NEXT or CDR-NIL.  Normally RPLACD simply stores into the CDR
cell of a CONS, but in this case there is no CDR cell -- its contents are
implicitly specified by the CDR code, and the word that would normally
contain the CDR pointer contains the next CONS cell (in the CDR-NEXT case)
to which other data structures may have pointers, or the first word of some
other object (in the CDR-NIL case).  When CDR-coding is used, the
implementation must also provide automatic "forwarding pointers"; an
ordinary CONS cell is allocated, the CAR of the original cell is copied
into its CAR, the value being RPLACD'ed is stored into its CDR, and the old
CAR cell is replaced with a forwarding pointer to the new CONS cell.
Whenever CAR or CDR is performed on a CONS, it must check whether the
location contains a forwarding pointer.  This overhead on both CAR and CDR,
coupled with the overhead on CDR to check for CDR codes, is generally
enough that using CDR codes on conventional hardware is infeasible.

There is some evidence that CDR-coding doesn't really save very much
memory, because most lists aren't constructed at once, or RPLACD is done on
them enough that they don't stay contiguous.  At best this technique can
save 50% of the space occupied by CONS cells. However, the savings probably
depends to some extent upon the amount of support the implementation
provides for creating CDR-coded lists.  For instance, many system functions
on Symbolics Lisp Machines that operate on lists have a :LOCALIZE option;
when :LOCALIZE T is specified, the list is first modified and then copied
to a new, CDR-coded block, with all the old cells replaced with forwarding
pointers.  The next time the garbage collector runs, all the forwarding
pointers will be spliced out.  Thus, at a cost of a temporary increase in
memory usage, overall memory usage is generally reduced because more lists
may be CDR-coded. Nevertheless, modern Lisps tend to use lists much less
frequently, with a much heavier reliance upon code, strings, and vectors
(structures).

----------------------------------------------------------------
[32] What is garbage collection?

Garbage Collection (GC) refers to the automatic storage allocation
mechanisms present in many Lisps. There are several kinds of storage
allocation algorithms, but most fall within two main classes:

   1. Stop and Copy. Systems which copy active objects from "old"
      storage to "new" storage and then recycle the old storage.

   2. Mark and Sweep. Systems which link together storage
      used by discarded objects. 

Generational scavenging garbage collection is a variation on the first
type, in which memory is allocated in layers, with tenured (long-lived)
objects in the older layers. Rather than doing a full GC of all of memory
every time more room is needed, only the last few layers are GCed during an
ephemeral GC, taking much less time. Short-lived objects are quickly
recycled, and full GCs are then much less frequent. (Actually, it is
possible to implement ephemeral GC in mark and sweep systems, just much
more difficult).

Stop and copy garbage collection provides simpler storage allocation,
avoids fragmentation of memory (intermixing of free storage with used
storage). Copying, however, consumes more of the address space, since up to
half the space must be kept available for copying all the active objects.
This makes stop and copy GC impractical for systems with a small address
space or without virtual memory.  Also, copying an object requires that you
track down all the pointers to an object and update them to reflect the new
address, while in a non-copying system you need only keep one pointer to an
object, since its location will not change. It is also more difficult to
explicitly return storage to free space in a copying system.

Garbage collection is not part of the Common Lisp standard. Most Lisps
provide a function ROOM which provides human-readable information about the
state of storage usage. In many Lisps, (gc) invokes an ephemeral garbage
collection, and (gc t) a full garbage collection.

----------------------------------------------------------------
[33] How do I save an executable image of my loaded Lisp system?

There is no standard for dumping a Lisp image. Here are the
commands from some lisp implementations:
   Lucid:          DISKSAVE
   Symbolics:      Save World  [CP command]
   CMU CL:         SAVE-LISP
   Franz Allegro:  SAVE-IMAGE
     
----------------------------------------------------------------
[34] I'm porting some code from a Symbolics Lisp machine to some
     other platform, and there are strange characters in the code.
     What do they mean?

The Symbolics Zetalisp character set includes the following
characters not present in other Lisps:
   ^]      >=      greater than or equal to
   ^\      <=      less than or equal to
   ^Z      !=      not equal to
   ^^      ==      equivalent to 
   ^E      not
   ^G      pi
   ^L      +/-
   ^H      lambda
   ^F      epsilon
   ^W      <-->    left/right arrow
   ^X      <--     left arrow
   ^Y      -->     right arrow

Other special characters to look out for are the font-change characters,
which are represented as a ^F followed by a digit or asterisk. A digit
means to push font #N onto the stack; an asterisk means to pop the most
recent font from the stack. You can clean up the code by replacing "\^F."
with "".
     
----------------------------------------------------------------
[35] History: Where did Lisp come from?

John McCarthy developed the basics behind Lisp during the 1956 Dartmouth
Summer Research Project on Artificial Intelligence.  He intended it as an
algebraic LISt Processing (hence the name) language for artificial
intelligence work. The primary dialect of Lisp during the early 60s was
Lisp1.5. Early implementations included the IBM 704, the IBM 7090, the DEC
PDP-1, the DEC PDP-6 and the DEC PDP-10. The PDP-6 and PDP-10 had 18-bit
addresses and 36-bit words, allowing a CONS cell to be stored in one word,
with single instructions to extract the CAR and CDR parts.  During the
early 70s the language diverged, forming the two main dialects of MacLisp
and Interlisp.

The early PDP machines had a small address space, which limited the size of
Lisp programs. This lead to the development in the late 60s and early 70s
of special-purpose computers known as Lisp Machines, which were designed
specificly to run Lisp programs.  The Xerox D-series machines -- the
Dorado, Dandelion, Dandetiger, and Dove (Daybreak) -- ran a dialect of
Interlisp known as Interlisp-D. The early MIT Lisp Machines ran an
extension of MacLisp known as Lisp Machine Lisp. In the early 80s Scott
Fahlman and other researchers at CMU developed SPICE-Lisp, a MacLisp
dialect of Lisp to run on the Scientific Personal Integrated Computing
Environment (SPICE) workstation. Lisp Machines from Xerox, LMI (Lisp
Machines Inc) and Symbolics were available commercially starting in 1981.

NIL (New Implementation of Lisp), a Lisp for the VAX, developed out of the
efforts of the Macsyma group at MIT to fix many of the problems inherent in
early versions of Lisp. They later collaborated with a research group at
Stanford University and Lawrence Livermore National Laboratory who had
worked on the design of a Lisp to run on the S-1 Mark IIA supercomputer.

The first attempts to achieve a standard version of Lisp occurred in 1969,
when Anthony Hearn and Martin Griss defined Standard Lisp to port REDUCE, a
symbolic algebra system, to a variety of architectures. In the late 70s PSL
(Portable Standard Lisp) ran on nearly a dozen platforms. Franz Lisp was
also developed around this time as a dialect of MacLisp to run on
stock-hardware Unix machines, and was available on a variety of hardware
platforms.

Also in the late 70s, Gerald J. Sussman and Guy L. Steele developed Scheme,
a simple dialect of Lisp which incorporated some of the ideas from
programming language semantics from the 60s.  Some of these ideas included
lexical scoping and lexical closures, continuations as first-class objects,
and a simplified syntax (i.e., symbols have only one binding, not two as in
Lisp).

Object-oriented programming concepts, inspired mainly by Smalltalk, began
finding their way into Lisp dialects starting in the late 70s.  Flavors was
developed at MIT for the Lisp machine, and LOOPS (Lisp Object Oriented
Programming System) was developed at Xerox. The design of CLOS (Common Lisp
Object System) was influenced by both of these object-oriented extensions.

In April 1981, many elements of the splintered Lisp community gathered
together to define Common Lisp as a description of the common aspects of
the family of languages (Lisp Machine Lisp, MacLisp, NIL, S-1 Lisp, Spice
Lisp and Scheme). Among the people who worked on this were Fahlman,
Weinreb, Moon, Steele and Gabriel. During the late 80s (1984-89), Common
Lisp, as published in CLtL1, became a de facto standard. In 1986, X3J13 was
formed to produce a draft for an ANSI Common Lisp standard. Their main
focusses include portability, object-oriented programming, international
character sets, conditions/errors, and iteration facilities. Their work is
very nearly complete.

[Note: This summary is based primarily upon the History section of the
draft ANSI specification. More detail and references can be obtained from
that document when it becomes generally available.]

----------------------------------------------------------------

     
;;; ********************************
;;; Change Log *********************
;;; ********************************
;;; Date      Who     Ver   Reason
;;; ------------------------------------------------------------
;;;  7-FEB-92 mk      1.0   Initial release.
;;; 10-FEB-92 mk      1.1   Pre-release corrections and additions.
;;; ------------------------------------------------------------
     
;;; *EOF*

From fluke!sbanay@uunet.UU.NET  Wed Jun 10 03:28:11 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Wed, 10 Jun 1992 16:17:06 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA04599; Wed, 10 Jun 92 17:16:58 -0400
Received: from sputnik.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 171438.17450; Wed, 10 Jun 1992 17:14:38 EDT
Received: by sputnik.tc.fluke.COM (version 2.52)
	from batcomputer.tc.fluke.COM for SL-news-list@umnstat.stat.umn.edu
	id AA07142; Wed, 10 Jun 92 10:28:13 PDT
Received: by batcomputer.tc.fluke.COM (version 2.52)
	for SL-news-list@umnstat.stat.umn.edu
	id AA00107; Wed, 10 Jun 92 10:28:11 PDT
Message-Id: <9206101728.AA00107@batcomputer>
Date: Wed, 10 Jun 92 10:28:11 PDT
From: sbanay@tc.fluke.com (Sharon Banay)
To: SL-news-list@umnstat
Subject: me


please remove me from the mailing list

thanks
sharon

From owner-SL-news  Mon Jun 18 13:02:00 1992
Resent-Date: 18 Jun 92 19:02:00 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199206190013.AA03185@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 18 Jun 1992 19:13:05 -0500
Message-Id: <199206190013.AA03178@umnstat.stat.umn.edu>
Received: from orion (orion.depaul.edu) by umnstat.stat.umn.edu; Thu, 18 Jun 1992 19:13:00 -0500
Date: 18 Jun 92 19:02:00 CST
From: "Adam Gehr" <FINAKG@orion.depaul.edu>
Subject: puzzled about cadr
To: "stat-lisp-news" <stat-lisp-news@umnstat>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Adam Gehr" <FINAKG@orion.depaul.edu>

Could someone explain why I get the following in XLISP-
STAT (but not in XLISP)?
(setf one '(a b))
(A B)
> (car (cdr one))
B
> (cadr one)
B
> (setf (car (cdr one)) 'x)
X
> one
(A X)
> (setf (cadr one) 'y)
error: bad place form
> one
(A X)
> 
I thought cadr and (car (cdr did the same thing.
   Adam Gehr
   Department of Finance
   DePaul University


From almond@statsci.com  Thu Jun 18 11:36:57 1992
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Thu, 18 Jun 1992 21:08:02 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA03737; Thu, 18 Jun 92 22:08:07 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 220749.17087; Thu, 18 Jun 1992 22:07:49 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.19)
	id AA10705; Thu, 18 Jun 92 18:36:57 PDT
Date: Thu, 18 Jun 92 18:36:57 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9206190136.AA10705@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA07310; Thu, 18 Jun 92 18:37:32 PDT
To: FINAKG@orion.depaul.edu
Cc: SL-news-list@umnstat
In-Reply-To: "Adam Gehr"'s message of 18 Jun 92 19:02:00 CST <199206190013.AA03185@umnstat.stat.umn.edu>
Subject: puzzled about cadr

| Could someone explain why I get the following in XLISP-
| STAT (but not in XLISP)?
| (setf one '(a b))
| (A B)

| > (setf (car (cdr one)) 'x)
| X

| > (setf (cadr one) 'y)
| error: bad place form

| I thought cadr and (car (cdr did the same thing.
|     Adam Gehr

[Some portions of example omitted.]

They are functionally, but not synatically equivalent.  That is #'cadr
is a function which takes the second item of a list.  It does the same
thing as both the function #'second and the composition of the
functions #'car and #'cdr, however, it has only one function call.

The setf special function looks only at the synatx of its place (first)
argument, not the description.  In particular, there must be a setf
method defined #'car and #'cdr (which setf composes) but not one for
#'cadr.  This is an ommission in LISP-STAT, and it seems puzzling that
it is not backwards compatable with XLISP in this reguard.

You can define a setf method for #'cadr, look up "defsetf" in the
index.

As speculation, there is no setf method for #'cadr because Luke is of
the stylistic school which strongly prefers #'second to #'cadr.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu


From owner-SL-news  Fri Jun 26 10:38:54 1992
Resent-Date: Fri, 26 Jun 92 10:29:19 CET
Resent-From: owner-SL-news
Resent-Message-Id: <199206261538.AA02595@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 26 Jun 1992 10:38:54 -0500
Received: from vx.cis.umn.edu (vx.acs.umn.edu) by umnstat.stat.umn.edu; Fri, 26 Jun 1992 10:38:51 -0500
Received: from EBCESCA1 by vx.cis.umn.edu; Fri, 26 Jun 92 10:32 CDT
Received: from EBCESCA1 (UBAESQ01) by EBCESCA1 (Mailer R2.07) with BSMTP id
 3858; Fri, 26 Jun 92 10:32:27 CET
Date: Fri, 26 Jun 92 10:29:19 CET
From: Josep Fortiana Gregori <UBAESQ01@EBCESCA1.BITNET>
Subject: Difficulty loading DYNDIAG
To: stat-lisp-news@umnstat
Message-Id: <353BCA966C7F400157@vx.cis.umn.edu>
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Josep Fortiana Gregori <UBAESQ01@EBCESCA1.BITNET>

 
       When trying to load the Dynamic diagnostics package
   by Cook and Weisberg with the MS-Windows version of
   Xlisp-stat, an error message about "menu" appears.
       Has someone run it succesfully?  Thanks
 
                         Josep
 
 
 
......................................................................
Josep Fortiana
Departament d'Estadistica
(Facultat de Biologia)            Phone : 34 - 3 - 4021561
Universitat de Barcelona          E-mail: ubaesq01@ebcesca1.bitnet
Av. Diagonal 645
08028 - Barcelona                  (also  ubaesq01@puigmal.cesca.es)
SPAIN

From owner-SL-news  Tue Jun 26 05:25:00 1992
Resent-Date: 26 Jun 92 11:25:00 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199206270326.AA03560@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 26 Jun 1992 22:26:51 -0500
Message-Id: <199206270326.AA03553@umnstat.stat.umn.edu>
Received: from orion (orion.depaul.edu) by umnstat.stat.umn.edu; Fri, 26 Jun 1992 22:26:48 -0500
Date: 26 Jun 92 11:25:00 CST
From: "Adam Gehr" <FINAKG@orion.depaul.edu>
Subject: loading dyndiag
To: "stat-lisp-news" <stat-lisp-news@umnstat>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Adam Gehr" <FINAKG@orion.depaul.edu>

 I've had not problems with this package. It runs well on my computers
 both here and at home. I don't recall any particular problems in
 installation.
  Adam Gehr
  Professor of Finance
  DePaul University
  Chicago IL 


From owner-SL-news  Thu Jul  9 03:56:18 1992
Resent-Date: Thu, 09 Jul 92 08:56:18 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <199207091406.AA07503@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 9 Jul 1992 09:06:47 -0500
Received: from hermes.stat.wisc.edu by umnstat.stat.umn.edu; Thu, 9 Jul 1992 09:06:04 -0500
Message-Id: <9207091356.AA02844@hermes.stat.wisc.edu>
Received: from localhost by hermes.stat.wisc.edu; Thu, 9 Jul 92 08:56:24 -0500
To: Statistical Lisp Mailing List <stat-lisp-news@umnstat>
Cc: software@stat.wisc.edu
Subject: dyn-load problems on a decstation
Date: Thu, 09 Jul 92 08:56:18 CDT
From: kademan@stat.wisc.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kademan@stat.wisc.edu

Can anybody put their finger on the problem here, or at least point me in
the right direction?  When I try to dynamic load a C routine into
XLISP-STAT running on a Decstation 5000 the following happens:

> (dyn-load "../tmp/a.o")
ld:
../tmp/a.o: jump relocation out-of-range, bad object file produced, can't jump from 0x101ff018 to 0x445b24 (rvector)
first ld pass
ld -d -N -x -A /usr/stat/lib/xlispstat/xlisp -G 0 -T 101ff000 ../tmp/a.o  -lm -lc -o /tmp/xlispdyn2474
error: link failed
> 

The code I'm loading references rvector, a function internal to XLISP-STAT.

I can get around the problem by compiling a.o with gcc version 2.0 (it's
gcc 2.2.2 and ultrix cc that fail) but it would be nice to know just what
it is that's giving the linker grief.  If I discover anything interesting
I'll post a summary.  Thanks in advance.

internet:  kademan@stat.wisc.edu
uucp:      ...!{allegra,harvard,rutgers,ames,
		ucbvax}!uwvax!stat.wisc.edu!kademan

From owner-SL-news  Mon Jul 13 12:34:48 1992
Resent-Date: Mon, 13 Jul 92 16:34:48 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199207132040.AA16537@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 13 Jul 1992 15:40:37 -0500
Received: from stat.ufl.edu (holly.stat.ufl.edu) by umnstat.stat.umn.edu; Mon, 13 Jul 1992 15:36:01 -0500
Received:  by stat.ufl.edu (5.57/4.08)
	id AA18790; Mon, 13 Jul 92 16:34:48 -0400
Date: Mon, 13 Jul 92 16:34:48 -0400
From: Mike Conlon <mconlon@stat.ufl.edu>
Message-Id: <9207132034.AA18790@stat.ufl.edu>
To: sl-news@umnstat
Subject: ftp site unavailable?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Mike Conlon <mconlon@stat.ufl.edu>


We just tried to use anonymous ftp to umnstat.stat.umn.edu.
Here's what we got:

mconlon@holly> ftp umnstat.stat.umn.edu
Connected to umnstat.stat.umn.edu.
220 umnstat.stat.umn.edu FTP server (ULTRIX Version 4.1 Tue Mar 19 00:38:17 EST 1991)
ready.
Name (umnstat.stat.umn.edu:mconlon): anonymous
331 Guest login ok, send ident as password.
Password:
530 User ftp: can't change directory to /usr/misc/anonymous_ftp.
Login failed.
ftp> quit
221 Goodbye.


Is this a problem in Minnesota?

Mike Conlon
Dept of Statistics
University of Florida

From gary  Mon Jul 13 14:17:04 1992
Resent-Date: Mon, 13 Jul 92 19:17:04 CDT
Resent-Message-Id: <199207140017.AA27385@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 13 Jul 1992 19:17:08 -0500
From: "Gary Oehlert" <gary>
Message-Id: <199207140017.AA27378@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 13 Jul 1992 19:17:05 -0500
Subject: Re: ftp site unavailable?
To: sl-news@umnstat, mconlon@stat.ufl.edu
Date: Mon, 13 Jul 92 19:17:04 CDT
In-Reply-To: <9207132034.AA18790@stat.ufl.edu>; from "Mike Conlon" at Jul 13, 92 4:34 pm
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Gary Oehlert" <gary>

> 
> 
> We just tried to use anonymous ftp to umnstat.stat.umn.edu.
> Here's what we got:
> 
> mconlon@holly> ftp umnstat.stat.umn.edu
> Connected to umnstat.stat.umn.edu.
> 220 umnstat.stat.umn.edu FTP server (ULTRIX Version 4.1 Tue Mar 19 00:38:17 EST 1991)
> ready.
> Name (umnstat.stat.umn.edu:mconlon): anonymous
> 331 Guest login ok, send ident as password.
> Password:
> 530 User ftp: can't change directory to /usr/misc/anonymous_ftp.
> Login failed.
> ftp> quit
> 221 Goodbye.
> 
> 
> Is this a problem in Minnesota?
> 
> Mike Conlon
> Dept of Statistics
> University of Florida
> 

Yes, I think we moved our mail directories around today, and we must have
fouled up our /etc/fstab's somewhere.  We'll try to
get that fixed tomorrow.  

Gary
-- 

Gary W. Oehlert					Voice: 612-625-4758
Dept. of Applied Statistics			Fax:   612-624-2719
University of Minnesota				
1994 Buford Ave.				gary@umnstat.stat.umn.edu
St. Paul, MN 55108				stat201@umnacux.bitnet

From owner-SL-news  Sat Jul 18 13:27:17 1992
Resent-Date: Sat, 18 Jul 92 17:27:17 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199207182129.AA27995@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 18 Jul 1992 16:29:18 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Sat, 18 Jul 1992 16:29:14 -0500
Received: from uranus.fsu.edu (uranus.stat.fsu.edu) by stat.fsu.edu (4.1/25-eef)
	id AA18840; Sat, 18 Jul 92 17:27:17 EDT
Date: Sat, 18 Jul 92 17:27:17 EDT
From: Shau-Ming Wu <wu@stat.fsu.edu>
Message-Id: <9207182127.AA18840@stat.fsu.edu>
To: stat-lisp-news@umnstat
Subject: Run XlispStat under Emacs
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Shau-Ming Wu <wu@stat.fsu.edu>

I heard that it is convenient to run XlispStat 
under Emacs. Is there any person knowing how to do it?
Shau-Ming Wu
wu@stat.fsu.edu

From owner-SL-news  Sat Jul 18 13:35:44 1992
Resent-Date: Sat, 18 Jul 92 17:35:44 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199207182137.AA28068@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 18 Jul 1992 16:37:44 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Sat, 18 Jul 1992 16:37:41 -0500
Received: from uranus.fsu.edu (uranus.stat.fsu.edu) by stat.fsu.edu (4.1/25-eef)
	id AA18850; Sat, 18 Jul 92 17:35:44 EDT
Date: Sat, 18 Jul 92 17:35:44 EDT
From: Shau-Ming Wu <wu@stat.fsu.edu>
Message-Id: <9207182135.AA18850@stat.fsu.edu>
To: stat-lisp-news@umnstat
Subject: ElToY
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Shau-Ming Wu <wu@stat.fsu.edu>

I executed 'eltoy' command under X-window in sparc station, but no menu came up, although there was not any error message.
Are 'progn' and 'strcat' not XlispStat default  functions? See "load-all.lsp" file.

Shau-Ming Wu
wu@stat.fsu.edu

From statsci!almond@uunet.UU.NET  Sat Jul 18 08:46:24 1992
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Sat, 18 Jul 1992 17:53:05 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA03213; Sat, 18 Jul 92 18:53:11 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 185242.22461; Sat, 18 Jul 1992 18:52:42 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.25)
	id AA00574; Sat, 18 Jul 92 15:46:24 PDT
Date: Sat, 18 Jul 92 15:46:24 PDT
From: statsci!almond@uunet.UU.NET (Russell G. Almond)
Message-Id: <9207182246.AA00574@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA17758; Sat, 18 Jul 92 15:46:51 PDT
To: wu@stat.fsu.edu
Cc: SL-news-list@umnstat
In-Reply-To: Shau-Ming Wu's message of Sat, 18 Jul 92 17:35:44 EDT <199207182137.AA28068@umnstat.stat.umn.edu>
Subject: ElToY


> I executed 'eltoy' command under X-window in sparc station, but no
> menu came up, although there was not any error message. 

I can't figure out why, unless somehow the compiler switches aren't
set right.  Did you get a message saying Xlispstat was loading
"menubar"?

Email me a transcript of what you do get, and maybe I can offer some
advise. 

> Are 'progn' and 'strcat' not XlispStat default  functions? See
> "load-all.lsp" file. 

They are there when I load Xlispstat (version 2.1 Release 2 for Sun
SPARC).  

By the way 'progn' is not a function it is a special form (you can't
apply it!).


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu




From statsci!almond@uunet.UU.NET  Sat Jul 18 08:55:20 1992
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Sat, 18 Jul 1992 18:15:02 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA04902; Sat, 18 Jul 92 19:15:05 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 191426.24279; Sat, 18 Jul 1992 19:14:26 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.25)
	id AA00599; Sat, 18 Jul 92 15:55:20 PDT
Date: Sat, 18 Jul 92 15:55:20 PDT
From: statsci!almond@uunet.UU.NET (Russell G. Almond)
Message-Id: <9207182255.AA00599@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA17760; Sat, 18 Jul 92 15:55:47 PDT
To: wu@stat.fsu.edu
Cc: SL-news-list@umnstat
In-Reply-To: Shau-Ming Wu's message of Sat, 18 Jul 92 17:27:17 EDT <199207182129.AA27995@umnstat.stat.umn.edu>
Subject: Run XlispStat under Emacs


Try going through the Info manual on inferior lisp modes.  The
standard emacs release provides a mechanism for running lisp as a
subshell, providing useful features like paren matching, etc. and
allows you to send top level forms directly from a file to the
inferior lisp.  If I recall correctly (its been a while since I used
it) all you need to do is set the name of one variable to xlispstat
and it should run correctly.

There is an improved version of the emacs-lisp available from Franz,
Inc.  I think it may be posted somewhere for anonymous ftp, take a
look at the comp.lang.lisp FAQ lists for details.  It is the one I am
using (along with Franz Lisp) however, many of the improvements are
Common Lisp specific, and still others are specific to Allegro Common
Lisp.  (Hence my foggy memory on the default emacs-lisp interface.)

By the way, if you have been trying write Lisp code without using
Emacs, you don't know what you are missing.  Emacs understands the
syntax of Lisp expressions, and will semi-automatically indent to the
common conventions.  This really helps you keep track of how deeply
nested you are in a complex expression and exactly how many
expressions are still open.  I couldn't live without it.

	--Russell Almond


From owner-SL-news  Sun Jul 19 13:28:20 1992
Resent-Date: Sun, 19 Jul 92 17:28:20 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199207192130.AA29743@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 19 Jul 1992 16:30:27 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Sun, 19 Jul 1992 16:30:24 -0500
Received: from uranus.fsu.edu (uranus.stat.fsu.edu) by stat.fsu.edu (4.1/25-eef)
	id AA21015; Sun, 19 Jul 92 17:28:20 EDT
Date: Sun, 19 Jul 92 17:28:20 EDT
From: Shau-Ming Wu <wu@stat.fsu.edu>
Message-Id: <9207192128.AA21015@stat.fsu.edu>
Received: by uranus.fsu.edu (4.1/SMI-4.1)
	id AA09727; Sun, 19 Jul 92 17:28:50 EDT
To: stat-lisp-news@umnstat
Subject: Emacs, S, and XLispStat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Shau-Ming Wu <wu@stat.fsu.edu>

(i) Thanks for all the response from this news group. The problems is
that we don't have emacs
subdirectory nor xlispstat.el in emacs path. However, we are going to
fix it up. Special thanks to Russell Almond and Brett Presnell for detailed instructions.
(ii) Learning XLispStat is quite a rewarding thing. At least we learn
Lisp type of programming language. It even helps
understand Emacs. Personally. It is easier to learn and write Lisp
codes than C codes. I like lisp, and  I used xedit for
coding which went along with tedious syntax checking.
(iii) It seems that index in Luke Tierney's book does not cover all of
the functions and special forms available in XLispStat. Am I correct?
(iv) I am preparing an informal  talk, "Comparison of S with XLispStat"
to a small group of statistics faculty and graduate students here.

Suppose you are in the audience, what would you like to know? Any
suggestion and advice is welcome. My talk will be based on "Comment:
Two Functional Programming Enironments for Statistics - Lisp-Stat and
S" by David J. Lubinsky in Statistical Science vol. 6 no. 4 Nov. 1991.

Thanks a lot.

Shau-Ming Wu
wu@stat.fsu.edu

From owner-SL-news  Fri Jul 20 03:52:00 1992
Resent-Date: 20 Jul 92 09:52:00 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199207201500.AA01280@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 20 Jul 1992 10:00:18 -0500
Message-Id: <199207201500.AA01273@umnstat.stat.umn.edu>
Received: from orion (orion.depaul.edu) by umnstat.stat.umn.edu; Mon, 20 Jul 1992 10:00:15 -0500
Date: 20 Jul 92 09:52:00 CST
From: "Adam Gehr" <FINAKG@orion.depaul.edu>
Subject: Stack size on Windows xlisp-stat
To: "stat-lisp-news" <stat-lisp-news@umnstat>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Adam Gehr" <FINAKG@orion.depaul.edu>

Is there any way to increase the size of the stack in
the Windows version of xlisp-stat? I can alleviate
the problem a bit by re-coding to use loops rather than
recursion where that's possible, but that doesn't lead
to very readable code, and I still get crashes when I
make the problem big enough.

I'm running a 486 PC with 4 meg of memory and windows
3.1. When the program crashes it requires closing down
xlisp-stat (and I've found it also helps to dump windows
and start it up again).

Failing this, can someone recommend a version of Lisp
which runs on the PC? I prefer Xlisp-stat, because I'd like to use 
the statistical and graphical tools to analyse the output
of the simulation I'm writing.

 Adam Gehr
 Department of Finance
 DePaul University


From statsci!almond@uunet.UU.NET  Mon Jul 20 07:13:16 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Mon, 20 Jul 1992 16:37:56 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA22124; Mon, 20 Jul 92 17:37:49 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 173608.14724; Mon, 20 Jul 1992 17:36:08 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.25)
	id AA10316; Mon, 20 Jul 92 14:13:16 PDT
Date: Mon, 20 Jul 92 14:13:16 PDT
From: statsci!almond@uunet.UU.NET (Russell G. Almond)
Message-Id: <9207202113.AA10316@statsci.com>
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA18638; Mon, 20 Jul 92 14:13:46 PDT
To: wu@stat.fsu.edu
Cc: SL-news-list@umnstat
In-Reply-To: Shau-Ming Wu's message of Sun, 19 Jul 92 17:27:22 EDT <199207192129.AA29729@umnstat.stat.umn.edu>
Subject: Emacs, S, and XLispStat


(i) Emacs and Xlispstat

I think that all you need to run xlispstat under emacs is available
with the standard (GNU emacs 18.xx) distribution.  All bets are off if
your not using GNU emacs.

(ii) XLISPSTAT and C.

Peter Norvig's new book _Paradigms of Artificial Intelligence
Programming:  Case Studies in Common Lisp_, Morgan Kaufmann has some
good introductory examples giving some comparisons between LISP and
more conventional programming languages.  (Note that S shares some of
those same advantages, such as "interactive" and "dynamic memory
management.")

(iii) Xlispstat reference.  Luke's book gives a once over to most of
the important ones, however it is not a thorough treatment.

Steele[1990] _Common Lisp: The Language_ is the de facto standard for
Common LISP of which XLISP is a subset.  (The ANSI X3J13 committee
writing the draft standard is actually working from the earlier
version Steele[1984]).  Because XLISP is a subset of the earlier
draft, you may actually be better off using Steele[1984].  A lot of
the keyword args for the sequence functions are missing, as are a
large number of other functions.  It is usually easy enough to write
the functions that you are missing though.

You may want to look at a standard intro to LISP such as Wilensky or
Winston and Horn, or the first couple of chapter's of Norvig.
Remember that one of the features of LISP programming is that you no
longer need to think like a FORTRAN programmer.  Standard LISP tricks
include creating a data structure which captures your knowledge about
the problem and other code which translates that into procedures.
Luke's book simply doesn't have time to show you those sorts of
tricks.

(iv) On LISP-STAT and S.

One of the big differences between LISP-STAT and S is that S does lazy
evaluation.  LISP always evaluates all arguments of a function (as
opposed to a macro or a special form) before applying the function to
the argument.  In S, however, arguments are not evaluated until they
are used.  This makes for a difficult interaction with generic
function definitions.  I recently heard John Chambers talk on planned 
improvements to New^3 S, and one of the things is improved Generic
Function and method stuff.  I'm still not sure how is is planning to
do this and keep lazy evaluation.

A second big difference is that S can always back out of a calculation
if an error occurs in the middle.  This is rather like having all
function wrapped in unwind-protect.  Incidentally, alot of the
inefficiencies of S stem from this feature.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu




From owner-SL-news  Tue Jul 21 05:58:31 1992
Resent-Date: Tue, 21 Jul 92 10:58:31 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <199207211558.AA03889@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 21 Jul 1992 10:58:52 -0500
Received: from hermes.stat.wisc.edu by umnstat.stat.umn.edu; Tue, 21 Jul 1992 10:58:45 -0500
Message-Id: <9207211558.AA20143@hermes.stat.wisc.edu>
Received: from localhost by hermes.stat.wisc.edu; Tue, 21 Jul 92 10:58:32 -0500
To: Statistical Lisp Mailing List <stat-lisp-news@umnstat>
Subject: dynamic loading on a decstation
Date: Tue, 21 Jul 92 10:58:31 CDT
From: kademan@stat.wisc.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kademan@stat.wisc.edu

A while ago I had a question about dynamic loading with XLISP-STAT.

> I'm working on a DECstation 5000 and using a
> statistical package called XLISP-STAT that allows you to write your own C
> code and then dynamically link your routine in with the executive.  This
> used to work fine with gcc 2.0 but now with 2.2.2 (and with the same
> XLISP-STAT executable) I get the following error message:
> 
> > (dyn-load "../tmp/a.o")
> first ld pass
> ld -d -N -x -A /usr/stat/lib/xlispstat/xlisp -G 0 -T 101ff000 ../tmp/a.o
> -lm -lc -o /tmp/xlispdyn2474
> ld:
> ../tmp/a.o: jump relocation out-of-range, bad object file produced, can't jump from 0x101ff018 to 0x445b24 (rvector)
> error: link failed
> > 
> 
> The code I'm loading references rvector, a function internal to XLISP-STAT.
> 

Thanks to Joe Burger <bolo@cs.wisc.edu> and Bill Dunlap <bill@statsci.com>
for the solution.  The text and data segments of the xlisp executable were
so far apart that when it loaded in the new code the relative branch
instructions that the compiler generated were inadequate to reference the
routines already resident in xlisp.  To remedy this I needed to rebuild the
executable with text and data closer together.  The "size" utility tells
you what the sizes of these segments are and the "-T" and "-D" options to
ld allow you to specify their starting addresses.  For example, linking
xlisp with "-D 800000" and with the default text address worked.  Another
option that seemed to work was "-N" which puts the text and data right next
to one another (though the text is now no longer shareable among multiple
users).

Ed Kademan
internet:  kademan@stat.wisc.edu
uucp:      ...!{allegra,harvard,rutgers,ames,
		ucbvax}!uwvax!stat.wisc.edu!kademan

From owner-SL-news  Tue Aug  4 12:24:05 1992
Resent-Date: Tue, 04 Aug 92 10:24:05 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <199208040824.AA10244@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 4 Aug 1992 03:24:31 -0500
Received: from ns3.hq.eso.org by umnstat.stat.umn.edu; Tue, 4 Aug 1992 03:24:26 -0500
Message-Id: <9208040824.AA08507@ns3.hq.eso.org>
Received: from localhost.hq.eso.org by ns3.hq.eso.org (4.1/ eso-1.1)
	id AA08507; Tue, 4 Aug 92 10:24:06 +0200
To: stat-lisp-news@umnstat, info-macl@cambridge.apple.com
Subject: XLISP/XSTAT under Macintosh Common Lisp
Date: Tue, 04 Aug 92 10:24:05 +0200
From: hmadorf@eso.org
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: hmadorf@eso.org

Hi netters,

I am a happy user of both MCL and XLISP/XSTAT. Of course it is tedious 
to switch between the two environments. Also XLISP does not offer
the full functionality of CLtL2.

Has anyone made an effort to implement/emulate the XLSIP/XSTAT 
functionality on top of MCL (or another Common Lisp for that matter)? 

Thanks

Hans-Martin Adorf
Space Telescope - European Coordinating Facility
Garching, FRG

From owner-SL-news  Tue Aug  4 03:49:00 1992
Resent-Date: Tue, 4 Aug 92 08:49 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <199208041348.AA10714@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 4 Aug 1992 08:48:53 -0500
Message-Id: <199208041348.AA10707@umnstat.stat.umn.edu>
Received: from aardvark.ucs.uoknor.edu by umnstat.stat.umn.edu; Tue, 4 Aug 1992 08:48:50 -0500
Date: Tue, 4 Aug 92 08:49 CDT
From: JBEHRENS@aardvark.ucs.uoknor.edu
Subject: Instructional uses of XLISP-STAT
To: stat-lisp-news@umnstat
X-Vms-To: IN%"stat-lisp-news@umnstat.stat.umn.edu"
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: JBEHRENS@aardvark.ucs.uoknor.edu

I am an Educational Psychologist (basically we study how to improve
learning and instruction) and am using XLISP-STAT both for my own data
analysis and for instructional purposes. I was wondering if any other list
members were using XLISP-STAT for instructional purposes and if so, of what
type. Would be glad to summarize responses for redistribution on the list.

John T. Behrens
University of Oklahoma
Department of Educational Psychology

From owner-SL-news  Tue Aug  4 06:01:06 1992
Resent-Date: Tue, 4 Aug 1992 11:01:06 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199208041547.AA11005@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 4 Aug 1992 10:47:59 -0500
Received: from brazil.cambridge.apple.com by umnstat.stat.umn.edu; Tue, 4 Aug 1992 10:47:54 -0500
Received: from ministry.cambridge.apple.com by brazil.cambridge.apple.com with SMTP (5.64/25-eef)
	id AA01427; Tue, 4 Aug 92 11:12:31 -0400
	for stat-lisp-news@umnstat.stat.umn.edu
Received: from [90.223.0.29] by cambridge.apple.com with SMTP (5.64/25-eef)
	id AA19094; Tue, 4 Aug 92 10:24:05 -0400
Message-Id: <9208041424.AA19094@cambridge.apple.com>
Date: Tue, 4 Aug 1992 11:01:06 -0500
To: stat-lisp-news@umnstat
From: Steve Strassmann <straz@cambridge.apple.com>
Subject: XLISP/XSTAT under Macintosh Common Lisp
Cc: info-mcl@cambridge.apple.com
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Steve Strassmann <straz@cambridge.apple.com>

>To: stat-lisp-news@umnstat.stat.umn.edu, info-macl@cambridge.apple.com
>Subject: XLISP/XSTAT under Macintosh Common Lisp
>Date: Tue, 04 Aug 92 10:24:05 +0200
>From: hmadorf@eso.org
>
>Hi netters,
>
>I am a happy user of both MCL and XLISP/XSTAT. Of course it is tedious 
>to switch between the two environments. Also XLISP does not offer
>the full functionality of CLtL2.
>
>Has anyone made an effort to implement/emulate the XLSIP/XSTAT 
>functionality on top of MCL (or another Common Lisp for that matter)? 
>
>Thanks
>
>Hans-Martin Adorf
>Space Telescope - European Coordinating Facility
>Garching, FRG
>
>

Well, you're in luck!

The XSTAT folks have been working on the Common Lisp port,
which is available by anonymous ftp from
umnstat.stat.umn.edu:/pub/xlispstat/CL/CLS1.0A1.tar.Z

MCL owners don't even have to ftp - it's on the MCL 2.0 cd-rom!
Warning: this code has not been tested (as far as I know) under MCL.
If someone has "Macified" it, please let me know!

 enjoy,
 - steve


From owner-SL-news  Tue Aug  4 09:10:12 1992
Resent-Date:         Tue, 04 Aug 92 13:10:12 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199208041713.AA11466@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 4 Aug 1992 12:13:42 -0500
Message-Id: <199208041713.AA11459@umnstat.stat.umn.edu>
Received: from ukcc.uky.edu by umnstat.stat.umn.edu; Tue, 4 Aug 1992 12:13:37 -0500
Received: from ukcc.uky.edu by UKCC.uky.edu (IBM VM SMTP V2R2)
   with BSMTP id 6622; Tue, 04 Aug 92 13:13:13 EDT
Received: from UKCC.uky.edu (ASTRO11) by ukcc.uky.edu (Mailer R2.08) with BSMTP
 id 0563; Tue, 04 Aug 92 13:13:13 EDT
Date:         Tue, 04 Aug 92 13:10:12 EDT
From: arny stromberg <ASTRO11@UKCC.uky.edu>
Subject:      xlispstat on HP-730
To: stat-lisp-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: arny stromberg <ASTRO11@UKCC.uky.edu>

Is anyone running or interested in running xlispstat on an HP-730?
Thanks, Arny Stromberg (astro11@ukcc.uky.edu)

From luke  Fri Aug  7 05:41:42 1992
Resent-Date: Fri, 7 Aug 92 10:41:42 CDT
Resent-Message-Id: <199208071541.AA20962@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 7 Aug 1992 10:41:46 -0500
From: "Luke Tierney" <luke>
Message-Id: <199208071541.AA20954@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 7 Aug 1992 10:41:43 -0500
Subject: XLISP-STAT 2.1R3 Alpha 7 for Macintosh; 32-bit fix
To: stat-lisp-news@umnstat
Date: Fri, 7 Aug 92 10:41:42 CDT
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

XLISP-STAT 2.1R3 Alpha 7 for the Macintosh is now available for ftp
from umnstat.stat.umn.edu. It is in files
XLISP-STAT2.1R3A7.Disk1.SEA.hqx and XLISP-STAT2.1R3A7.Disk2.SEA.hqx.
These are binhexed self-extracting archives.

This release brings the Mac version in line with the current MS
Windows version (in particular it includes an improved eigenvalue
routine from EISPACK). 

This is not a major release; I hope to make a final release of 2.1R3
in a few months. The reason for putting this out now is that I have
found and fixed a bug in the allocation of the color buffer that would
cause XLISP-STAT 2.1R2 to fail on some systems under System 7 with
32-bit addressing turned on. The symptom was usually failure on
startup with an "unknown error 1" or some such message, perhaps
followed by freezing of the system requiring a reboot.

I hope that this fix makes the new version 32-bit clean. On my test
configurations it seems to work with 32-bit addressing turned on. If
you have had problems with 32-bit addressing, please try this new
version and let me know if there are still problems.

luke


From owner-SL-news  Sat Aug 11 15:13:13 1992
Resent-Date: 11 Aug 1992 08:13:13 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199208110018.AA25980@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 10 Aug 1992 19:18:09 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Mon, 10 Aug 1992 19:17:47 -0500
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GNFEKYQY749JD6T3@vx.cis.umn.edu>; Mon, 10 Aug 1992 19:20:11 CDT
Received: by NUSVM (Mailer R2.03B) id 5563; Tue, 11 Aug 92 08:16:48 SST
Date: 11 Aug 1992 08:13:13 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: LISP QUESTION
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GNFEKYR7UA9JD6T3@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

I have a lisp problem I can't figure out how to solve.  The problem is
as follows:  I have a variable that has a string value, such as:
   (setf a "foo")
and i wish to create a new variable whose name is the string value of the
first variable, and which has some value that doesn't matter at this point.
I thought about
   (setf (eval a) 1)
but anticipated that it wouldn't work.  I can't think of any other way.  HELP!
Thanks...

From kilroy@biostat.washington.edu  Mon Aug 10 23:58:32 1992
Received: from uhura.biostat.washington.edu by umnstat.stat.umn.edu; Mon, 10 Aug 1992 23:58:32 -0500
Received: by uhura.biostat.washington.edu
	(5.64/UW-NDC Revision: 2.21 ) id AA03950; Mon, 10 Aug 92 21:56:32 -0700
From: Steve McKinney <kilroy@biostat.washington.edu>
Message-Id: <9208110456.AA03950@uhura.biostat.washington.edu>
Subject: Re: LISP QUESTION
To: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu (Forrest Young)
Date: Mon, 10 Aug 92 21:56:30 BST
Cc: SL-news-list@umnstat
In-Reply-To: <01GNFEKYR7UA9JD6T3@vx.cis.umn.edu>; from "Forrest Young" at Aug 11, 92 8:13 am
X-Mailer: ELM [version 2.3 PL11]

> 
> I have a lisp problem I can't figure out how to solve.  The problem is
> as follows:  I have a variable that has a string value, such as:
>    (setf a "foo")
> and i wish to create a new variable whose name is the string value of the
> first variable, and which has some value that doesn't matter at this point.
> I thought about
>    (setf (eval a) 1)
> but anticipated that it wouldn't work.  I can't think of any other way.  HELP!
> Thanks...
> 

Another question and a bit of an answer.

My impression from LISP manuals is that the following should work
> (setf a "foo")
"foo"
> (intern a)
foo

but LISPSTAT does this

> (setf a "foo")
"foo"
> (intern a)
|foo|

Why the bars around foo?

Anyway this is a partial answer to the question.  I have implemented
code along the lines of the following example in some of my
programming work using Lispstat.  The (set ) function is the way to
set the new variable created from a string.


> (let ((var1 (intern (with-output-to-string (s) (princ "foo" s))))
        (var2 (intern (with-output-to-string (s) (princ "bar" s)))))
    (set var1 1) ; (set ) function evaluates all arguments
    (set var2 2)
    (princ var1)
    (princ var2)
    (terpri)
    (princ (eval var1))
    (terpri)
    (princ (eval var2))
    (terpri)
    (+ (eval var1) (eval var2)))

foobar
1
2
3
> foo 
error: unbound variable - FOO
> bar
error: unbound variable - BAR
> |foo|
1
> |bar|
2

Why (princ var1) yields foo and not |foo| I do not understand, but in
any event I have made and manipulated variables within Lispstat
functions using the above 
( ... (intern (with-output-to-string (s) (princ "foo" s))) ... )
stuff.



        \`|'/
        (. .)
   ---uuu-U-uuu---
   kilroy was here



From owner-SL-news  Wed Aug 12 17:27:23 1992
Resent-Date: Wed, 12 Aug 92 16:27:23 +0100
Resent-From: owner-SL-news
Resent-Message-Id: <199208121426.AA29225@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 12 Aug 1992 09:26:31 -0500
Received: from ipgaix.unipg.it (aixstat.unipg.it) by umnstat.stat.umn.edu; Wed, 12 Aug 1992 09:26:23 -0500
Received: by ipgaix.unipg.it (5.61-AIX-1.2/1.0)
	id AA338270 (for STAT-LISP-NEWS@umnstat.stat.umn.edu, from glm/glm@ipgaix.unipg.it); Wed, 12 Aug 92 16:27:23 +0100
Date: Wed, 12 Aug 92 16:27:23 +0100
From: glm@ipgaix.unipg.it (Gianfranco Galmacci)
Message-Id: <9208121527.AA338270@ipgaix.unipg.it>
To: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu, STAT-LISP-NEWS@umnstat
Subject: Re:  LISP QUESTION
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: glm@ipgaix.unipg.it (Gianfranco Galmacci)

Try the following

(setf a "foo")
(set (with-input-from-string (str a) (read str)) '(1 2 3))

now you can use foo or its content as you wish

Gianfranco Galmacci
Dept of Statistics
Perugia - Italy

From owner-SL-news  Wed Aug 12 09:31:55 1992
Resent-Date: Wed, 12 Aug 92 13:31:55 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199208121733.AA29647@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 12 Aug 1992 12:33:02 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Wed, 12 Aug 1992 12:32:59 -0500
Received: from uranus.stat.fsu.edu by stat.fsu.edu (4.1/25-eef)
	id AA01639; Wed, 12 Aug 92 13:30:37 EDT
Message-Id: <9208121730.AA01639@stat.fsu.edu>
To: stat-lisp-news@umnstat
Subject: Is there a Quick reference guide for Xlisp?
Date: Wed, 12 Aug 92 13:31:55 -0400
From: naras@stat.fsu.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: naras@stat.fsu.edu

I am making some notes as I am going thru' Tierney's book. I think that
a quick reference for Xlisp, along with documentation for Xlisp-Stat functions
would not be a bad idea. At least for me.

Comments, suggestions? Or is there one already?

----------------------------------------------------------------------
B. Narasimhan                            Division of Science and Math.
naras@cda.mrs.umn.edu                    University of Minnesota, Morris
                                         Morris, MN 56267.
----------------------------------------------------------------------

From owner-SL-news  Wed Aug 12 06:18:58 1992
Resent-Date: Wed, 12 Aug 92 13:18:58 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <199208122023.AA29999@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 12 Aug 1992 15:23:31 -0500
Received: from hp.com by umnstat.stat.umn.edu; Wed, 12 Aug 1992 15:20:24 -0500
Received: from labmdv.lsid.hp.com by hp.com with SMTP
	(16.8/15.5+IOS 3.13) id AA29109; Wed, 12 Aug 92 13:19:07 -0700
Received: by labmdv.lsid.hp.com
	(16.6/15.5+IOS 3.22) id AA21048; Wed, 12 Aug 92 13:18:59 -0700
From: Bill Harris <billh@lsid.hp.com>
Message-Id: <9208122018.AA21048@labmdv.lsid.hp.com>
Subject: Re: Is there a Quick reference guide for Xlisp?
To: naras@stat.fsu.edu
Date: Wed, 12 Aug 92 13:18:58 PDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9208121730.AA01639@stat.fsu.edu>; from "naras@stat.fsu.edu" at Aug 12, 92 1:31 pm
Mailer: Elm [revision: 66.25]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Bill Harris <billh@lsid.hp.com>

>
>I am making some notes as I am going thru' Tierney's book. I think that
>a quick reference for Xlisp, along with documentation for Xlisp-Stat functions
>would not be a bad idea. At least for me.
>
>Comments, suggestions? Or is there one already?
>

I would think it would be helpful.  I occasionally run Xlisp-Stat on a PC,
and I do end up making lots of searches through the text to find out
something that could have been found in a quick reference.  

How about something like an 8.5" x 11" sheet, folded into 3 sections along
the 11" side, with 3 columns of text front and back?  I have seen cards
from a vendor of MS-DOS and UN*X quick reference cards formatted like that.


>----------------------------------------------------------------------
>B. Narasimhan                            Division of Science and Math.
>naras@cda.mrs.umn.edu                    University of Minnesota, Morris
>                                         Morris, MN 56267.
>----------------------------------------------------------------------
>

Regards,

Bill 

--
Bill Harris                             Hewlett-Packard Co. 
R&D Productivity Department             Lake Stevens Instrument Division 
domain: billh@lsid.hp.com               M/S 330
hpdesk: Bill Harris / HPA100            8600 Soper Hill Road
phone: (206) 335-2200                   Everett, WA 98205-1298 
                    

From almond@stat.washington.edu  Wed Aug 12 13:05:39 1992
Received: from grover.stat.washington.edu by umnstat.stat.umn.edu; Wed, 12 Aug 1992 22:06:32 -0500
Received: from bert.stat.washington.edu by grover.stat.washington.edu
	(5.64/UW-NDC Revision: 2.23 ) id AA08434; Wed, 12 Aug 92 20:05:39 -0700
Date: Wed, 12 Aug 92 20:05:39 -0700
From: Russell G. Almond <almond@stat.washington.edu>
Message-Id: <9208130305.AA08434@grover.stat.washington.edu>
Received: by bert.stat.washington.edu.sccc (4.1/SMI-4.1)
	id AA00456; Wed, 12 Aug 92 20:05:38 PDT
To: statsci!naras%stat.fsu.edu@uunet.uu.net
Cc: SL-news-list@umnstat
In-Reply-To: statsci!naras%stat.fsu.edu@uunet.uu.net's message of Wed, 12 Aug 92 13:31:55 -0400 <199208121733.AA29647@umnstat.stat.umn.edu>
Subject: Is there a Quick reference guide for Xlisp?


Actually, I would say it is badly needed.  Especially a more
systematic catalog of objects and methods.

We also need a book of stupid Lisp tricks for statisticians.

			Russell Almond			   
U. Washington, 			    	Statistical Sciences, Inc.
Statistics, GN-22	           	1700 Westlake Ave., N Suite 500
Seattle, WA  98195			Seattle, WA  98109
(206) 685-7428   			(206) 283-8802
almond@stat.washington.edu 		almond@statsci.com

Spring Sunshine,
The Tree-of-Cliques in Hyperbloom.
Eschew Affine Constraints!
	(future ancient Japaneese Haiku)

(my affliations are reversed today because I'm posting from the other
account).

From deleeuw@laplace.sscnet.ucla.edu  Wed Aug 12 13:27:18 1992
Received: from sscnet.ucla.edu (weber.sscnet.ucla.edu) by umnstat.stat.umn.edu; Wed, 12 Aug 1992 22:28:25 -0500
Received: from laplace.sscnet.ucla.edu by sscnet.ucla.edu (4.1/ssc-02/26)
	id AA26741; Wed, 12 Aug 92 20:27:22 PDT
Received: by laplace.sscnet.ucla.edu (4.1/SMI-4.1)
	id AA20209; Wed, 12 Aug 92 20:27:18 PDT
Date: Wed, 12 Aug 92 20:27:18 PDT
From: deleeuw@laplace.sscnet.ucla.edu (Jan Deleeuw)
Message-Id: <9208130327.AA20209@laplace.sscnet.ucla.edu>
To: SL-news-list@umnstat


Maybe somebody could take the excellent XLISP Reference Guide as an
example, and add the about 100-200 pages needed for the XLISP-STAT
commands. This means that Tim Mikkelsen has already done most of
the work, and his guide can also serve as a model.

--- Jan

From almond@stat.washington.edu  Wed Aug 12 13:32:10 1992
Received: from grover.stat.washington.edu by umnstat.stat.umn.edu; Wed, 12 Aug 1992 22:32:11 -0500
Received: from bert.stat.washington.edu by grover.stat.washington.edu
	(5.64/UW-NDC Revision: 2.23 ) id AA08442; Wed, 12 Aug 92 20:32:10 -0700
Date: Wed, 12 Aug 92 20:32:10 -0700
From: Russell G. Almond <almond@stat.washington.edu>
Message-Id: <9208130332.AA08442@grover.stat.washington.edu>
Received: by bert.stat.washington.edu.sccc (4.1/SMI-4.1)
	id AA00461; Wed, 12 Aug 92 20:32:09 PDT
To: SL-news-list@umnstat
In-Reply-To: Steve McKinney's message of Mon, 10 Aug 92 21:56:30 BST <9208110456.AA03950@uhura.biostat.washington.edu>
Subject: LISP QUESTION (Creating Symbols)

Steve McKinney writes:
| My impression from LISP manuals is that the following should work
| > (setf a "foo")
| "foo"
| > (intern a)
| foo

| but LISPSTAT does this

| > (setf a "foo")
| "foo"
| > (intern a)
| |foo|

| Why the bars around foo?

Actually this happens for all Common Lisps, not just Xlisp, it is a
"feature" not a bug.  The internal storage mode for lisp is uppercase
letters, however the reader converts them by default.  Thus

> 'foo
FOO

That is, you talk quietly at Lisp and it shouts back.

However, this conversion is done by read, not by the intern function.
Thus:

> (intern "FOO")
FOO
> (intern "foo")
|foo|

As the default specifications for print is to print readably, it
prints the lower case symbol name within the `|' which suppress the
automatic capitolization.

Thus 
> (symbol-name 'FOO) 
"FOO"
> (symbol-name '|foo|)
"foo"

The solution to your problem is probably to coerce the name into
upper-case before interning.  Something like:
(intern (force-string-into-upper-case-function name))
where force-string-into-upper-case-function is whatever the
appropriate function is.  I don't have a XLISP manual handy.

			Russell Almond			   
U. Washington, 			    	Statistical Sciences, Inc.
Statistics, GN-22	           	1700 Westlake Ave., N Suite 500
Seattle, WA  98195			Seattle, WA  98109
(206) 685-7428   			(206) 283-8802
almond@stat.washington.edu 		almond@statsci.com

Spring Sunshine,
The Tree-of-Cliques in Hyperbloom.
Eschew Affine Constraints!
	(future ancient Japaneese Haiku)

From owner-SL-news  Mon Aug 13 22:31:13 1992
Resent-Date: 13 Aug 1992 15:31:13 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199208130735.AA00974@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Aug 1992 02:35:07 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Thu, 13 Aug 1992 02:35:05 -0500
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GNIMFYN99C9JDH01@vx.cis.umn.edu>; Thu, 13 Aug 1992 02:37:36 CDT
Received: by NUSVM (Mailer R2.03B) id 0532; Thu, 13 Aug 92 15:34:30 SST
Date: 13 Aug 1992 15:31:13 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: MY LISP QUESTION
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GNIMFYN99E9JDH01@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

Thanks for all the replys to my lisp question about how to turn a string
into a variable.  There were two general ways suggested, the most elegant being
 
(intern (string-upcase "foo"))
The string-upcase converst "foo" into "FOO" (which is needed since all
variables are internally stored in uppercase, as i learned from the net
replys) and the intern does the work of converting "FOO" into the variable
FOO (which, confusingly, prints as foo).
  Thanks again...

From owner-SL-news  Mon Aug 13 22:36:16 1992
Resent-Date: 13 Aug 1992 15:36:16 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199208130746.AA01012@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Aug 1992 02:46:56 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Thu, 13 Aug 1992 02:46:54 -0500
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GNIMUMIPHS9JDH01@vx.cis.umn.edu>; Thu, 13 Aug 1992 02:49:25 CDT
Received: by NUSVM (Mailer R2.03B) id 0619; Thu, 13 Aug 92 15:45:51 SST
Date: 13 Aug 1992 15:36:16 +0700 (SST)
From: ECSFWY@NUSVM.BITNET
Subject: LISP REFERENCE
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GNIMUMIPHU9JDH01@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: ECSFWY@NUSVM.BITNET

I think it would be wonderful to have
1) a quick reference card
2) a complete listing of functions added by tierney
3) a complete guide along the lines of the xlisp guide (which i've never seen)
 
There is a document that contains a listing of functions added by Tierney,
which I use frequently.  It is the precursor to Tierney's book, entitled
XLISP-STAT: A Statistical Environment Based on the XLISP Language" from
Univ. Minn Sch of Stat (Technical Report Number 528) July 1988.  It has two
parts.  The first part is the same as the tutorial chapter in Luke's book.
The second part is a listing of (some) of the functions added by Luke,
categorized by the role of the function (Arithmetic and Logical Functions;
Statistical Functions; Plotting Functions; Object Methods; and Array Functions)
I regularly xerox the listing portion for my Lisp-Stat classes.
Unfortunately, it is not a complete listing, but it is better than nothing.
I've always wondered why it wasn't included as an appendix to Luke's book
(Luke, are you listening?).

From owner-SL-news  Mon Aug 13 03:37:00 1992
Resent-Date: 13 Aug 92 09:37:00 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199208131438.AA01565@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Aug 1992 09:38:34 -0500
Message-Id: <199208131438.AA01558@umnstat.stat.umn.edu>
Received: from orion (orion.depaul.edu) by umnstat.stat.umn.edu; Thu, 13 Aug 1992 09:38:30 -0500
Date: 13 Aug 92 09:37:00 CST
From: "Adam Gehr" <FINAKG@orion.depaul.edu>
Subject: lisp-stat handbook
To: "stat-lisp-news" <stat-lisp-news@umnstat>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Adam Gehr" <FINAKG@orion.depaul.edu>

 The document "Xlisp-Stat: A statistical environment...." referred to
 in a previous message on this list  is available for ftp from the
 same address at UMN as Xlisp-Stat it must be untarred and run thru
 LATEX, however (and if you want the pictures printed on a Postscript
printer).
   Adam Gehr
   Professor of Finance
   DePaul University


From owner-SL-news  Thu Aug 13 07:28:09 1992
Resent-Date: Thu, 13 Aug 92 11:28:09 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199208131557.AA01740@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Aug 1992 10:57:11 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Thu, 13 Aug 1992 10:57:07 -0500
Received: from uranus.stat.fsu.edu by stat.fsu.edu (4.1/25-eef)
	id AA03162; Thu, 13 Aug 92 11:26:46 EDT
Message-Id: <9208131526.AA03162@stat.fsu.edu>
To: stat-lisp-news@umnstat
Subject: Re: Quick reference guide.
Date: Thu, 13 Aug 92 11:28:09 -0400
From: naras@stat.fsu.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: naras@stat.fsu.edu

Ok, I will work on one. But don't expect it very soon, since I have other
projects going.

I would welcome suggestions and ideas from anyone. For starters, I plan to
find the Xlisp guide and add stuff to it. Since I have not yet seen it,
I don't know how big it is. I will also use the tech report by Tierney as a
starting point. 

If you mail me stuff, use the Subject line "Quick reference Guide", so that
I can file it away automatically.

The quick reference guide, I would most favor is something like the one
that Vromans has created for Perl. But I am willing to consider others.

Cheers,

- - ---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From deleeuw@laplace.sscnet.ucla.edu  Thu Aug 13 03:13:09 1992
Received: from sscnet.ucla.edu (weber.sscnet.ucla.edu) by umnstat.stat.umn.edu; Thu, 13 Aug 1992 12:14:19 -0500
Received: from laplace.sscnet.ucla.edu by sscnet.ucla.edu (4.1/ssc-02/26)
	id AA28178; Thu, 13 Aug 92 10:13:15 PDT
Received: by laplace.sscnet.ucla.edu (4.1/SMI-4.1)
	id AA22482; Thu, 13 Aug 92 10:13:09 PDT
Date: Thu, 13 Aug 92 10:13:09 PDT
From: deleeuw@laplace.sscnet.ucla.edu (Jan Deleeuw)
Message-Id: <9208131713.AA22482@laplace.sscnet.ucla.edu>
To: SL-news-list@umnstat


Various people have enquired about the xlisp reference guide. It is
                    XLISP 2.0 LANGUAGE REFERENCE
                                 by
                          Tim I Mikkelsen
It is dated December, 1989. There are 325 pages, each page is one
xlisp command, with syntax, description, examples (!), common lisp
compatibilities, whether it is a built-in (i.e. in C) or an
add-on (i.e. in LISP and loaded at run-time). It is undescribably
useful. There are quite a few XLISP functions in there that are
not in Luke's book. Now where does one get it ? I append the
output of archie -s xlispref, which makes it possible for you
to select your favourite ftp-site and your favourite compression
format.

Host athene.uni-paderborn.de

    Location: /pcsoft/msdos/xlisp
           FILE -rw-r--r--     200487  Dec 15 1991  xlispref.arc

Host capella.eetech.mcgill.ca

    Location: /wuarchive/mirrors/msdos/xlisp
           FILE -rw-rw-r--     200487  Feb  4 1990  xlispref.arc

Host cs.dal.ca

    Location: /pub/comp.archives
      DIRECTORY drwxrwxrwx        512  Jul  8 1990  xlispref

Host cs.orst.edu

    Location: /pub/xlisp
           FILE -rw-r--r--     412955  Jan  5 1990  xlispref.txt

Host cs.ubc.ca

    Location: /mirror2/x-contrib/winterp/papers
           FILE -rw-r--r--     134945  Oct 29 1990  XlispRef.doc.Z

Host export.lcs.mit.edu

    Location: /contrib/winterp/papers
           FILE -rw-rw-rw-     134945  Oct 30 1990  XlispRef.doc.Z
    Location: /pub/R5untarred/contrib/Motif/clients/winterp/doc
           FILE -r--r--r--     414134  Oct  6 1991  XlispRef.doc

Host faui43.informatik.uni-erlangen.de

    Location: /mounts/cyber/iwiftp/public/pc/language/xlisp
           FILE -rw-rw-r--     200487  Feb  4 1990  xlispref.arc

Host ftp.uu.net

    Location: /pub/window-sys/X/contrib/winterp/papers
           FILE -rw-r--r--     134945  Oct 29 1990  XlispRef.doc.Z
    Location: /systems/ibmpc/msdos/simtel20/xlisp
           FILE -rw-r--r--     200487  Feb  3 1990  xlispref.arc

Host gatekeeper.dec.com

    Location: /.1/X11/contrib/winterp/papers
           FILE -r--r--r--     134945  Oct 29 1990  XlispRef.doc.Z

Host gdr.bath.ac.uk

    Location: /simtel-cdrom/msdos/xlisp
           FILE -r-xr-xr-x     200487  Feb  4 1990  xlispref.arc

Host geocub.greco-prog.fr

    Location: /pub/X11R5/contrib-R5/contrib/Motif/clients/winterp/doc
           FILE -rwxr-xr-x     414134  Nov 15 1991  XlispRef.doc

Host ipc1.rrzn.uni-hannover.de

    Location: /pub/unix/windows/X11R5/contrib/Motif/clients/winterp/doc
           FILE -r--r--r--     414134  Oct  6 1991  XlispRef.doc

Host isfs.kuis.kyoto-u.ac.jp

    Location: /mirrors/simtel20.msdos/xlisp
           FILE -rw-rw-r--     200487  Feb  4 1990  xlispref.arc

Host mcsun.eu.net

    Location: /windows/X/R4.contrib/winterp/papers
           FILE -rw-r--r--     134945  Sep 24 1991  XlispRef.doc.Z

Host nic.switch.ch

    Location: /mirror/msdos/xlisp
           FILE -rw-rw-r--     200487  Feb  4 1990  xlispref.arc

Host nz20.rz.uni-karlsruhe.de

    Location: /pub/msdos/xlisp
           FILE -rw-r--r--     200576  Mar 25 17:10  xlispref.arc

Host plaza.aarnet.edu.au

    Location: /X11/contrib/winterp/papers
           FILE -rw-rw-r--     134945  Dec 12 1990  XlispRef.doc.Z
    Location: /micros/pc/oak/xlisp
           FILE -rw-r--r--     200487  Feb  4 1990  xlispref.arc
    Location: /micros/pc/simtel-20/xlisp
           FILE -rw-r--r--     200487  Feb  4 1990  xlispref.arc

Host rigel.acs.oakland.edu

    Location: /pub/msdos/xlisp
           FILE -rw-r--r--     200487  Feb  4 1990  xlispref.arc

Host rs3.hrz.th-darmstadt.de

    Location: /pub/X11/contrib/winterp/papers
           FILE -rw-rw-r--     134945  Oct 30 1990  XlispRef.doc.Z

Host src.doc.ic.ac.uk

    Location: /graphics/X11/contrib/winterp
           FILE -r--r--r--     134945  Jun 18 1990  XlispRef.txt.Z
    Location: /graphics/X11/contrib/winterp/papers
           FILE -r--r--r--     134945  Nov  3 1990  XlispRef.doc.Z
    Location: /ibmpc/wsmr-simtel20.army.mil/xlisp
           FILE -r--r--r--     200487  Feb  4 1990  xlispref.arc
    Location: /usenet/comp.archives
      DIRECTORY drwxr-xr-x        512  May  3 1991  xlispref

Host sun0.urz.uni-heidelberg.de

    Location: /pub/msdos/simtel/xlisp
           FILE -rw-rw-r--     200487  Feb  4 1990  xlispref.arc

Host swdsrv.edvz.univie.ac.at

    Location: /pc/dos/xlisp
           FILE -rw-r--r--     200487  Feb  4 1990  xlispref.arc
    Location: /x11/contrib/winterp/papers
           FILE -rw-r--r--     134945  Oct 30 1990  XlispRef.doc.Z

Host theta.iis.u-tokyo.ac.jp

    Location: /contrib/winterp/papers
           FILE -rw-r--r--     134945  Oct 31 1990  XlispRef.doc.Z

Host toklab.ics.osaka-u.ac.jp

    Location: /UUNET/tape2/X/contrib/winterp
           FILE -rw-r--r--     134945  Jun  8 1990  XlispRef.txt.Z
    Location: /X/X.V11R5/contrib/Motif/clients/winterp/doc
           FILE -r--r--r--     414134  Oct  6 1991  XlispRef.doc
    Location: /X/contrib/EXPO/winterp/papers
           FILE -rw-rw-r--     134945  Jan 20 00:00  XlispRef.doc.Z

Host walhalla.germany.eu.net

    Location: /pub/X11/contrib/winterp/papers
           FILE -rw-r--r--     134945  Oct 30 1990  XlispRef.doc.Z

Host world.std.com

    Location: /src/Simtel20/msdos/xlisp
           FILE -r-xr-xr-x     200487  Feb  4 1990  xlispref.arc

Host wuarchive.wustl.edu

    Location: /mirrors/msdos/xlisp
           FILE -rw-rw-r--     200487  Feb  4 1990  xlispref.arc

--- Jan
Jan de Leeuw; Dept Math UCLA; phone (213)-825-9550; fax (213)-206-6673      
mail: 405 Hilgard Ave, Los Angeles, CA 90024-1555
UUCP:...!{rutgers,ucbvax,sdcrdcf,{hao!cepu}}!ucla-cs!math.ucla.edu!deleeuw
INTERNET: deleeuw@laplace.sscnet.ucla.edu         BITNET: deleeuw@uclasscf

From owner-SL-news  Thu Aug 13 12:23:17 1992
Resent-Date: Thu, 13 Aug 92 16:23:17 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199208132135.AA02559@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Aug 1992 16:35:16 -0500
Received: from fredrik.oit.itd.umich.edu by umnstat.stat.umn.edu; Thu, 13 Aug 1992 16:35:13 -0500
Received: by fredrik.oit.itd.umich.edu (NX5.67a/NX3.0M)
	id AA05013; Thu, 13 Aug 92 16:23:17 -0400
Date: Thu, 13 Aug 92 16:23:17 -0400
From: Gregor Purdy <gregor@fredrik.oit.itd.umich.edu>
Message-Id: <9208132023.AA05013@fredrik.oit.itd.umich.edu>
Received: by NeXT Mailer (1.82)
To: stat-lisp-news@umnstat
Subject: REMOVE ME
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Gregor Purdy <gregor@fredrik.oit.itd.umich.edu>

Friends--

I tried to send this to stat-lisp-request, but it bounced so:

Please remove me from the list.

Thanks!

--Gregor

From owner-SL-news  Fri Aug 21 15:34:42 1992
Resent-Date: Fri, 21 Aug 92 13:34:42 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <199208211135.AA16702@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 21 Aug 1992 06:35:11 -0500
Received: from ns3.hq.eso.org by umnstat.stat.umn.edu; Fri, 21 Aug 1992 06:35:06 -0500
Message-Id: <9208211134.AA15001@ns3.hq.eso.org>
Received: from localhost.hq.eso.org by ns3.hq.eso.org (4.1/ eso-1.1)
	id AA15001; Fri, 21 Aug 92 13:34:43 +0200
To: stat-lisp-news@umnstat
Subject: linking the C code 
Date: Fri, 21 Aug 92 13:34:42 +0200
From: hmadorf@eso.org
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: hmadorf@eso.org

Hi,

a few days ago I tried to install the Common Lisp version of
LISP-STAT on my Mac under MCL 2.0f. I am in need of the C code
object files/library which I cannot produce on my own since I have 
no MPW. Is there anyone out there who could provide me with a 
StuffIt archive containing the library of compiled C-code (it's 
called clib.a, I believe)?

Thanks a lot.

Hans-Martin Adorf
ST-ECF/ESO
Garching, FRG

From owner-SL-news  Fri Sep 11 23:47:54 1992
Resent-Date: Sat, 12 Sep 92 06:47:54 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <199209121347.AA03024@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 12 Sep 1992 08:47:59 -0500
Received: from enet-gw.pa.dec.com by umnstat.stat.umn.edu; Sat, 12 Sep 1992 08:47:56 -0500
Received: by enet-gw.pa.dec.com; id AA07649; Sat, 12 Sep 92 06:46:20 -0700
Message-Id: <9209121346.AA07649@enet-gw.pa.dec.com>
Received: from bigq.enet; by decwrl.enet; Sat, 12 Sep 92 06:47:54 PDT
Date: Sat, 12 Sep 92 06:47:54 PDT
From: Just DoE it <ramirez@bigq.enet.dec.com>
To: lisp-stat-news@umnstat
Apparently-To: lisp-stat-news@umnstat
Subject: XLISP & TIME SERIES
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Just DoE it <ramirez@bigq.enet.dec.com>

Hi!!

I was wondering if there are any macros available for the MAC version of
XLISP-STAT to do time series analysis. If so, how can I get a copy?

Thanks,

Jose G. Ramirez

From rlenth@stat.uiowa.edu  Thu Sep 17 06:38:43 1992
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Thu, 17 Sep 1992 11:39:41 -0500
Received: from bird.stat.uiowa.edu by ns-mx.uiowa.edu (5.64.jnf/920408)
	  on Thu, 17 Sep 92 11:39:38 -0500 id AA20727 with SMTP 
Received: from nuthatch.stat.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA19432; Thu, 17 Sep 92 11:38:43 CDT
Date: Thu, 17 Sep 92 11:38:43 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9209171638.AA19432@ stat.uiowa.edu>
To: SL-news-list@umnstat
Subject: dynamic loading on HP 9000?

Does anybody know what to put in foreign.h for an HP9000 unix workstation,
so that dynamic loading in XLISP-STAT is possible?

------------------------------------------------    --------------,
Russ Lenth                 rlenth@stat.uiowa.edu    \              )
Department of Statistics                             |   I O W A   \_ 
  and Actuarial Science    Tel: (319)335-0814        \               \
The University of Iowa     FAX: (319)335-3017         \          *  _/
Iowa City, IA 52242  USA   CW:  *= * ====== *=*        | Iowa City /
------------------------------------------------        ----------v

        "Everything happens for a reason,
         but that doesn't mean that there's a point."
                                        --- Sue Grafton


From rlenth@stat.uiowa.edu  Fri Sep 18 06:30:00 1992
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Fri, 18 Sep 1992 11:30:58 -0500
Received: from bird.stat.uiowa.edu by ns-mx.uiowa.edu (5.64.jnf/920408)
	  on Fri, 18 Sep 92 11:30:55 -0500 id AA11395 with SMTP 
Received: from nuthatch.stat.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA20563; Fri, 18 Sep 92 11:30:00 CDT
Date: Fri, 18 Sep 92 11:30:00 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9209181630.AA20563@ stat.uiowa.edu>
To: SL-news-list@umnstat
Subject: Re:  dynamic loading on HP 705 (not 9000)

What I REALLY wanted to know about yesterday was the [[HP 705]] workstation, 
not the HP 9000 (is there such a thing?)  I don't even know what we have
here...  Anyway, here's my (revised) question again:

Does anybody know what to put in foreign.h for an HP 705 unix workstation,
so that dynamic loading in XLISP-STAT is possible?

------------------------------------------------    --------------,
Russ Lenth                 rlenth@stat.uiowa.edu    \              )
Department of Statistics                             |   I O W A   \_ 
  and Actuarial Science    Tel: (319)335-0814        \               \
The University of Iowa     FAX: (319)335-3017         \          *  _/
Iowa City, IA 52242  USA   CW:  *= * ====== *=*        | Iowa City /
------------------------------------------------        ----------v

        "Everything happens for a reason,
         but that doesn't mean that there's a point."
                                        --- Sue Grafton


From mayer@hplnpm.hpl.hp.com  Fri Sep 18 09:20:04 1992
Received: from hplms2.hpl.hp.com by umnstat.stat.umn.edu; Fri, 18 Sep 1992 18:20:43 -0500
Received: from hplnpm.hpl.hp.com by hplms2.hpl.hp.com with SMTP
	(16.5/15.5+IOS 3.20) id AA25822; Fri, 18 Sep 92 16:20:40 -0700
Received: from localhost by hplnpm.hpl.hp.com with SMTP
	(15.11.1.3/15.5+IOS 3.14) id AA21916; Fri, 18 Sep 92 16:20:05 pdt
To: SL-news-list@umnstat
Subject: Re:  dynamic loading on HP 705 (not 9000)
Organization: Hewlett-Packard Labs, Media Technology Lab, Palo Alto, CA.
X-Mailer: mh6.7
Date: Fri, 18 Sep 92 16:20:04 -0700
Message-Id: <21914.716858404@hplnpm.hpl.hp.com>
From: "Niels P. Mayer" <mayer@hplnpm.hpl.hp.com>


First, let me say that I'm not speaking for HP, officially or unoficially.
Second, the best place to ask questions about such unix/hpux arcana would
be the usenet newsgroup comp.sys.hp....

> What I REALLY wanted to know about yesterday was the [[HP 705]] workstation,
> not the HP 9000 (is there such a thing?)  I don't even know what we have
> here...  Anyway, here's my (revised) question again:

The "705" is an HP9000. Here's what all those number mean:

  HP9000, series 3xx -- Motorola 68040 modular personal workstations.
			(HPUX OS)
  HP9000, series 4xx -- Motorola 68040 desktop workstations.
			(HPUX or Apollo Domain OS)
  HP9000, series 6xx -- PA RISC 1.1 servers.
			(HPUX OS)
  HP9000, series 7xx -- PA-RISC 1.0 and 1.1 personal workstations.
			(HPUX OS)
  HP9000, series 8xx -- PA-RISC 1.0 and 1.1 multiuser minicomputers.
			(HPUX OS)

> Does anybody know what to put in foreign.h for an HP 705 unix workstation,
> so that dynamic loading in XLISP-STAT is possible?

I don't know much about xlisp-stat; however, if foreign.h is a header for,
(say) Sun's dynamic loader, "putting" something in foreign.h won't help you
at all....

As far as I know, there are no current standards for dynamic loading, or if
there are any, neither HP nor Sun are following them....

If anyone implements dynamic loading for XLISP that is portable across HP,
Sun, DEC, IBM, SGI, etc. platforms, let me know -- I'm interested in
introducing such functionality into my WINTERP package (XLISP based
OSF/Motif application development environment). I know there's a gnu
dynamic loader package, but (1) I'm not sure if it's portable; (2) I can't
make use of any copylefted software.

The following manual pages may give some hints on implementing programmatic
dynamic loading on HPUX 8.0.

------------------------------------------------------------------------------

 dld.sl(5)                                                         dld.sl(5)

 NAME
      dld.sl - dynamic loader

 DESCRIPTION
      The /lib/dld.sl program is the dynamic loader.  It is invoked
      automatically at startup time by /lib/crt0.o in programs that use
      shared libraries.  The dynamic loader is, itself, a shared library,
      although it defines no symbols for use by user programs.

    Shared Libraries
      Shared libraries are executable files created with the -b option to
      ld(1).  They contain position-independent code (PIC) that can be
      mapped anywhere in the address space of a process and executed with a
      minimum of relocation.  PIC can use PC-relative addressing modes
      and/or linkage tables.  It can be generated with the +z option to the
      compilers.  See the Programming on HP-UX manual for details on writing
      PIC in assembly language.

    Incomplete Executables
      When creating an executable (a.out) file from object files and
      libraries, the linker does not copy text from the shared library into
      the output file.  Instead, the dynamic loader maps the library into
      the address space of the process at run time.  The linker binds all
      program references to shared library routines to entries in a linkage
      table, and relies on the dynamic loader to fill in the linkage table
      entries once the libraries have been mapped.  This linkage table
      serves as a jump table.  Shared-library data items referenced by the
      program are copied into the program executable file so that the data
      references can be resolved statically.  The resultant program is
      called an incomplete executable.

    Loading
      At run time, the dynamic loader attaches to the process all shared
      libraries that were linked with the program.  The text segment of a
      library is shared among all processes that use it.  The data and bss
      segments are shared on a page-by-page basis.  When a process writes to
      a data or bss page, a modified copy of that page is made for the
      process.

    Binding
      The dynamic loader also resolves symbolic references between the
      executable and libraries.  By default, function calls are trapped via
      the linkage table and bound on first reference.  References to
      variables and other absolute address references cannot be trapped.
      They are bound on the first resolution of a function call that could

 Hewlett-Packard Company            - 1 -    HP-UX Release 8.0: January 1991

 dld.sl(5)                                                         dld.sl(5)

      potentially reference the object.

      If the -B immediate option to ld(1) is used, the loader will bind all
      necessary references at startup time.  This dramatically increases the
      startup cost of a program, but ensures that no more binding operations
      will be required later.  Thus, better real time response may result,
      and the risk of a later abort due to unresolved externals is
      eliminated.

    Version Control
      Since code from a shared library is mapped at run time from a separate
      shared library file, modifications to a shared library may alter the
      behavior of existing executables.  In some cases, this may cause
      programs to operate incorrectly.  A means of version control is
      provided to solve this problem.

      Whenever an incompatible change is made to a library interface, both
      versions of the affected module or modules are included in the
      library.  A mark indicating the date (month/year) the change was made
      is recorded in the new module via the pragma HP_SHLIB_VERSION in C, or
      the compiler directive SHLIB_VERSION in Fortran and Pascal.  This date
      applies to all symbols defined within the module.  A high water mark
      giving the date of the latest incompatible change is recorded in the
      shared library, and the high water mark for each library linked with
      the program is recorded in the incomplete executable file.

      At run time, the dynamic loader checks the high water mark of each
      library and loads the library only if it is at least as new as the
      high water mark recorded at link time.  When binding symbolic
      references, the loader will choose the latest version of a symbol that
      is not later than the high water mark recorded at link time.  These
      two checks help ensure that the version of each library interface used
      at run time is the same as was expected at link time.

    Explicit Loading And Binding
      The duties of the dynamic loader as described above are all performed
      automatically, although they can be controlled somewhat by appropriate
      options to ld(1).  The dynamic loader can also be accessed
      programmatically.  The reserved variable __dld_loc, which is defined
      in /lib/crt0.o, points to a jump table within the dynamic loader.  The
      routines described under shl_load(3X) provide a portable interface
      that allows the programmer to explicitly attach a shared library to
      the process at run time, to calculate the addresses of symbols defined
      within shared libraries, and to detach the library when done.

 Hewlett-Packard Company            - 2 -    HP-UX Release 8.0: January 1991

 dld.sl(5)                                                         dld.sl(5)

 DIAGNOSTICS
      If the dynamic loader is not present, or cannot be invoked by the
      process for any reason, an error message is printed to stderr, and the
      process terminates with a non-zero exit code.

      Normally, the operation of the dynamic loader is visible only when
      there is a fatal error of some kind.  In these cases, an error message
      is printed to stderr, and a SIGABRT signal is sent to the process.
      These errors fall into two basic categories: errors in attaching a
      shared library, and errors in binding symbols.  The former can occur
      only at process startup time but the latter can occur at any time
      during process execution unless the -B immediate option is used with
      ld(1).  Possible errors that can occur while attaching a shared
      library include library not present, library not executable, library
      corrupt, high water mark too low, or insufficient room in the address
      space for the library.  Possible errors that can occur while binding
      symbols include symbol not found (unresolved external), or library
      corrupt.

      When using the explicit load facilities of the dynamic loader, these
      types of errors are not considered fatal.  Consult shl_load(3X) for
      information on error handling.

 WARNINGS
      The startup cost of the dynamic loader is significant, even with
      deferred binding, and can cause severe performance degradation in
      processes dominated by startup costs (such as simple ``hello world''
      programs).  In addition, position-independent code is usually slower
      than normal code, so performance of a program may be adversely
      affected by the presence of PIC in shared libraries.  However, the
      advantages of decreased disk space usage and decreased memory
      requirements for executables should outweigh these concerns in most
      cases.

      There are rare cases where the behavior of a program differs when
      using shared libraries as opposed to archive libraries.  This happens
      primarily when relying on undocumented and unsupported features of the
      compilers, assembler, and linker.  See the Programming on HP-UX manual
      for more details.

      The library developer is entirely responsible for version control and
      must be thorough in identifying incompatible changes to library
      interfaces.  Otherwise, programs may malfunction unexpectedly with
      later versions of the library.  There is little an application user
      can do if version control is not handled properly by the library

 Hewlett-Packard Company            - 3 -    HP-UX Release 8.0: January 1991

 dld.sl(5)                                                         dld.sl(5)

      developer.  The application developer can usually resolve problems by
      modifying the source code to use the new interfaces then recompiling
      and relinking against the new libraries.

 DEPENDENCIES
      Series 300/400
           The Series 300/400 Pascal compiler does not generate PIC, so true
           shared libraries cannot be created from Pascal source.

           Dynamic load libraries that are not completely shared can be
           created from modules that do not contain position-independent
           code, as long as the +s option to the assembler is used.  No such
           option is required from Pascal.  The resultant library text
           segment contains absolute addresses that must be relocated at run
           time.  This causes each text page with code that is not position
           independent to be modified at run time for each process, which
           effectively defeats sharing.  The text segments of such libraries
           cannot be made read only.

      Series 700/800
           Copy-on-write of shared library data and bss pages is not
           supported; a separate copy of a page is made for each process
           that references (that is, either writes or reads) it.

           The Series 700/800 dynamic loader is conservative about deciding
           when data references should be bound.  All such references within
           a shared library are bound the first time any routine within the
           library is called.

 AUTHOR
      The /lib/dld.sl program was developed by HP.

 SEE ALSO
      as_300(1), as_800(1), cc(1), f77(1), ld(1), pc(1), crt0(3),
      shl_load(3X), a.out_300(4), a.out_800(4).

      Programming on HP-UX manual.

 Hewlett-Packard Company            - 4 -    HP-UX Release 8.0: January 1991

------------------------------------------------------------------------------


 shl_load(3X)                                                   shl_load(3X)

 NAME
      shl_load, shl_findsym, shl_unload, shl_get - explicit load of shared
      libraries

 SYNOPSIS
      #include <dl.h>

      shl_t shl_load(const char *path, int flags, long address);

      int shl_findsym(
           shl_t *handle,
           const char *sym,
           short type,
           long *value
      );

      int shl_unload(shl_t handle);

      int shl_get(int index, struct shl_descriptor *desc);

 DESCRIPTION
      These routines can be used to programmatically load and unload shared
      libraries, and to obtain information about the libraries (such as the
      addresses of symbols defined within them).  The routines themselves
      are accessed by specifying -ldld on the cc(1) or ld(1) command line.
      In addition, the -E option to ld(1) can be used to ensure that all
      symbols defined in the program are available to the loaded libraries.

      Shared libraries are created by compiling source files with the +z
      (position-independent code) option, and linking the resultant object
      files with the -b (create shared library) option.

      shl_load    attaches the shared library named by path to the process.
                  The library is mapped at the specified address.  If
                  address is 0L, the system chooses an appropriate address
                  for the library.  This is the recommended practice because
                  the system has the most complete knowledge of the address
                  space (see DEPENDENCIES).  The flags argument should be
                  one of the constants BIND_IMMEDIATE or BIND_DEFERRED to
                  specify the preferred binding time for entry points in the
                  library.  If successful, shl_load returns a handle which
                  can be used in subsequent calls to shl_findsym or
                  shl_unload; otherwise NULL is returned.

 Hewlett-Packard Company            - 1 -    HP-UX Release 8.0: January 1991

 shl_load(3X)                                                   shl_load(3X)

      shl_findsym obtains the address of an exported symbol sym from a
                  shared library.  The handle argument should be a pointer
                  to the handle of a loaded shared library that was returned
                  from a previous call to shl_load or shl_get.  If a pointer
                  to NULL is passed for this argument, shl_findsym searches
                  all currently loaded shared libraries to find the symbol,
                  and returns the handle of the library where the symbol was
                  found in the variable pointed to by handle; otherwise,
                  shl_findsym searches only the specified shared library.
                  The special handle PROG_HANDLE can be used to refer to the
                  program itself, so that symbols exported from the program
                  can also be accessed dynamically.  The type argument
                  specifies the expected type for the symbol, and should be
                  one of the defined constants TYPE_PROCEDURE, TYPE_DATA, or
                  TYPE_UNDEFINED.  The latter value suppresses type
                  checking.  The address of the symbol is returned in the
                  variable pointed to by value.  If a shared library
                  contains multiple versions of the requested symbol, the
                  latest version is returned.  This routine returns 0 if
                  successful; otherwise -1 is returned.

      shl_unload  can be used to detach a shared library from the process.
                  The handle argument should be the handle returned from a
                  previous call to shl_load.  shl_unload returns 0 if
                  successful; otherwise -1 is returned.  All explicitly
                  loaded libraries are detached automatically on process
                  termination.

      shl_get     returns information about currently loaded libraries,
                  including those loaded implicitly at startup time.  The
                  index argument is the ordinal number of the shared library
                  in the process.  For libraries that were loaded implicitly
                  at startup time, the index is the ordinal number of the
                  library as it appeared on the linker command line.  For
                  libraries that were loaded explicitly via shl_load, the
                  index values are assigned consecutively, beginning
                  immediately above the last implicitly loaded library.  A
                  subsequent call to shl_unload decrements the index values
                  of all libraries having an index greater than the unloaded
                  library.  The index value 0 refers to the executable
                  program, and -1 refers to the dynamic loader.  The desc
                  argument is used to return a pointer to a statically
                  allocated buffer containing a descriptor for the shared
                  library.  The format of the descriptor is implementation
                  dependent; to examine its format, look at the contents of

 Hewlett-Packard Company            - 2 -    HP-UX Release 8.0: January 1991

 shl_load(3X)                                                   shl_load(3X)

                  file /usr/include/dl.h.  Information common to all
                  implementations includes the library handle, pathname, and
                  the range of addresses the library occupies.  The buffer
                  for the descriptor used by shl_get is static; the contents
                  should be copied elsewhere before a subsequent call to the
                  routine.  The routine returns 0 normally, or -1 if an
                  invalid index is given.

 DIAGNOSTICS
      If a library cannot be loaded, shl_load returns NULL and sets errno.
      The other functions all return -1 on error, and also set errno.

 ERRORS
      Possible values for errno include:

           [ENOEXEC]      The specified file is not a shared library, or a
                          format error was detected.

           [ENOSYM]       Some symbol required by the shared library could
                          not be found.

           [EINVAL]       The specified handle or index is not valid or an
                          attempt was made to load a library at an invalid
                          address.

           [ENOMEM]       There is insufficient room in the address space to
                          load the library.

           [ENOENT]       The specified library does not exist.

           [EACCES]       Read or execute permission is denied for the
                          specified library.

 WARNINGS
      If a call to shl_load with BIND_IMMEDIATE or a call to shl_findsym
      fails with ENOSYM, the process may be left in an inconsistent state.
      Some symbol resolutions may have occurred before the failure, and
      these may be invalid.

      shl_unload detaches the library from the process and frees the memory
      allocated for it, but does not break existing symbolic linkages into
      the library.  In this respect, an unloaded shared library is much like
      a block of memory deallocated via free(3C).

 Hewlett-Packard Company            - 3 -    HP-UX Release 8.0: January 1991

 shl_load(3X)                                                   shl_load(3X)

      Some implementations may not, by default, export all symbols defined
      by a program (instead exporting only those symbols that are imported
      by a shared library seen at link time).  Therefore the -E option to
      ld(1) should be used when using these routines if the loaded libraries
      are to refer to program symbols.

 DEPENDENCIES
      Series 700/800:
           The only value for the address field is 0L.  Any other value is
           treated as if it had been specified as 0L.

 AUTHOR
     shl_load(3X) and related functions were developed by HP.

 SEE ALSO
      ld(1), dld.sl(5).

 Hewlett-Packard Company            - 4 -    HP-UX Release 8.0: January 1991

------------------------------------------------------------------------------

-------------------------------------------------------------------------------
            Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com
                     Collaborative Multimedia Project
                       Hewlett-Packard Laboratories
                              Palo Alto, CA.
                                   *

From luke  Sat Sep 19 03:40:56 1992
Resent-Date: Sat, 19 Sep 92 8:40:56 CDT
Resent-Message-Id: <199209191342.AA27101@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 19 Sep 1992 08:42:23 -0500
From: "Luke Tierney" <luke>
Message-Id: <199209191340.AA27085@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 19 Sep 1992 08:40:58 -0500
Subject: Re:  dynamic loading on HP 705 (not 9000)
To: mayer@hplnpm.hpl.hp.com (Niels P. Mayer), stat-lisp-news@umnstat
Date: Sat, 19 Sep 92 8:40:56 CDT
In-Reply-To: <21914.716858404@hplnpm.hpl.hp.com>; from "Niels P. Mayer" at Sep 18, 92 4:20 pm
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

I have not added dynamic loading for the HP risk series since I don't
have acces to one and can't do the necessary testing. I don't think it
should be too hard, since ld on these machines seems to support the -A
option and the a.out file format seems fairly reasonable. It should
only be necessary to write an appropriate foreign.h file that defines
appropriate macros to read in an a.out file and find its symbols.

A little more background (my terminology probably isn't quite right,
but this is the general idea):

Dynamic loading requires two steps:

	resolving undefined references in the code you are loading by either
	references into the running executable or by linking in library
	modules

	reading in the code and recording the names and locations of the
	entry points of the routines in the loaded code.

xlispstat's UNIX dynamic loading is based on the approach used by
dyn.load2 for S and by akcl for some architectures. It assumes that ld
understands the -A flag; this means that ld takes care of the first
step. This flag is supported on most bsd-derived systems. The second
step is carried out by the code in xsdynload.c. There are two flavors,
one for bsd-style a.out formats and one for COFF. within these two
there are still minor variations that are usually described in the
a.out man age or the a.out.h header file. Ideally it should be
possible to take care of these minor differences by redefining macros
in foreign.h, but it may also be necessary to make changes to
xsdynload.c.

Based on the fasl code in akcl, it looks to me as if HP's OS for their
RISC machines does have an ld that understands -A, and that the a.out
format is bsd-like. The code in akcl should help if someone who has
one of these boxes wants to work on this. kcl does have a slightly
easier job since it doesn't have to dig out the symbols.

luke

	

From owner-SL-news  Sat Sep 19 08:20:36 1992
Resent-Date: Sat, 19 Sep 1992 12:20:36 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199209191625.AA03309@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 19 Sep 1992 11:25:35 -0500
Received: from PO2.ANDREW.CMU.EDU by umnstat.stat.umn.edu; Sat, 19 Sep 1992 11:21:50 -0500
Received: by po2.andrew.cmu.edu (5.54/3.15) id <AA01218> for stat-lisp-news@umnstat.stat.umn.edu; Sat, 19 Sep 92 12:21:41 EDT
Received: via switchmail; Sat, 19 Sep 1992 12:21:37 -0400 (EDT)
Received: from pcs5.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/service/mailqs/q000/QF.EeipBN200UhW40jEIX>;
          Sat, 19 Sep 1992 12:20:41 -0400 (EDT)
Received: from pcs5.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/usr12/ls2o/.Outgoing/QF.keipBJ200UhW820owp>;
          Sat, 19 Sep 1992 12:20:39 -0400 (EDT)
Received: from mms.0.1.873.MacMail.0.9.CUILIB.3.45.SNAP.NOT.LINKED.pcs5.andrew.cmu.edu.pmax.ul4
          via MS.5.6.pcs5.andrew.cmu.edu.pmax_ul4;
          Sat, 19 Sep 1992 12:20:36 -0400 (EDT)
Message-Id: <EeipBIy00UhW020ooj@andrew.cmu.edu>
Date: Sat, 19 Sep 1992 12:20:36 -0400 (EDT)
From: Lael Schooler <ls2o+@andrew.cmu.edu>
To: stat-lisp-news@umnstat
Subject: How do I get LISP Stat 
Cc: 
In-Reply-To: <9209171638.AA19432@ stat.uiowa.edu>
References: <9209171638.AA19432@ stat.uiowa.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Lael Schooler <ls2o+@andrew.cmu.edu>

   

Is LISP-Stat public domain software?
If so could someone tell me how to get it?

thanks,

Lael Schooler
ls2o@andrew.cmu.edu

From owner-SL-news  Sun Sep 27 08:12:18 1992
Resent-Date: Sun, 27 Sep 92 13:12:18 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199209271812.AA20815@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 27 Sep 1992 13:12:22 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Sun, 27 Sep 1992 13:12:20 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA21383; Sun, 27 Sep 92 13:12:19 -0500
Message-Id: <9209271812.AA21383@sci234e.mrs.umn.edu>
To: stat-lisp-news@umnstat
Subject: A question regarding dynamic loading.
Date: Sun, 27 Sep 92 13:12:18 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>


An object-prototype has its own data and methods and for a particular method, 
which we shall call recompute, it calls a C function. The method recompute 
is called quite frequently and everytime it is called, a large number of 
parameters have to be passed. I wish to avoid this. The parameters that are 
passed are constant for any one instance of the object. And yes, the 
recompute method is unacceptably slow in Xlisp.

One option seems to be "call-lfun" but as Tierney's book indicates, 
there is very little documentation for it.

I can certainly think of a few programming tricks to do this, but
I have portability in mind. Which means that calloc'ing some
area and playing with the pointers is probably not the solution.

I would be interested in some suggestions and advice as to where to look
for documentation. Meanwhile, I am looking at the source of Xlisp-Stat.

Thanks in advance.

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From statsci!almond@uunet.UU.NET  Mon Sep 28 06:01:49 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Mon, 28 Sep 1992 15:50:09 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA27910; Mon, 28 Sep 92 16:49:58 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 164704.22964; Mon, 28 Sep 1992 16:47:04 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.26)
	id AA14876; Mon, 28 Sep 92 12:59:46 PDT
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA19449; Mon, 28 Sep 92 13:01:49 PDT
Date: Mon, 28 Sep 92 13:01:49 PDT
From: statsci!almond@uunet.UU.NET (Russell G. Almond)
Message-Id: <9209282001.AA19449@bass.statsci.com>
To: naras@sci234e.mrs.umn.edu
Cc: SL-news-list@umnstat
In-Reply-To: "B. Narasimhan"'s message of Sun, 27 Sep 92 13:12:18 -0500 <199209271812.AA20815@umnstat.stat.umn.edu>
Subject: A question regarding dynamic loading.



In the random number generators I wrote for BELIEF (in Common Lisp,
not Xlisp, avialable through ftp.stat.washington.edu).  I use a table
of calloced caches.  I was using some fast rng routines I found in
Applied Statistics, and they all precomputed a number of constants
once and used them a number of times in the rn generation.  On the C
side I maintained a global table of these caches.  The setup routine
would pass an integer index into this table back to the Lisp side.
Then when I wanted to call a random number, I would pass the index
back to the C side which would return a real number.  This results in
a relatively clean interface between the C and Lisp, passing only a
limited number of reals and integers, no pointers!  This has proved to
be easily ported accross an number of different Common Lisps (calling
C code is a common extension, but not necessarily portable).  The
source code is available with the BELIEF distribution, you may want to
look at it.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu







From naras@sci234e.mrs.umn.edu  Wed Sep 30 03:26:04 1992
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Wed, 30 Sep 1992 08:26:07 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA25823; Wed, 30 Sep 92 08:26:05 -0500
Message-Id: <9209301326.AA25823@sci234e.mrs.umn.edu>
To: statsci!almond@uunet.uu.net (Russell G. Almond)
Cc: SL-news-list@umnstat
Subject: Re: A question regarding dynamic loading. 
In-Reply-To: Your message of "Mon, 28 Sep 92 13:01:49 PDT."
             <9209282001.AA19449@bass.statsci.com> 
Date: Wed, 30 Sep 92 08:26:04 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>

Thanks for your response. The technique that you have mentioned
is something I considered but found too unwieldy. The crucial problem is
that the code I have written may create make multiple instances of the 
object-prototype. Inorder that the C
program deal with the data corresponding to the particular instance
of the object, I would have to determine which object it came from
and do all the processing. This is not impossible (an index passed
by the method will do) but it is inelegant especially when quite a
few instances of the object-prototype are floating around. 

I wasn't too clear about this in my post. I have now understood
the data structures used in Xlisp and I have found a way to directly access
the data structures.  

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From naras@sci234e.mrs.umn.edu  Wed Sep 30 03:36:10 1992
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Wed, 30 Sep 1992 08:36:12 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA25871; Wed, 30 Sep 92 08:36:11 -0500
Message-Id: <9209301336.AA25871@sci234e.mrs.umn.edu>
To: statsci!almond@uunet.uu.net (Russell G. Almond)
Cc: SL-news-list@umnstat
Subject: SUMMARY (was: A question regarding dynamic loading.)
In-Reply-To: Your message of "Mon, 28 Sep 92 13:01:49 PDT."
             <9209282001.AA19449@bass.statsci.com> 
Date: Wed, 30 Sep 92 08:36:10 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>

I got quite a few responses regarding my question, all quite useful.
Here is a concatenated file of all the responses. Thanks all.


From: Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>

The following should work:
(1) split up the work into two functions: one that gets the data and one
that does the computation;
(2) store all needed data on the LISP heap, with pointers in the C code
(type LVAL) declared static but global to the module containing the two
functions;
(3) now, when the object is initialized (receives the :new message), call
the data function with all the data values; the function just copies the
pointers and protects them from gc;
(4) finally, in the compute method you can simply refer to the data through
the pointers.

Have fun!

Pat

-----
From: luke@umnstat.stat.umn.edu

Here is an annotated example of a function you can use with call-lfun.
Keep in mind that this is highly dependent on the current
implementation, which may (or may not) change in the near future.

luke

--------------------------------(calltest.c)-----------------------------------
#include "xlisp.h" /* put the source on the include path to get this */

LVAL myfun()  /* no arguments - pick them up with the stack reading macros */
{
  LVAL args, f, x, y, result;
  double val;

  f = xlgetarg();    /* no argument checking */
  x = xlgaflonum();  /* checks type; signals error if it is not right */
  y = xlgafixnum();  /* again checks arguments */
  xllastarg();       /* This signals an error if there are more       */
                     /* arguments. The macro call moreargs() tests    */
                     /* for more arguments and can be used to make    */
                     /* a function with optional arguments.           */

  xlsave1(args);     /* protect from garbage collect - MUST be mathed */
                     /* by a pop at the end or the stack gets         */
                     /* confused and you bomb.                        */

  /* build up the arguments list - do this once for multiple calls    */
  /* and use rplaca to fill it with new arguments                     */
  args = consa(y);   /* same as cons(y, NIL);                         */
  args = cons(x, args);

  /* apply the function */
  result = xlapply(pushargs(f, args));

  /* check and examine result */
  if (! fixp(result) && ! floatp(result)) xlfail("bad result type");
  val = (floatp(result)) ? getflonum(result) : getflonum(result);

  /* pop the saved entry -- I forgot this in the previous version!! */
  xlpop();

  /* repackage and return the result as a FLONUM */
  return(cvflonum((FLOTYPE) val));
}

------
Subject: A question regarding dynamic loading.



In the random number generators I wrote for BELIEF (in Common Lisp,
not Xlisp, avialable through ftp.stat.washington.edu).  I use a table
of calloced caches.  I was using some fast rng routines I found in
Applied Statistics, and they all precomputed a number of constants
once and used them a number of times in the rn generation.  On the C
side I maintained a global table of these caches.  The setup routine
would pass an integer index into this table back to the Lisp side.
Then when I wanted to call a random number, I would pass the index
back to the C side which would return a real number.  This results in
a relatively clean interface between the C and Lisp, passing only a
limited number of reals and integers, no pointers!  This has proved to
be easily ported accross an number of different Common Lisps (calling
C code is a common extension, but not necessarily portable).  The
source code is available with the BELIEF distribution, you may want to
look at it.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu

-----

From: mmeehan@eesof.com (Mike Meehan)
Message-Id: <9209282134.AA01934@sauron>
To: naras@sci234e.mrs.umn.edu
Subject: Re: A question regarding dynamic loading.

Dear Narasimhan,


I think the solution to your problem may require more explanation 
of what your trying to do...I've found that if you wanna go fast in 
Xlisp-Stat, you will need to study/modify the xlstat code rather than
using the c interface... 

One solution to your problem might be to provide your own module 
with your own special purpose kernel functions so that you can 
access the elements of the object from within those functions (see 
the attachment below for instruction on how to add functions). 

I found that for fast vector processing, I had to modify the xlstat
code directly...Once you get into the code you will realize that you
have access to the best of both worlds - lisp and c, because you can
call lisp-like c functions to process the stack and data etc...I do wish
it were a bit easier to specify and implement new basic data types though.

The down side to the "modify the code approach" is that when new versions
come out, you need to reimplement your changes...Or make the changes specific
to the xlstat upgrade...Just keep accurate change log...

Hope this helps and good luck.


ttfn, MM

-----------------------------------------------------------------------------------
Forwarded: Fri, 16 Nov 90 16:08:00 PST
Forwarded: winterp@hplnpm.hpl.hp.com
Path: hplabsz!hplabs!ucbvax!bloom-beacon!mintaka!ogicse!milton!milton.u.washington.edu!jsp
From: jsp@glia.u.washington.edu (Jeff Prothero)
Newsgroups: comp.lang.lisp.x
Subject: xlisp 2.1/winterp internals (26K long)
Message-ID: <JSP.90Nov15145624@glia.u.washington.edu>
Date: 15 Nov 90 22:56:23 GMT
Sender: news@milton.u.washington.edu
Distribution: comp
Organization: Biological Structure, U of Wash, Seattle
Lines: 689

I've just finished reading the xlisp 2.1 source code for the first
time.  The tutorial and reference material included with the winterp
distribution are well done, but I would have liked an overview of the
interpreter internals.  Here's a first cut at such a document.
Comments welcome...

---------------------------cut here-------------------------------

90Nov13 jsp@milton.u.washington.edu       Public Domain.

                   +---------------------+
                   | xlisp 2.1 internals |
                   +---------------------+


 Who should read this?
 ---------------------

Anyone poking through the C implementation of xlisp for the first
time.  This is intended to provide a rough roadmap of the global xlisp
structures and algorithms.  If you just want to write lisp code in
xlisp, you don't need to read this file -- go read xlisp.doc,
XlispOOP.doc, and XlispRef.doc, in about that order.  If you want to
tinker with the xlisp implementation code, you should *still* read
those three before reading this.  The following isn't intended to be
exhaustively precise -- that's what the source code is for!  It is
intended only to give you sufficient orientation give you a fighting
chance to understand the code the first time through, instead of the
third time.

At the bottom of the file you'll find an example of how to add new
primitive functions to xlisp.



 What is an LVAL?
 ----------------

An "LVAL" is the C type for a generic pointer to an xlisp
garbage-collectable something.  (Cons cell, object, string, closure,
symbol, vector, whatever.)  Virtually every variable in the
interpreter is an LVAL.  Cons cells contain two LVAL slots,
symbols contains four LVAL slots, etc.



 What is the obarry?
 ------------------

The obarray is the xlisp symbol table.  More precisely, it is is a
hashtable mapping ascii strings (symbol names) to symbols.  ("obarray"
is a misnomer, since it contains only xlisp SYMBOLs, and in particular
contains no xlisp OBJECTs.)  It is used when converting lisp
expressions from text to internal form. Since it is a root for the
garbage collector, it also serves to distinguish permanent
global-variable symbols from other symbols -- you can permanently
protect a symbol from the garbage collector by entering it into the
obarray.  This is called "interning" the symbol.  The obarray is
called "obarray" in C and "*OBARRAY*" in xlisp.



 The Interpreter Stacks
 ----------------------

xlisp uses two stacks, an "evaluation stack" and an "argument stack".
Both are roots for the garbage collector.  The evaluation stack is
largely private to the interpreter and protects internal values from
garbage collection, while the argument stack holds the conventional
user-visible stackframes.


The evaluation stack is an EDEPTH-long array of "LVAL" allocated by
xldmem.c:xlminit().  It grows zeroward.

xlstkbase points to the zero-near end of the evaluation stack.

xlstktop points to the zero-far end of the evaluation stack: the
occupied part of the stack lies between xlstack and xlstktop.  NOTE
that xlstktop is *NOT* the top of the stack in the conventional sense
of indicating the most recent entry on the stack: xlstktop is a static
bounds pointer which never changes once the stack is allocated.

xlstack starts at the zero-far end of the evaluation stack.  *xlstack
is the most recent LVAL on the stack.  The garbage collector MARKs
everything reachable from the evaluation stack (among other things),
so we frequently push things on this stack while C code is
manipulating them. (Via xlsave(), xlprotect(), xlsave1(), xlprot1().)


The argument stack is an ADEPTH-long array of "LVAL".  It also grows
zeroward.  The evaluator pushes arguments on the argument stack at the
start of a function call (form evaluation).  Built-in functions
usually eat them directly off the stack.  For user-lisp functions
xleval.c:evfun() pops them off the stack and binds them to the
appropriate symbols before beginning execution of the function body
proper.

xlargstkbase is the zero-near end of argument stack.

xlargstktop is the zero-far end of argument stack.  Like xlstktop,
xlargstktop is a static bounds pointer which never changes after
the stack is allocated.

*xlsp ("sp"=="stack pointer") is the most recent item on the argument stack.

xlfp ("fp"=="frame pointer") is the base of the current stackframe.



  What is a context?
  ------------------

An xlisp "context" is something like a checkpoint, recording a
particular point buried in the execution history so that we can
abort/return back to it.  Contexts are used to implement call/return,
catch/throw, signals, gotos, and breaks.  xlcontext points to the
chain of active contexts, the top one being the second-newest active
context.  (The newest -- that is, current -- active context is
implemented by the variables xlstack xlenv xlfenv xldenv xlcontext
xlargv xlargc xlfp xlsp.)  Context records are written by
xljump.c:xlbegin() and read by xljump.c:xljump().  Context records are
C structures on the C program stack; They are not in the dynamic
memory pool or on the lisp execution or argument stacks.



  What is an environment?
  -----------------------

An environment is basically a store of symbol-value pairs, used to
resolve variable references by the lisp program.  xlisp maintains
three environments, in the global variables xlenv, xlfenv and xldenv.

xlenv and xlfenf are conceptually a single environment, although they
are implemented separately.  They are linked-list stacks which are
pushed when we enter a function and popped when we exit it.  We also
switch xlenv+xlfenf environments entirely when we begin executing a
new closure (user-fn written in lisp).

The xlenv environment is the most heavily used environment.  It is
used to resolve everyday data references to local variables.  It
consists of a list of frames (and objects).  Each frame is a list of
sym-val pairs.  In the case of an object, we check all the instance
and class variables of the object, then do the same for its
superclass, until we run out of superclasses.

The xlfenv environment is maintained strictly parallel to xlenv, but
is used to find function values instead of variable values.  The
separation may be partly for lookup speed and partly for historical
reasons.

When we send a message, we set xlenv to the value it had when the
message CLOSURE was built, then push on (obj msg-class), where
msg-class is the [super]class defining the method.  (We also set
xlfenv to the value xlfenv had when the method was built.)  This makes
the object instance variables part of the environment, and saves the
information needed to correctly resolve references to class variables,
and to implement SEND-SUPER.

The xldenv environment tracks the old values of global variables which
we have changed but intend to restore later to their original values,
particularly when we bind and unbind s_evalhook and s_applyhook
(*EVALHOOK* and *APPLYHOOK*).  (This is mostly to support the debug
facilities.)  It is a simple list of sym-val pairs,
treated as a stack.

These environments are manipulated in C via the xlisp.h macros
xlframe(e), xlbind(s,v), xlfbind(s,v), xlpbind(s,v,e), xldbind(s,v),
xlunbind(e).



  How are xlisp entities stored and identified?
  ---------------------------------------------

Conceptually, xlisp manages memory as a single array of fixed-size
objects.  Keeping all objects the same size simplifies memory
management enormously, since any object can be allocated anywhere, and
complex compacting schemes aren't needed.  Every LVAL pointer points
somewhere in this array.  Every xlisp object has the basic format
(xldmem.h:typdef struct node)

 struct node {
     char n_type;
     char n_flags;
     LVAL car;
     LVAL cdr;
 }

where n_type is one of:

 FREE     A node on the freelist.
 SUBR     A function implemented in C. (Needs evalutated arguments.)
 FSUBR    A special function implemented in C. (Needs unevaluated arguments).
 CONS     A regular lisp cons cell.
 SYMBOL   A symbol.
 FIXNUM   An integer.
 FLONUM   A floating-point number.
 STRING   A string.
 OBJECT   Any object, including class objects.
 STREAM   An input or output file.
 VECTOR	  A variable-size array of LVALs.
 CLOSURE  Result of DEFUN or LAMBDA -- a function written in lisp.
 CHAR	  An ascii character.
 USTREAM  An internal stream.
 STRUCT	  A structure.

Messages may be sent only to nodes with n_type == OBJECT.

Obviously, several of the above types won't fit in a fixed-size
two-slot node.  The escape is to have them malloc() some memory
and have one of the slots point to it -- VECTOR is the archetype.  For
example, see xldmem.c:newvector().  To some extent, this malloc()
hack simply exports the memory- fragmentation problem to the C
malloc()/free() routines.  However, it helps keep xlisp simple, and it
has the happy side-effect of unpinning the body of the vector, so that
vectors can easily be expanded and contracted.

The garbage collector has special-case code for each of the above node
types, so it can find all LVAL slots and recycle any malloc()ed ram
when a node is garbage-collected.

Xlisp pre-allocates nodes for all ascii characters, and for small
integers.  These nodes are never garbage-collected.

As a practical matter, allocating all nodes in a single array is not
very sensible.  Instead, nodes are allocated as needed, in segments of
one or two thousand nodes, and the segments linked by a pointer chain
rooted at xldmem.c:segs.



  How are vectors implemented?
  ----------------------------

An xlisp vector is a generic array of LVAL slots.  Vectors are also
the canonical illustration of xlisp's escape mechanism for node types
which need more than two LVAL slots (the maximum possible in the
fixed-size nodes in the dynamic memory pool).  The node CAR/CDR slots
for a vector hold a size field plus a pointer to a malloc()ed ram
chunk, which is automatically free()ed when the vector is
garbage-collected.

xldmem.h defines macros for reading and writing vector fields and
slots: getsize(), getelement() and setelement().  It also defines
macros for accessing each of the other types of xlisp nodes.



  How are strings implemented?
  ---------------------------- 

Strings work much like vectors: The node has a pointer to a malloc()ed
ram chunk which is automatically free()ed when the string gets
garbage-collected.



 How are symbols implemented?
 ----------------------------

A symbol is a generic user-visible lisp variable, with separate slots
for print name, value, function, and property list.  Any or all of
these slots (including name) may be NIL.  You create a symbol in C by
calling "xlmakesym(name)" or "xlenter(name)" (to make a symbol and
enter it in the obarray). You create a symbol in xlisp by using the
single-quote operator: "'name", or by calling "(gensym)", or
indirectly in various ways.  Most of the symbol-specific code in the
interpreter is in xlsym.c.

Physically, a symbol is implemented like a four-slot vector.

Random musing: Abstractly, the LISP symbols plus cons cells (etc)
constitute a single directed graph, and the symbols mark spots where
normal recursive evaluation should stop.  Normal lisp programming
practice is to have a symbol in every cycle in the graph, so that
recursive traversal can be done without MARK bits.



  How are closures implemented?
  -----------------------------

A closure, the return value from a lambda, is a regular coded-in-lisp
fn.  Physically, it it implemented like an eleven-slot vector, with the
node n_type field hacked to contain CLOSURE instead of VECTOR. The
vector slots contain:

 name   symbol -- 1st arg of DEFUN.  NIL for LAMBDA closures.
 type   (s_lambda or s_macro). Must be s_lambda to be executable.
 args   List of "required" formal arguments (as symbols)
 oargs  List of "optional" args, each like: (name (default specified-p))
 rest   Name of "&rest" formal arg, else NIL.
 kargs  keyword args, each like: ((':foo 'bar default specified-p))
 aargs  &aux vars, each like: (('arg default))
 body   actual code (as lisp list) for fn.
 env    value of xlenv when the closure was built.  NIL for macros.
 fenv   value of xlfend when the closure was built. NIL for macros.
 lambda The original formal args list in the DEFUN or LAMBDA.

The lambda field is for printout purposes.  The remaining fields store
a predigested version of the formal args list.  This is a limited form
of compilation: by processing the args list at closure-creation time,
we reduce the work needed during calls to the closure.



  How are objects implemented?
  ----------------------------

An object is implemented like a vector, with the size determined by
the number of instance variables.  The first slot in the vector points
to the class of the object; the remaining slots hold the instance
variables for the object.  An object needs enough slots to hold all
the instance variables defined by its class, *plus* all the instance
variables defined by all of its superclasses.



  How are classes implemented?
  ----------------------------

A class is a specific kind of object, hence has a class pointer plus
instance variables.  All classes have the following instance variables:

 MESSAGES   A list of (interned-symbol method-closure) pairs.
 IVARS	    Instance variable names: A list of interned symbols.
 CVARS      Class variable names:    A list of interned symbols.
 CVALS      Class variable values:   A vector of values.
 SUPERCLASS A pointer to the superclass.
 IVARCNT    Number of class instance variables, as a fixnum.
 IVARTOTAL  Total number of instance variables, as a fixnum.

IVARCNT is the count of the number of instance variables defined by
our class.  IVARTOTAL is the total number of instance variables in an
object of this class -- IVARCNT for this class plus the IVARCNTs from
all of our superclasses.




  How is the class hierarchy laid out?
  ------------------------------------

The fundamental objects are the OBJECT and CLASS class objects.  (Both
are instances of class CLASS, and since CLASSes are a particular kind
of OBJECT, both are also objects, with n_type==OBJECT.  Bear with me!)

OBJECT is the root of the class hierarchy: everything you can send a
message to is of type OBJECT.  (Vectors, chars, integers and so forth
stand outside the object hierarchy -- you can't send messages to them.
I'm not sure why Dave did it this way.) OBJECT defines the messages:

 :isnew -- Does nothing
 :class -- Returns contents of class-pointer slot.
 :show  -- Prints names of obj, obj->class and instance vars.

A CLASS is a specialized type of OBJECT (with instance variables like
MESSAGES which generic OBJECTs lack), class CLASS hence has class
OBJECT as its superclass.  The CLASS object defines the messages:

 :new	 -- Create new object with self.IVARTOTAL LVAR slots, plus
            one for the class pointer. Point class slot to self.
            Set new.n_type char to OBJECT.
 :isnew	 -- Fill in IVARS, CVARS, CVALS, SUPERCLASS, IVARCNT and
            IVARTOTAL, using parameters from :new call.  (The
            :isnew msg inherits the :new msg parameters because
            the  :isnew msg is generated automatically after
            each :new   msg, courtesy of a special hack in
            xlobj.c:sendmsg().)
 :answer -- Add a (msg closure) pair to self.MESSAGES.



Here's a figure to summarize the above, with a generic object thrown
in for good measure.  Note that all instances of CLASS will have a
SUPERCLASS pointer, but no normal object will.  Note also that the
messages known to an object are those which can be reached by
following exactly one Class Ptr and then zero or more Superclass Ptrs.
For example, the generic object can respond to :ISNEW, :CLASS and
:SHOW, but not to :NEW or :ANSWER.  (The functions implementing the
given messages are shown in parentheses.)

				    NIL
				     ^
				     |
				     |Superclass Ptr
				     |
			    Msg+--------+
 :isnew (xlobj.c:obisnew) <----|  class |Class Ptr
 :class (xlobj.c:obclass) <----| OBJECT |------------+
 :show	(xlobj.c:objshow) <----|        |            |
			       +--------+            |
       +---------+                ^  ^               |
       | generic |Class Ptr       |  |               |
       | object  |----------------+  |Superclass Ptr |
       +---------+		     |               |
			    Msg+--------+            |
 :isnew	(xlobj.c:clnew)	  <----| class  |Class Ptr   |
 :new	(xlobj.c:clisnew) <----| CLASS  |--------+   |
 :answer(xlobj.c:clanswer)<----|        |        |   |
			       +--------+        |   |
				  ^  ^           |   |
				  |  |           |   |
				  |  +-----------+   |
				  +------------------+


Thus, class CLASS inherits the :CLASS and :SHOW messages from class
OBJECT, overrides the default :ISNEW message, and provides new the
messages :NEW and :ANSWER.

New classes are created by (send CLASS :NEW ...) messages.  Their
Class Ptr will point to CLASS.  By default, they will have OBJECT as
their superclass, but this can be overridden by the second optional
argument to :NEW.

The above basic structure is set up by xlobj.c:xloinit().



  How do we look up the value of a variable?
  ------------------------------------------

When we're cruising along evaluating an expression and encounter a
symbol, the symbol might refer to a global variable, an instance
variable, or a class variable in any of our superclasses.  Figuring
out which means digging throught the environment.  The canonical place
this happens is in xleval.c:xleval(), which simply passes the buck to
xlsym.c:xlgetvalue(), which in turn passes the buck to
xlxsym.c:xlxgetvalue(), where the fun of scanning down xlenv begins.
The xlenv environment looks something like

	 Backbone    Environment frame contents
	 --------    --------------------------
xlenv --> frame      ((sym val) (sym val) (sym val) ... )
	  frame      ...
	  object     (obj msg-class)
	  frame      ...
	  object     ...
	  frame      ...
	  ...

The "frame" lines are due to everyday nested constructs like LET
expressions, while the "object" lines represent an object environment
entered via a message send.  xlxgetvalue scans the enviroment left to
right, and then top to bottom.  It scans down the regular environment
frames itself, and calls xlobj.c:xlobjgetvalue() to search the object
environment frames.

xlobjgetvalue() first searches for the symbol in the msg-class, then
in all the successive superclasses of msg-class.  In each class, it
first checks the list of instance-variable names in the IVARS slot,
then the list of class-variables name in the CVARS slot.

  

  How are function calls implemented?
  -----------------------------------

xleval.c contains the central expression-evaluation code.
xleval.c:xleval() is the standard top-level entrypoint.  The two
central functions are xleval.c:xlevform() and xleval.c:evfun().
xlevform() can evaluate four kinds of expression nodes:

SUBR: A normal primitive fn coded in C.  We call evpushargs() to
evaluate and push the arguments, then call the primitive.

FSUBR: A special primitive fn coded in C, which (like IF) wants its
arguments unevaluated.  We call pushargs() (instead of evpushargs())
and then the C fn.

CLOSURE: A preprocessed written-in-lisp fn from a DEFUN or LAMBDA.  We
call evpushargs() and then evfun().

CONS: We issue an error if it isn't a LAMBDA, otherwise we call
xleval.c:xlclose() to build a CLOSURE from the LAMBDA, and fall into
the CLOSURE code.

The common thread in all the above cases is that we call evpushargs()
or pushargs() to push all the arguments on the evaluation stack,
leaving the number and location of the arguments in the global
variables xlargc and xlargv.  The primitive C functions consume
their arguments directly from the argument stack.

xleval.c:evfun() evaluates a CLOSURE by:

(1) Switching xlenv and xlfenv to the values they had when
the CLOSURE was built. (These values are recorded in the CLOSURE.)

(2) Binding the arguments to the environment.  This involves scanning
through the section of the argument stack indicated by xlargc/xlargv,
using information from the CLOSURE to resolve keyword arguments
correctly and assign appropriate default values to optional arguments,
among other things.

(3) Evaluating the body of the function via xleval.c:xleval().

(4) Cleaning up and restoring the original environment.



  How are message-sends implemented?
  ----------------------------------

We scan the MESSAGES list in the CLASS object of the recipient,
looking for a (message-symbol method) pair that matches our message
symbol.  If necessary, we scan the MESSAGES lists of the recipients
superclasses too.  (xlobj.c:sendmsg().)  Once we find it, we basically
do a normal function evaluation. (xlobjl.c:evmethod().)  Two oddities:
We need to replace the message-symbol by the recipient on the argument
stack to make things look normal, and we need to push an 'object'
stack entry on the xlenv environment so we remember which class is
handling the message.



  How is garbage collection implemented?
  --------------------------------------

The dynamic memory pool managed by xlisp consists of a chain of memory
*segments* rooted at global C variable "segs".  Each segment contains
an array of "struct node"s plus a pointer to the next segment.  Each
node contains a n_type field and a MARK bit, which is zero except
during garbage collection.

Xlisp uses a simple, classical mark-and-sweep garbage collector.  When
it runs out of memory (fnodes==NIL), it does a recursive traversal
setting the MARK flag on all nodes reachable from the obarray, the
three environments xlenv/xlfenv/xldenv, and the evaluation and
argument stacks.  (A "switch" on the n_type field tells us how to find
all the LVAL slots in the node (plus associated storage), and a
pointer-reversal trick lets us avoid using too much stack space during
the traversal.)  sweep() then adds all un-MARKed LVALs to fnodes, and
clears the MARK bit on the remaining nodes.  If this fails to produce
enough free nodes, a new segment is malloc()ed.

The code to do this stuff is mostly in xldmem.c.



 How do I add a new primitive fn to xlisp?
 -----------------------------------------

Add a line to the end of xlftab.c:funtab[].  This table contains a
list of triples:

The first element of each triple is the function name as it will
appear to the programmer. Make it all upper case.

The second element is S (for SUBR) if (like most fns) your function
wants its arguments pre-evaluated, else F (for FSUBR).

The third element is the name of the C function to call.

Remember that your arguments arrive on the xlisp argument rather
than via the usual C parameter mechanism.

CAUTION: Try to keep your files separate from generic xlisp files, and
to minimize the number of changes you make in the generic xlisp files.
This way, you'll have an easier time re-installing your changes when
new versions of xlisp come out.  It's a good idea to put a marker
(like a comment with your initials) on each line you change or insert
in the generic xlisp fileset.  For example, if you are going to add
many primitive functions to your xlisp, use an #include file rather
than putting them all in xlftab.c.

CAUTION: Remember that you usually need to protect the LVAL variables
in your function from the garbage-collector.  It never hurts to do
this, and often produces obscure bugs if you dont.  Generic code for
a new primitive fn:

/* xlsamplefun - do useless stuff. */
/* Called like (samplefun '(a c b) 1 2.0) */
LVAL xlsamplefun()
{
    /* Variables to hold the arguments: */
    LVAL    list_arg, integer_arg, float_arg;

    /* Get the arguments, with appropriate errors */
    /* if any are of the wrong type.  Look in     */
    /* xlisp.h for macros to read other types of  */
    /* arguments.  Look in xlmath.c for examples  */
    /* of functions which can handle an argument  */
    /* which may be either int or float:          */
    list_arg    = xlgalist()  ;  /* "XLisp Get A LIST"   */
    integer_arg = xlgafixnum();  /* "XLisp Get A FIXNUM" */
    float_arg   = xlgaflonum();  /* "XLisp Get A FLONUM" */

    /* Issue an error message if there are any extra arguments: */
    xllastarg();



    /* Call a separate C function to do the actual  */
    /* work.  This way, the main function can       */
    /* be called from both xlisp code and C code.   */
    /* By convention, the name of the xlisp wrapper */
    /* starts with "xl", and the native C function  */
    /* has the same name minus the "xl" prefix:     */
    return samplefun( list_arg, integer_arg, float_arg );
}
LVAL samplefun( list_arg, integer_arg, float_arg )
LVAL            list_arg, integer_arg, float_arg;
{
    FIXTYPE val_of_integer_arg;
    FLOTYPE val_of_float_arg;

    /* Variables which will point to LISP objects: */
    LVAL result;

    LVAL list_ptr;
    LVAL float_ptr;
    LVAL int_ptr;

    /* Protect our internal pointers by */
    /* pushing them on the evaluation   */
    /* stack so the garbage collector   */
    /* can't recycle them in the middle */
    /* of the routine:                  */
    xlstkcheck(3);    /* Make sure following xlsave */
                      /* calls won't overrun stack. */
    xlsave(list_ptr); /* Use xlsave1() if you don't */
    xlsave(float_ptr);/* do an xlstkcheck().        */
    xlsave(int_ptr);

    /* Create an internal list structure, protected */
    /* against garbage collection until we exit fn: */
    list_ptr = cons(list_arg,list_arg);

    /* Get the actual values of our fixnum and flonum: */
    val_of_integer_arg = getfixnum( integer_arg );
    val_of_float_arg   = getflonum( float_arg   );


    /*******************************************/
    /* You can have any amount of intermediate */
    /* computations at this point in the fn... */
    /*******************************************/


    /* Make new numeric values to return: */
    integer_ptr = cvflonum( val_of_integer_arg * 3   );
    float_ptr   = cvflonum( val_of_float_arg   * 3.0 );

    /* Cons it all together to produce a return value: */
    result = cons(
        list_ptr,
        cons(
            integer_ptr,
            cons(
                float_ptr,
                NIL
            )
        )
    );

    /* Restore the stack, cancelling the xlsave()s: */
    xlpopn(3); /* Use xlpop() for a single argument.*/

    return result;
}




 Minor Observations:
 -------------------

xlapply, xlevform and sendmsg will issue an error if they encounter a
s_macro CLOSURE.  This is presumably because all macros are expanded
by xleval.c:xlclose when it builds a closure.

Neither xlapply nor sendmsg will handle FSUBRs.  This is presumably
a minor bug, left due to the difficulty of keeping arguments
unevaluated to that point. ?


 Minor Mysteries:
 ----------------

Why doesn't xlevform trace FSUBRs?  Is this a speed hack?

Why do both xlobj.c:xloinit() and xlobj.c:obsymvols() initialize the
"object" and "class" variables?
--

- Jeff   (S)


---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From rlenth@stat.uiowa.edu  Thu Oct  8 05:28:07 1992
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Thu, 8 Oct 1992 10:29:05 -0500
Received: from bird.stat.uiowa.edu by ns-mx.uiowa.edu (5.64.jnf/920408)
	  on Thu, 8 Oct 92 10:29:02 -0500 id AA02371 with SMTP 
Received: from nuthatch.stat.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA02373; Thu, 8 Oct 92 10:28:07 CDT
Date: Thu, 8 Oct 92 10:28:07 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9210081528.AA02373@ stat.uiowa.edu>
To: SL-news-list@umnstat
Subject: apply #'or

A Lisp-Stat question...

This is undoubtedly a dumb question, but it's got me stumped.
I need to test whether a condition is true for ANY element of
a list.  Here's what I tried:

	> (def a '(3 4 5))
	A
	> (< a 4)
	(T NIL NIL)

However, I want only a single value, (or T NIL NIL) = T, so I try...
 
	> (or (< a 4))
	(T NIL NIL)

This doesn't help since or is vectorized; so I try this:

	> (apply #'or (< a 4))
	error: bad function - #<FSubr-OR: #ed070>

I guess this is because  or  is a macro, not a function.

What can I do???

------------------------------------------------  --------------,
Russ Lenth                 rlenth@stat.uiowa.edu  \              )
Department of Statistics                           |             \_ "The Athens
  and Actuarial Science    Tel: (319)335-0814      \    Iowa City  \ of the
The University of Iowa     FAX: (319)335-3017       \          *  _/ Midwest"
Iowa City, IA 52242  USA   CW:  *= * ====== *=*      |           /
------------------------------------------------      ----------v

From luke  Thu Oct  8 05:49:19 1992
From: "Luke Tierney" <luke>
Message-Id: <199210081549.AA02680@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Oct 1992 10:49:20 -0500
Subject: Re: apply #'or
To: rlenth@stat.uiowa.edu (Russ Lenth)
Date: Thu, 8 Oct 92 10:49:19 CDT
Cc: SL-news-list@umnstat
In-Reply-To: <9210081528.AA02373@ stat.uiowa.edu>; from "Russ Lenth" at Oct 8, 92 10:28 am
X-Mailer: ELM [version 2.3 PL6]

> 
> A Lisp-Stat question...
> 
> This is undoubtedly a dumb question, but it's got me stumped.
> I need to test whether a condition is true for ANY element of
> a list.  Here's what I tried:
> 
> 	> (def a '(3 4 5))
> 	A
> 	> (< a 4)
> 	(T NIL NIL)
> 
> However, I want only a single value, (or T NIL NIL) = T, so I try...
>  
> 	> (or (< a 4))
> 	(T NIL NIL)
> 
> This doesn't help since or is vectorized; so I try this:
> 
> 	> (apply #'or (< a 4))
> 	error: bad function - #<FSubr-OR: #ed070>
> 
> I guess this is because  or  is a macro, not a function.
> 
> What can I do???

Actually, its "<" that is vectorized, not "or".

One approach is to use the functions "some" or "every" which apply a
predicate to a sequence until an element satisfying the predicate is
found (for some) or an element failing to satisfy the predicate is
found (for every). For your example,

> (def a '(3 4 5))
A
> (some #'(lambda (x) (< x 4)) a)
T
> (not (every #'null (< a 4)))
T

I'm sure there are lots of other approaches.

luke


From fed!m1phm02@uunet.UU.NET  Thu Oct  8 09:00:35 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Thu, 8 Oct 1992 12:13:16 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA24556; Thu, 8 Oct 92 13:13:13 -0400
Received: from fed.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 131259.25146; Thu, 8 Oct 1992 13:12:59 EDT
Received: from mfsss1.FRB.GOV by fed.FRB.GOV (4.1/SMI-4.0)
	id AA04829; Thu, 8 Oct 92 13:02:24 BST
Received: from localhost by mfsss1.FRB.GOV (4.1/SMI-4.0)
	id AA28775; Thu, 8 Oct 92 17:00:36 GMT
Message-Id: <9210081700.AA28775@mfsss1.FRB.GOV>
To: uunet!stat.uiowa.edu!rlenth@uunet.UU.NET (Russ Lenth)
Subject: Re: apply #'or 
Cc: uunet!umnstat.stat.umn.edu!SL-news-list@uunet.UU.NET
In-Reply-To: Your message of Thu, 08 Oct 92 10:28:07 -0500.
             <9210081528.AA02373@ stat.uiowa.edu> 
Date: Thu, 08 Oct 92 13:00:35 -0400
From: Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>

The problem stems from the fact that or is not a function; it is a special
form, meaning that it need not evaluate all of its arguments. In the case of
or, it stops evaluating once it reaches a true form in its argument list
(since the result is known as of that point to be true). It appears that the
implementation of apply in xlisp cannot take a special form as its first
argument, it has to be a function. My workaround was to define a function
that or-ed its arguments:

(defun or-fun (condn &rest more-cond)
  "args: (condn &rest more-cond)
Like the special form or but a regular function, so it evaluates all
arguments."
  (if condn condn
    (if (eq 0 (length more-cond)) nil
      (apply #'or-fun more-cond))))

It's not very efficient as it stands, unfortunately, but suffices for my
purposes. It would not be difficult to implement in C and compile into
xlisp, if you wanted.

(disclaimer: I haven't bothered to actually read the C code for apply to
verify my hypothesis regarding special forms, but the workaround works, so
it seems pretty plausible)

Pat

From deal@hobbes.kzoo.edu  Thu Oct  8 10:27:03 1992
Received: from hobbes.kzoo.edu by umnstat.stat.umn.edu; Thu, 8 Oct 1992 13:24:37 -0500
Received: by hobbes.kzoo.edu (5.57/Ultrix 4.0)
	id AA03943; Thu, 8 Oct 92 14:27:04 -0400
From: deal@hobbes.kzoo.edu (Ralph Deal)
Message-Id: <9210081827.AA03943@hobbes.kzoo.edu>
Subject: simple graphics in XLISP-stat
To: SL-news-list@umnstat
Date: Thu, 8 Oct 92 14:27:03 EDT
Cc: deal@hobbes.kzoo.edu (Ralph Deal)
X-Mailer: ELM [version 2.3 PL11]

I am using Luke Tierney's modification of XLISP 2.1 in a course for
non-majors using my text "Getting to Know LISP" where it works well
except that I would like to enable my students to do some LOGO-like
exercises in LISP.  I had written a LOGO interface for XLISP 2.0 that
let the user create a split interpreter/graphics screen and move a
"turtle" thereon using LOGO commands such as (fwd 35) and (right 45).
Unfortunately the primitives in XLISP 2.0 that my interface used are not
implemented in XLISP-stat 2.1.  Those primitives include move and line
commands that generate patterns of line on the screen.

I should appreciate any suggestions on how to adapt my LOGO interface to
XLISP-stat 2.1

	Thanks,  Ralph M. Deal
		Computer Science and Chemistry,
		Kalamazoo College, Kalamazoo, MI 49006
	DEAL@KZOO.EDU
-- 

From rlenth@stat.uiowa.edu  Thu Oct  8 08:55:43 1992
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Thu, 8 Oct 1992 13:56:41 -0500
Received: from bird.stat.uiowa.edu by ns-mx.uiowa.edu (5.64.jnf/920408)
	  on Thu, 8 Oct 92 13:56:38 -0500 id AA04426 with SMTP 
Received: from nuthatch.stat.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA02963; Thu, 8 Oct 92 13:55:43 CDT
Date: Thu, 8 Oct 92 13:55:43 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9210081855.AA02963@ stat.uiowa.edu>
To: SL-news-list@umnstat
Subject: Re:  apply #'or

I've gotten some nifty answers from several people, so I
thought I'd summarize them for the group.  I thank all
these helpful people.

From Sandy Weisberg, sandy@umnstat.stat.umn.edu...
    I don't know the "official" way of doing this, but here is a nifty solution.
    Suppose
    > (def a (iseq 10))
    A
    > a
    (0 1 2 3 4 5 6 7 8 9)
    > (position 12 a :test #'<=)
    NIL
    > (position 6 a :test #'<=)
    6
    What position does is return the index of the first element of the list that
    satisfies test (the default is probably eql, but I'm not sure), and if the
    test is never satisfied, it returns nil.  Pretty neat, huh?

From Luke Tierney, luke@umnstat.stat.umn.edu...
    Actually, its "<" that is vectorized, not "or".
    
    One approach is to use the functions "some" or "every" which apply a
    predicate to a sequence until an element satisfying the predicate is
    found (for some) or an element failing to satisfy the predicate is
    found (for every). For your example,
    
    > (def a '(3 4 5))
    A
    > (some #'(lambda (x) (< x 4)) a)
    T
    > (not (every #'null (< a 4)))
    T

From Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>
    The problem stems from the fact that or is not a function; it is a special
    form, meaning that it need not evaluate all of its arguments. In the case of
    or, it stops evaluating once it reaches a true form in its argument list
    (since the result is known as of that point to be true). It appears that the
    implementation of apply in xlisp cannot take a special form as its first
    argument, it has to be a function. My workaround was to define a function
    that or-ed its arguments:
    
    (defun or-fun (condn &rest more-cond)
      "args: (condn &rest more-cond)
    Like the special form or but a regular function, so it evaluates all
    arguments."
      (if condn condn
	(if (eq 0 (length more-cond)) nil
	  (apply #'or-fun more-cond))))
    
    It's not very efficient as it stands, unfortunately, but suffices for my
    purposes. It would not be difficult to implement in C and compile into
    xlisp, if you wanted.

From Peter Wollan, wollan@mayo.EDU...
    Here's another approach that I learned from Peggy Burnett, CS dept. MTU:
    
    > (def a (list 3 4 5))
    A
    > (eval (cons 'or (< a 4)))
    T
    >
    The "cons" builds a list by inserting the first argument into the next, and
    "eval" evaluates it.
    
===============================================================================    
    
After having gotten just Sandy's and Luke's answers, I came up with this:

    > (defun any (logexp) 
	"returns T if any element of logexp is T"
	(not (eql (position t logexp) nil)))
    ANY
    > (def a '(3 4 5))
    A
    > (any (< a 4))
    T
    > (any (< a 1))
    NIL

The above is based on Sandy's suggestion.
Originally, I had tried this, based on Luke's answer:

    > (defun anee (logexp)
	(not (every #'null logexp)))
    ANEE
    > (anee (< a 4))
    T
    > (anee (< a 1))
    NIL

This looks ok, until you give it an argument that is not a list!

    > (def a 5)
    A
    > (any (< a 4))
    NIL
    > (anee (< a 4))
    T

So, "anee" doesn't work right.  Well, now look at this:

    > (any (< a 6))
    error: bad arguments
    > (anee (< a 6))
    error: not a sequence - T

Well, folks, this is getting unpleasant.  Moving on to Peter's answer...

    > (defun anyway (logexp)
        (eval (cons 'or logexp)))
    ANYWAY
    > (anyway (< a 4))
    NIL
    > (anyway (< a 6))
    NIL
    > (def a '(3 4 5))
    A
    > (anyway (< a 4))
    T
    > (anyway (< a 1))
    NIL

I think this is a no-win situation!

------------------------------------------------  --------------,
Russ Lenth                 rlenth@stat.uiowa.edu  \              )
Department of Statistics                           |             \_ "The Athens
  and Actuarial Science    Tel: (319)335-0814      \    Iowa City  \ of the
The University of Iowa     FAX: (319)335-3017       \          *  _/ Midwest"
Iowa City, IA 52242  USA   CW:  *= * ====== *=*      |           /
------------------------------------------------      ----------v

From luke  Thu Oct  8 09:21:27 1992
Resent-Date: Thu, 8 Oct 92 14:21:27 CDT
Resent-Message-Id: <199210081921.AA03041@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Oct 1992 14:21:32 -0500
From: "Luke Tierney" <luke>
Message-Id: <199210081921.AA03033@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Oct 1992 14:21:28 -0500
Subject: Re:  apply #'or
To: rlenth@stat.uiowa.edu (Russ Lenth)
Date: Thu, 8 Oct 92 14:21:27 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9210081855.AA02963@ stat.uiowa.edu>; from "Russ Lenth" at Oct 8, 92 1:55 pm
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

...
> 
> This looks ok, until you give it an argument that is not a list!
> 
>     > (def a 5)
>     A
>     > (any (< a 4))
>     NIL
>     > (anee (< a 4))
>     T
> 

If you want something that will work with both compound and simple
data you could try defining your `any' function as

(defun any (x) (not (every #'null (combine x))))

The `combine' flattens recursive compound data, and makes simple data
into lists.

> (combine 1)
(1)
> (combine '(1 2 #(3 4 (5))))
(1 2 3 4 5)

Here is what this version of `any' does with your examples.

> (def a '(3 4 5))
A
> (any (< a 4))
T
> (any (< a 1))
NIL
> (def a 5)
A
> (any (< a 4))
NIL
> (any (< a 6))
T
>

luke

From fed!m1phm02@uunet.UU.NET  Thu Oct  8 12:24:58 1992
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Thu, 8 Oct 1992 21:53:42 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA07783; Thu, 8 Oct 92 17:23:24 -0400
Received: from fed.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 165124.10061; Thu, 8 Oct 1992 16:51:24 EDT
Received: from mfsss1.FRB.GOV by fed.FRB.GOV (4.1/SMI-4.0)
	id AA05800; Thu, 8 Oct 92 16:26:48 BST
Received: from localhost by mfsss1.FRB.GOV (4.1/SMI-4.0)
	id AA29363; Thu, 8 Oct 92 20:24:59 GMT
Message-Id: <9210082024.AA29363@mfsss1.FRB.GOV>
To: uunet!stat.uiowa.edu!rlenth@uunet.UU.NET (Russ Lenth)
Subject: Re: apply #'or 
Cc: SL-news-list@umnstat
In-Reply-To: Your message of Thu, 08 Oct 92 13:55:43 -0500.
             <9210081855.AA02963@ stat.uiowa.edu> 
Date: Thu, 08 Oct 92 16:24:58 -0400
From: Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>

You describe the failure of the function:
(defun anyway (logexp)
        (eval (cons 'or logexp)))
when logexp is not a list. The problem is that in this case the cons
function constructs a single cons cell, not a list. An alternative to Luke's
remedy (more straightforward but not able to move recursively down nested
lists):
(defun anyway (logexp)
        (eval (cons 'or (cond ((listp logexp) logexp)
                              ((atom logexp) (cons logexp nil))
                              (t nil)))))
Then:
> (setq a 5)
5
> (anyway (< a 6))
T
I should also note that your original idea of using (apply #'or would not
work in this case, even if or could be applied, since apply that its third
argument be a list.

Pat

From almond@uunet.uu.net  Thu Oct  8 13:33:41 1992
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Fri, 9 Oct 1992 00:10:41 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA20076; Fri, 9 Oct 92 01:10:11 -0400
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 010813.29490; Fri, 9 Oct 1992 01:08:13 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.30)
	id AA13273; Thu, 8 Oct 92 20:31:22 PDT
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA04129; Thu, 8 Oct 92 20:33:41 PDT
Date: Thu, 8 Oct 92 20:33:41 PDT
From: almond@uunet.uu.net (Russell G. Almond)
Message-Id: <9210090333.AA04129@bass.statsci.com>
To: SL-news-list@umnstat
In-Reply-To: Patrick McAllister's message of Thu, 08 Oct 92 13:00:35 -0400 <9210081700.AA28775@mfsss1.FRB.GOV>
Subject: apply #'or 


> The problem stems from the fact that or is not a function; it is a special
> form, meaning that it need not evaluate all of its arguments. In the case of
> or, it stops evaluating once it reaches a true form in its argument list
> (since the result is known as of that point to be true). It appears that the
> implementation of apply in xlisp cannot take a special form as its first
> argument, it has to be a function. My workaround was to define a function
> that or-ed its arguments:

Actually, apply (and similar functions such as map...) take function
closures as their arguments.  Function closures are produced with the
special form "function" (which is usually abbreviated #').  As you can
only take the closure of a function (of which a lambda expresion is
one type) macros and special forms don't work with apply (or mapcar).
This is a design feature of Common LISP, and will hold for any LISP
which is anywhere near the ANSI standard.  I believe this idea was
inhereted from Scheme, which is the other major contributor to XLISP.

I just read a very interesting article in the October 1992
_Communications of the ACM_.  It was called "Visualizing Evaluation in
Applicative Languages," by Touretzky and Lee.  It reviews a number of
LISP basics, such as how variable bindings and function calls works.
It is a very good introduction to those parts of LISP which are
very different from other programming langauges, like C and FORTRAN.
I recommend it highly if you are new to LISP, and even if you are not.


			Russell Almond			   
Statistical Sciences, Inc.		
1700 Westlake Ave., N Suite 500		
Seattle, WA  98109			
(206) 283-8802				
almond@statsci.com			


From owner-SL-news  Tue Oct 20 03:41:21 1992
Resent-Date: Tue, 20 Oct 92 10:41:21 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <199210191710.AA09662@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Oct 1992 12:10:44 -0500
Received: from sauron ([150.109.4.177]) by umnstat.stat.umn.edu; Mon, 19 Oct 1992 12:10:44 -0500
Received: by sauron (4.1/1.27)
	id AA11091; Tue, 20 Oct 92 10:41:21 PDT
Date: Tue, 20 Oct 92 10:41:21 PDT
From: mmeehan@eesof.com (Mike Meehan)
Message-Id: <9210201741.AA11091@sauron>
To: stat-lisp-news@umnstat
Subject: draw-dialog...
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: mmeehan@eesof.com (Mike Meehan)


Greetings lisp-staters...


Whats the best way to have dialog items in a graph-window? or, to the
same end, how can I draw in a dialog window?


I've tried to use multiple inheritance with:

(defproto plot-dialog () () (list dialog-proto graph-window-proto))

But I gather that because window-proto doesnt know how to draw, the
draw message ends-up in the bit bucket?


Helllllpppppp,

Mike Meehan, mmeehan@eesof.com

From owner-SL-news  Wed Oct 21 14:33:16 1992
Resent-Date: Wed, 21 Oct 92 13:33:16 +0100
Resent-From: owner-SL-news
Resent-Message-Id: <199210211231.AA11905@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 21 Oct 1992 07:31:14 -0500
Received: from faui45.informatik.uni-erlangen.de by umnstat.stat.umn.edu; Wed, 21 Oct 1992 07:31:02 -0500
Received: from faui78.informatik.uni-erlangen.de by uni-erlangen.de with SMTP;
	id AA14194 (5.65c-5/7.3l-FAU); Wed, 21 Oct 1992 13:30:55 +0100
Received: from faui78t.informatik.uni-erlangen.de by immd7.informatik.uni-erlangen.de  with SMTP (5.64+/7.3h-FAU)
	id AA14816; Wed, 21 Oct 92 13:29:44 +0100
From: Winfried Dulz <dulz@immd7.informatik.uni-erlangen.de>
Message-Id: <9210211229.AA14816@faui78.informatik.uni-erlangen.de>
Date: Wed, 21 Oct 92 13:33:16 +0100
To: stat-lisp-news@umnstat
Subject: Discrete event simulation using Xlispstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Winfried Dulz <dulz@immd7.informatik.uni-erlangen.de>


Is there any group (or person) who tried to build object-oriented simulations with hierarchical, modular models - in analogy to Bernard Zeiglers DEVS-Scheme framework - based on Xlispstat?

I am grateful for any hints.

Winfried Dulz,  dulz@informatik.uni-erlangen.de

From wollan@mayo.EDU  Wed Nov  4 08:26:37 1992
Received: from bru.mayo.edu by umnstat.stat.umn.edu; Wed, 4 Nov 1992 14:26:40 -0600
Received: from hsr (hsr.mayo.edu) by bru.mayo.EDU (4.1/SMI-4.0)
	id AA10821; Wed, 4 Nov 92 14:25:23 CST
Received: from butch by hsr (4.1/SMI-4.0)
	id AA28774; Wed, 4 Nov 92 14:26:37 CST
Date: Wed, 4 Nov 92 14:26:37 CST
From: wollan@mayo.EDU (Peter Wollan)
Message-Id: <9211042026.AA28774@hsr>
To: SL-news-list@umnstat
Subject: inverse of read-data-columns

  Something that I often want to do is write out some columns of numbers to a 
file, so that I can get something xlispstat won't compute--eg, eigenvalues.  
This "write-data-columns" function should put columns of numbers as columns, 
like the Minitab write command does.  There are even times when I want numbers
in columns on the screen... 
  I'd really like someone to present me with a finished function, but failing 
that I'd settle for hints as to how to go about it.

	Peter Wollan
	wollan@mayo.edu

From owner-SL-news  Wed Nov  4 08:53:38 1992
Resent-Date: Wed, 4 Nov 92 14:53:38 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199211042053.AA18360@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 4 Nov 1992 14:53:43 -0600
Received: from bru.mayo.edu by umnstat.stat.umn.edu; Wed, 4 Nov 1992 14:53:40 -0600
Received: from hsr (hsr.mayo.edu) by bru.mayo.EDU (4.1/SMI-4.0)
	id AA10937; Wed, 4 Nov 92 14:52:23 CST
Received: from butch by hsr (4.1/SMI-4.0)
	id AA29028; Wed, 4 Nov 92 14:53:38 CST
Date: Wed, 4 Nov 92 14:53:38 CST
From: wollan@mayo.EDU (Peter Wollan)
Message-Id: <9211042053.AA29028@hsr>
To: stat-lisp-news@umnstat
Subject: inverse of read-data-columns
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: wollan@mayo.EDU (Peter Wollan)

  Something that I often want to do is write out some columns of numbers to a 
file, so that I can get something xlispstat won't compute--eg, eigenvalues.  
This "write-data-columns" should put lists of numbers as parallel columns, 
like the Minitab write command does.  There are even times when I want numbers
in columns on the screen... 
  I'd really like someone to present me with a finished function, but failing 
that I'd settle for hints as to how to go about it.

	Peter Wollan
	wollan@mayo.edu


From luke  Wed Nov  4 09:07:48 1992
From: "Luke Tierney" <luke>
Message-Id: <199211042107.AA17550@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 4 Nov 1992 15:07:51 -0600
Subject: Re: inverse of read-data-columns
To: wollan@mayo.EDU (Peter Wollan)
Date: Wed, 4 Nov 92 15:07:48 CST
Cc: SL-news-list@umnstat
In-Reply-To: <9211042026.AA28774@hsr>; from "Peter Wollan" at Nov 4, 92 2:26 pm
X-Mailer: ELM [version 2.3 PL6]

> 
>   Something that I often want to do is write out some columns of numbers to a 
> file, so that I can get something xlispstat won't compute--eg, eigenvalues.  

(eigenvalues (bind-columns x y z))

should do that.

> This "write-data-columns" function should put columns of numbers as columns, 
> like the Minitab write command does.  There are even times when I want numbers
> in columns on the screen... 
>   I'd really like someone to present me with a finished function, but failing 
Here is a quick and dirty version that can probably be improved in many ways:

(defun write-data-columns (cols file)
  (with-open-file (f file :direction :output)
    (dolist (row (transpose cols))
      (dolist (i row)
        (format f "~s " i))
      (format f "~%"))))


luke

From owner-SL-news  Mon Nov  5 06:49:54 1992
Resent-Date: 05 Nov 1992 11:49:54 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199211051715.AA00299@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 5 Nov 1992 11:15:27 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Thu, 5 Nov 1992 11:15:24 -0600
Received: from UTCVM.BITNET (MAILER@UTCVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GQSGVSN6LS9S591F@vx.cis.umn.edu>; Thu, 5 Nov 1992 11:12:33 CDT
Received: from UTCVM (GHONG) by UTCVM.BITNET (Mailer R2.08) with BSMTP id 7093;
 Thu, 05 Nov 92 11:52:26 EST
Date: 05 Nov 1992 11:49:54 -0500 (EST)
From: Rich Faldowski <GHONG@UTCVM.BITNET>
Subject: Add name
To: stat-lisp-news@umnstat
Message-Id: <01GQSGWFH5NM9S591F@vx.cis.umn.edu>
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Rich Faldowski <GHONG@UTCVM.BITNET>

Please add my name to the stat-lisp-news mailing list.
If my old userid is still on the list, please remove it
(FALDOWRA@CTRVAX.VANDERBILT.EDU).

From owner-SL-news  Mon Nov  9 01:46:18 1992
Resent-Date: Mon, 9 Nov 92 09:46:18 -0800
Resent-From: owner-SL-news
Resent-Message-Id: <199211091812.AA10935@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 9 Nov 1992 12:12:49 -0600
Received: from piglet.mmwb.ucsf.EDU by umnstat.stat.umn.edu; Mon, 9 Nov 1992 12:12:45 -0600
Received: by piglet.mmwb.ucsf.EDU (920330.SGI/GSC4.22)
	id AA06069; Mon, 9 Nov 92 09:46:18 -0800
Date: Mon, 9 Nov 92 09:46:18 -0800
Message-Id: <9211091746.AA06069@piglet.mmwb.ucsf.EDU>
From: bic@cgl.ucsf.edu (Bruce Cohen)
Sender: bic@piglet.mmwb.ucsf.EDU
To: stat-lisp-news@umnstat
Subject: Query: Recompiling lisp-stat using Think C 5.0
Cc: bic@piglet.mmwb.ucsf.EDU
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: bic@cgl.ucsf.edu (Bruce Cohen)


	I am using lisp-stat in a high school class.  One problem that I have
concerns the size of the font on a Mac.  I occasionally project the Mac
output via an LCD panel and an overhead projector.  The size of the font
(monaco 9) is rather small.  I would like to change it to 18.  The source
code is for Lightspeed C 3.0.  We only have the latest version (Think C
5.0), and there have been many library changes since version 3.0.

	Has anyone ported lisp-stat to Think C 5.0?

	Thanks for your help.

-Bruce

        Bruce Cohen                    |  INTERNET: bic@cgl.ucsf.edu
        Pharmaceutical Chemistry       |  UUCP:     ..ucbvax!ucsfcgl!bic
        Box 0446 Room S-926            |  BITNET:   bic@ucsfcgl
        University of California       |  VOICE:    (415) 476-8291
        San Francisco, CA  94143-0446  |  FAX:      (415) 476-0688



From owner-SL-news  Mon Nov  9 04:30:12 1992
Resent-Date: Mon, 9 Nov 92 12:30:12 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199211092026.AA11433@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 9 Nov 1992 14:26:15 -0600
Received: from sauron ([150.109.4.177]) by umnstat.stat.umn.edu; Mon, 9 Nov 1992 14:26:11 -0600
Received: by sauron (4.1/1.27)
	id AA04672; Mon, 9 Nov 92 12:30:13 PST
Date: Mon, 9 Nov 92 12:30:12 PST
From: mmeehan@eesof.com (Mike Meehan)
Message-Id: <9211092030.AA04672@sauron>
To: stat-lisp-news@umnstat
Subject: windows and lisp-stat...
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: mmeehan@eesof.com (Mike Meehan)



We are trying to compile XLstat using both the Borland C++ (3.1) compiler and the
MS7.0 compiler.

Questions:

1. How to turn off the prototyping using the Borland compiler...


2. It compiles and links o.k, but were getting an out of stack error from the
system (not xlstat).



Any comments would be appreciated...


-MM



 Mike Meehan
 Simulation Optimization Technology Group
 EEsof Inc., R&D Department
 5601 Lindero Canyon Road
 Westlake Village CA. 91362
 FAX/VOICE: 818.879.6374

 mmeehan@eesof.com


From owner-SL-news  Thu Nov 12 08:48:57 1992
Resent-Date: Thu, 12 Nov 92 14:48:57 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199211122049.AA22173@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 12 Nov 1992 14:49:57 -0600
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Thu, 12 Nov 1992 14:49:53 -0600
Received: from bird.stat.uiowa.edu by ns-mx.uiowa.edu (5.64.jnf/920408)
	  on Thu, 12 Nov 92 14:49:51 -0600 id AA05229 with SMTP 
Received: from nuthatch.stat.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA25212; Thu, 12 Nov 92 14:48:57 CST
Date: Thu, 12 Nov 92 14:48:57 CST
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9211122048.AA25212@ stat.uiowa.edu>
To: stat-lisp-news@umnstat
Subject: keywords and variable args
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: rlenth@stat.uiowa.edu (Russ Lenth)

Another in my long series of dumb questions about lisp ...

I want to write an extension of the REGRESSION-MODEL function that will
pass-on any optional arguments, but can also change one of the keyword
arguments.  I tried:

	(defun 2nd-order-model (x y 
	                        &key (predictor-names nil pset) 
	                        &rest args)
	  (if pset ... )
          (apply #'regression-model 
            (append (list x y ':predictor-names predictor-names) args)))

but I get an error message because the &key arg's have to come AFTER
the &rest arg's.  If I interchange the arg's, then the &key arg's just
become part of the &rest arg's and so they are ignored.  (This seems
like a design flaw to me, but I'm probably overlooking some important
reasons that it's like this.) Anyway, what is the best way to intercept
a keyword argument and pass the others along?  Do I have to explicitly
give all of them (numerous)?

2nd question: Given that I solve the above, is there anything less
awkward than the (apply ...) stuff at the end?

------------------------------------------------    --------------,
Russ Lenth                 rlenth@stat.uiowa.edu    \              )
Department of Statistics                             |   I O W A   \_ 
  and Actuarial Science    Tel: (319)335-0814        \               \
The University of Iowa     FAX: (319)335-3017         \          *  _/
Iowa City, IA 52242  USA   CW:  *= * ====== *=*        | Iowa City /
------------------------------------------------        ----------v

        "Everything happens for a reason,
         but that doesn't mean that there's a point."
                                        --- Sue Grafton


From almond@statsci.com  Thu Nov 12 08:46:41 1992
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Thu, 12 Nov 1992 22:56:20 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA09071; Thu, 12 Nov 92 23:56:25 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 235356.19237; Thu, 12 Nov 1992 23:53:56 EST
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.33)
	id AA10981; Thu, 12 Nov 92 16:43:28 PST
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA18449; Thu, 12 Nov 92 16:46:41 PST
Date: Thu, 12 Nov 92 16:46:41 PST
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9211130046.AA18449@bass.statsci.com>
To: rlenth@stat.uiowa.edu
Cc: SL-news-list@umnstat
In-Reply-To: Russ Lenth's message of Thu, 12 Nov 92 14:48:57 CST <199211122049.AA22173@umnstat.stat.umn.edu>
Subject: keywords and variable args



Russ Lenth writes:


| I want to write an extension of the REGRESSION-MODEL function that will
| pass-on any optional arguments, but can also change one of the keyword
| arguments.  I tried:
| 
| 	(defun 2nd-order-model (x y 
| 	                        &key (predictor-names nil pset) 
| 	                        &rest args)
| 	  (if pset ... )
|           (apply #'regression-model 
|             (append (list x y ':predictor-names predictor-names) args)))
| 
| but I get an error message because the &key arg's have to come AFTER
| the &rest arg's.  If I interchange the arg's, then the &key arg's just
| become part of the &rest arg's and so they are ignored.  (This seems
| like a design flaw to me, but I'm probably overlooking some important
| reasons that it's like this.) Anyway, what is the best way to intercept
| a keyword argument and pass the others along?  Do I have to explicitly
| give all of them (numerous)?

I use this trick all the time, it is especially handy with
call-next-method.  

There are basically two reasons to use the &rest keyword:

(1) you want a variable number of arguments.  For example, you could
implement max (non-vectorized) as:

(defun max (x &rest more-xs)
  (if (null more-xs) x
    (let ((y (apply #'max more-xs)))
      (if (> x y) x y))))

(2) You want to look at only some of the keyword arguments and leave
the rest alone:

(defmeth foo-proto :isnew (required-arg &rest args &key foo
                                        &allow-other-keys)
   (apply #'call-next-method :foo foo :bar foo args))

Problems come about when you try to mix the two paradigms.  In
particular, when LISP sees the &key keyword, it assumes that all of
the rest of the arguments are in keyword--value pairs.  If this
assumption is false, you may be in trouble.  You can get around it by
explicitly parsing the &rest list yourself, but it can get ugly.

Another related problem comes about when you try and mix &optional and
&key arguments.  For example,
(defun myprint (obj &optional (stream *standard-output*)
                    &key (format "~S~%))
   (format stream format obj))
The problem comes in when you try and invoke (myprint obj :format
"(~A)"), you have forgotten the &optional argument.

| 2nd question: Given that I solve the above, is there anything less
| awkward than the (apply ...) stuff at the end?

You still need to use apply, but you can skip the append.  Apply
assumes that its last argument is a list, but all the rest are just
values.  Thus you can skip the append and list step and write:

(defun 2nd-order-model (x y &key (predictor-names nil pset) 
	                    &rest keys)
  (if pset ... )
  (apply #'regression-model x y :predictor-names predictor-names keys))

Note that :predictor-names is a keyword and hence a self-evaluating
form so it does not need to be quoted.  Styalistically I prefer to to
use "keys" as the name for a list of keyword args.

This trick is essential when writing with multiple method
calculations.

For example, consider the following code from ElToY

(defproto titled-object 
  '(title)				;title of object
  '() (list ElToY-object)
  "Add a title to an object")

; :title message  displays/sets title
(defmeth titled-object :title (&optional (title nil set))
   (if set (setf (slot-value 'title) title))
   (slot-value 'title))
(send titled-object :documentation :title
      "Returns or sets title of object")


(defmeth titled-object :isnew
         (&rest args &key (title "") &allow-other-keys)
   (setf (slot-value 'title) title)
   (call-next-method args))

This pulls off and processes the :title argument.  "titled-object" can
now be used as a mixin object.  

Thus

(defproto titled-knight-proto
  '() '() (list titled-object knight-proto)
  "A knight with a title.")

(defmeth :isnew (&rest keys &key (title "Galahad") &allow-other-keys)
  (apply #'call-next-method
        :title (strcat "Sir " title)
        keys))

The :isnew method for titled-knight appends "Sir" to the front of the
title; it then calls the next method, the titled-object method which
stores the title in the title slot.  It then calls the :isnew method
of the knight object which sets the other slots.

Note that the argument list passed to the titled-object :isnew method
will look like:

  (<self> :title "Sir Lancelot" :title "Lancelot" ...)

This is fine, only the first arg is used.


Note that there is considerable debate about whether such mixins make
code easier or more difficult to maintain/understand.  Usually the
:isnew method is the hardest to figure out.  ElToY uses them rather
extensively, so you can look there for an example of their use.

I hope this answers your question without being too long winded.


			Russell Almond			   
Statistical Sciences, Inc.		
1700 Westlake Ave., N Suite 500		
Seattle, WA  98109			
(206) 283-8802				
almond@statsci.com			


From e_acuna@rummat3.upr.clu.edu  Wed Nov 18 06:45:27 1992
Received: from upr1.UPR.CLU.EDU by umnstat.stat.umn.edu; Wed, 18 Nov 1992 12:13:51 -0600
Received: from rummat3.UPR.CLU.EDU by UPR1.UPR.CLU.EDU; Wed, 18 Nov 92 12:55 AST
Received: by rummat3.upr.clu.edu (AA04235); Wed, 18 Nov 92 11:45:27 EST
Date: Wed, 18 Nov 92 11:45:27 EST
From: e_acuna@rummat3.upr.clu.edu
Subject: Xlispstat on NEXT?
To: SL-news-list@umnstat
Message-Id: <9211181645.AA04235@rummat3.upr.clu.edu>
X-Envelope-To: SL-news-list@umnstat.stat.umn.edu

Does anybody know if xlispstat runs on NEXT?

Edgar Acuna,
Univ. of Puerto Rico
Mayaguez Campus

From owner-SL-news  Sun Dec  2 21:14:57 1992
Resent-Date: 02 Dec 1992 14:14:57 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199212020619.AA22904@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 2 Dec 1992 00:19:18 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Wed, 2 Dec 1992 00:19:16 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GRTK03PVJK9D4I82@vx.cis.umn.edu>; Wed, 2 Dec 1992 00:20:48 CDT
Received: by NUSVM (Mailer R2.03B) id 0418; Wed, 02 Dec 92 14:17:29 SST
Date: 02 Dec 1992 14:14:57 +0700 (SST)
From: forrest young <ECSFWY@NUSVM.BITNET>
Subject: DOS LISTENER
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GRTK0OZ1UE9D4I82@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: forrest young <ECSFWY@NUSVM.BITNET>

I wish to reposition the listener window with the MS-DOS Windows version of
Lisp-Stat, but don't know how to do it.  With the Macintosh version I can say:
   (send *listener* :location 100 100)
but with the dos version *listener* doesn't exist.  Any solutions?  thanks...

From owner-SL-news  Sat Dec  5 09:50:43 1992
Resent-Date: Sat, 5 Dec 92 14:50:43 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199212052039.AA06406@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 5 Dec 1992 14:39:01 -0600
Received: from super.super.org by umnstat.stat.umn.edu; Sat, 5 Dec 1992 14:38:46 -0600
Received: by super.super.org (4.1/SMI-4.1)
	id AA01097; Sat, 5 Dec 92 14:50:43 EST
Date: Sat, 5 Dec 92 14:50:43 EST
From: pcolsen@super.org (Peter C Olsen)
Message-Id: <9212051950.AA01097@super.super.org>
To: STAT-LISP-NEWS@umnstat
Subject: "Insufficient Memory" under Windows
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pcolsen@super.org (Peter C Olsen)

I need some help getting LispStat to run under windows 3.1.  I have a
GRiD 386SX laptop running Windows 3.1 in 4 megabytes of memory (640
base + 3 megabytes extended) and I can't run LispStat because of
"Insufficient Memory".  Does this sound right?  Am I really
memory-limited (with 4 MB?!) or is there some configuration option I
can change?

Peter


 Peter Olsen, PE, n2ell, P.O. Box 410, Simpsonville, MD 21150, 410-997-8584 
pcolsen@super.super.org  ...!uunet!super!pcolsen  CG:pcolsen@super.org/G-ASMTP
     "Engineering is the art of applying a professional knowledge of
   mathematics and the physical sciences to improve the quality of life"

From owner-SL-news  Tue Dec 11 17:20:03 1992
Resent-Date: 11 Dec 1992 10:20:03 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199212110224.AA25303@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 10 Dec 1992 20:24:02 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Thu, 10 Dec 1992 20:23:59 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GS5WF3A6GG91WIJK@vx.cis.umn.edu>; Thu, 10 Dec 1992 20:25:35 CDT
Received: by NUSVM (Mailer R2.03B) id 5233; Fri, 11 Dec 92 10:22:42 SST
Date: 11 Dec 1992 10:20:03 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: OUT OF MS-DOS MEMORY
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GS5WF6KLL291WIJK@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

When using the MS-DOS version of Lisp-Stat, I frequently get "OUT OF MEMORY"
messages from Windows/Dos.  Oftentimes the only solution seems to be to simply
quit LS altogether and start over.  Is there some way to avoid this problem?
Something I can do to either Lisp-Stat or Windows/Dos?  (I have a 486 machine
with 8 megs of memory, and am running Windows 3.1).

From owner-SL-news  Sun Jan 10 08:02:13 1993
Resent-Date:         Sun, 10 Jan 93 13:02:13 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199301101817.AA15452@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 10 Jan 1993 12:17:49 -0600
Message-Id: <199301101817.AA15445@umnstat.stat.umn.edu>
Received: from vm1.yorku.ca by umnstat.stat.umn.edu; Sun, 10 Jan 1993 12:17:45 -0600
Received: from VM1.YorkU.CA by vm1.yorku.ca (IBM VM SMTP V2R1)
   with BSMTP id 8112; Sun, 10 Jan 93 13:14:51 EST
Date:         Sun, 10 Jan 93 13:02:13 EST
From: Michael Friendly <FRIENDLY@VM1.YorkU.CA>
Subject:      Compiling on NeXT with dynamic loading
To: Lisp Stat News <lisp-stat-news@umnstat>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Michael Friendly <FRIENDLY@VM1.YorkU.CA>

I am trying to compile xlispstat on a NeXT (NeXTstep 3.0) to enable
dynamic loading for connecting xlispstat to other programs.
The version of xlispstat1.2R2.tar.Z I obtained from the NeXT
archive at sonata.cc.purdue.edu (/pub/next/2.0/source) contains
a next.makefile, but this does not enable dynamic loading
(MACHINE=generic) and there is no ../machines/next directory.

I copied foreign.h from machines/sun3 to machines/next, ran
make.  After compiling several files, make and my terminal
shell go into deep freeze while trying to make xljump.o.
I have no idea why or how to fix it.

If anyone has successfully compiled xlispstat on a NeXT with
dynamic loading, I'd appreciate learning how it is done.


  -- Snail Mail --           ** E-mail **
Michael Friendly             BITNET:    FRIENDLY@YORKVM1
Psychology Department        INTERNET:  FRIENDLY@VM1.YorkU.CA
York University              UUCP:      bitnet!yorkvm1!friendly
Toronto ONT           (/tmp) NeXTmail:  friendly@reader.yorku.ca
CANADA  M3J 1P3              Voice: (416) 736-5118 x66249
                             Fax:   (416) 736-5814

From owner-SL-news  Wed Jan 13 09:17:34 1993
Resent-Date:         Wed, 13 Jan 93 14:17:34 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199301131944.AA24448@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 13 Jan 1993 13:44:38 -0600
Message-Id: <199301131944.AA24441@umnstat.stat.umn.edu>
Received: from vm1.yorku.ca by umnstat.stat.umn.edu; Wed, 13 Jan 1993 13:44:31 -0600
Received: from VM1.YorkU.CA by vm1.yorku.ca (IBM VM SMTP V2R1)
   with BSMTP id 1687; Wed, 13 Jan 93 14:41:35 EST
Date:         Wed, 13 Jan 93 14:17:34 EST
From: Michael Friendly <FRIENDLY@VM1.YorkU.CA>
Subject:      Compiling for NeXT, Chapter 2
To: Lisp Stat News <lisp-stat-news@umnstat>, Hal_Varian@um.cc.umich.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Michael Friendly <FRIENDLY@VM1.YorkU.CA>

I've tried to compile xlispstat2.1R2 on the NeXT (NeXTstep 3.0) using the
next.makefile (no changes) provided by Hal Varian in the .tar.Z file on
sonata.cc.purdue.edu.  (This does not attempt to compile for
dynamic loading).

When I do a make, CC (Gnu C, version 1.93, m68k, MIT syntax) gets hung
trying to compile xljump.c.  Neither I nor a local NeXT advisor can
figure out why or what to do to correct this.

If it makes any difference, I'm planning to use MouseX for X11, which has
it's lib in the same place as co-Xist.

If anyone has any suggestions, I'd be grateful for any help.

Michael

From udina@upf.es  Wed Jan 20 05:05:55 1993
Received: from upf.es (io.upf.es) by umnstat.stat.umn.edu; Wed, 20 Jan 1993 05:05:55 -0600
Received: from libiya.upf.es by upf.es (4.1/SMI-4.1)
	id AA08053; Wed, 20 Jan 93 12:10:29 GMT
Message-Id: <9301201210.AA08053@upf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA02417; Wed, 20 Jan 93 12:06:16 GMT
From: Frederic Udina <udina@upf.es>
Subject: optimizing by golden search
To: SL-news-list@umnstat
Date: Wed, 20 Jan 93 12:06:14 WET
Expires: l
Mailer: Elm [revision: 66.33]

hello

I have compiled xlispstat version 2.1R2 for unix on my HP-720 workstation.
All works fine, xlispstat is a really reliable and complete language.

I'm working in building a research environment for kernel density estimation.
If someone is interested in it, let me know.

Preliminaries to the question:
When I tried to use the lispstat function golden-search, I got this:

> (help 'golden-search)
GOLDEN-SEARCH                                                   [function-doc]
Args: (f a b &key start (tolerance .000001) (verbose nil))
F is a real valued function of one argument, A and B are real numbers.
Uses a golden section search to locate the minimum of F. Convergence
occurs roughly when the change in X is less than tolerance * (1 + x).
Returns list of the form (X FX), with FX = (F X). Prints iteration
information if VERBOSE is not NIL.
NIL
> (golden-search #'sin 3 6)
error: unbound function - GOLDEN-SEARCH

Well: golden-search has help string but it is not implemented.

Looking at the code, I saw one solution.
I have modified the Makefile file changing one line to:

UCFLAGS = -DOPTIMIZE

and now my recompiled xlispstat has golden-search defined and running.

Does someone knows why it is necessary this trick?



Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172

From owner-SL-news  Fri Jan 22 05:40:21 1993
Resent-Date: Fri, 22 Jan 93 12:40:01 WET
Resent-From: owner-SL-news
Resent-Message-Id: <199301221140.AA21180@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 22 Jan 1993 05:40:21 -0600
Received: from upf.es (io.upf.es) by umnstat.stat.umn.edu; Fri, 22 Jan 1993 05:39:45 -0600
Received: from libiya.upf.es by upf.es (4.1/SMI-4.1)
	id AA09657; Fri, 22 Jan 93 12:44:22 GMT
Message-Id: <9301221244.AA09657@upf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA03737; Fri, 22 Jan 93 12:40:03 GMT
From: Frederic Udina <udina@upf.es>
Subject: c code in HP-UX
To: stat-lisp-news@umnstat
Date: Fri, 22 Jan 93 12:40:01 WET
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

hello

Does someone have some experience in calling foreign routines
from xlispstat running on HP-UX?

I need to call some C routines to speed up my lispstat programs.



Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172

From luke  Thu Jan 28 08:00:14 1993
Resent-Date: Thu, 28 Jan 1993 14:00:14 -0600
Resent-Message-Id: <199301282000.AA29544@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 28 Jan 1993 14:00:17 -0600
Date: Thu, 28 Jan 1993 14:00:14 -0600
From: "Luke Tierney" <luke>
Message-Id: <199301282000.AA29537@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 28 Jan 1993 14:00:14 -0600
To: stat-lisp-news@umnstat
Subject: suggestions for next release of Lisp-Stat?
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

I am currently in the process of deciding what additions and
modifications to make to Lisp-Stat. Before embarking on this, I
thought I would ask if anyone who has used a version of the system has
any comments or suggestions that might be helpful. I am particularly
interested in hearing about:

	What additional statistical features would you find useful?

	What additional programming/language features would you find useful?

	Are there any projects you tried that turned out to be
	particularly difficult to implement?

	Are there any projects you tried that turned out to have
	particularly poor performance?

There are some constraints on what can be done. In particular, if at
all possible I want to make only changes that are backward compatible
(so, for example, changing the object system to CLOS is not an option
at this time). I also wont to keep the system reasonably small, and I
want to be able to complete the revision in finite time. So I may not
be able to accommodate all suggestions and requests, but I will make
every effort to deal with the more popular ones.

Thanks for your help. I will summarize responses to the mailing list.

luke

From owner-SL-news  Fri Jan 29 04:41:07 1993
Resent-Date: Fri, 29 Jan 93 09:41:07 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199301291441.AA13535@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 29 Jan 1993 08:41:12 -0600
Received: from alfred.econ.lsa.umich.edu by umnstat.stat.umn.edu; Fri, 29 Jan 1993 08:41:09 -0600
Received: by alfred.econ.lsa.umich.edu (NX5.67c/1123-1.0(us))
	id AA05244; Fri, 29 Jan 93 09:41:07 -0500
Date: Fri, 29 Jan 93 09:41:07 -0500
From: Hal Varian <hal@alfred.econ.lsa.umich.edu>
Message-Id: <9301291441.AA05244@alfred.econ.lsa.umich.edu>
Received: by NeXT.Mailer (1.87.1)
Received: by NeXT Mailer (1.87.1)
To: stat-lisp-news@umnstat
Subject: suggestions for next release of Lisp-Stat?
Reply-To: Hal.Varian@umich.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Hal Varian <hal@alfred.econ.lsa.umich.edu>

> I am currently in the process of deciding what additions
> and modifications to make to Lisp-Stat. Before
> embarking on this, I thought I would ask if anyone who has
> used a version of the system has any comments or
> suggestions that might be helpful.
> 


I would like to have a standardized way to handle missing data.  I understand  
all too well the dangers of having a default that people mindlessly apply, but  
I think that it is necessary to have *some* default mechanism for those  
quick-and-dirty analyses that we are often called upon to do.

Specifically, I would like to see a documented code for missing data (e.g., NA,  
".", etc.) that is hopefully compatible with some other statistical packages.   
I would like to see missing data dealt with in a reasonable way in all the  
basic stat routines.  Of course, the output should print a warning that some  
data is missing along with the degrees of freedom.

---
Hal.Varian@umich.edu    Hal Varian
voice: 313-764-2364     Dept of Economics
fax:   313-764-2364     Univ of Michigan
                        Ann Arbor, MI 48109-1220

From owner-SL-news  Mon Feb  1 20:06:03 1993
Resent-Date: 01 Feb 1993 13:06:03 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302010512.AA21046@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 31 Jan 1993 23:12:41 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Sun, 31 Jan 1993 23:12:37 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GU6PHRAT1C8ZJIS9@vx.cis.umn.edu>; Sun, 31 Jan 1993 23:15:27 CDT
Received: by NUSVM (Mailer R2.03B) id 1278; Mon, 01 Feb 93 13:12:26 SST
Date: 01 Feb 1993 13:06:03 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: FUNCTION FROM STRING
To: Lisping Statistians <STAT-LISP-NEWS@umnstat>
Message-Id: <01GU6PHRAT1E8ZJIS9@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

I have a lisp programming problem I can't solve.
I have a string, say "foo", and i have a function whose name is the same,
say (foo).  I wish to convert the string into the function name to be able to
use the function name.  That is, i want to be able to have a string-to-function
function that will make (string-to-function "foo") be equivalent to (foo).
I'll bet a wad of money that there is some magic Lisp function that does this
(I just hope it isn't so obvious that I'll be embarassed).
Anyone know the answer?  Thanks...

From owner-SL-news  Mon Feb  1 20:13:40 1993
Resent-Date: 01 Feb 1993 13:13:40 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302010532.AA21107@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 31 Jan 1993 23:32:07 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Sun, 31 Jan 1993 23:32:04 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GU6Q6WEZF48ZJF6Q@vx.cis.umn.edu>; Sun, 31 Jan 1993 23:34:57 CDT
Received: by NUSVM (Mailer R2.03B) id 1430; Mon, 01 Feb 93 13:31:48 SST
Date: 01 Feb 1993 13:13:40 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: LUKES REQUEST...
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GU6Q6WEZF68ZJF6Q@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

Regarding Lukes question (perhaps public replies will generate some discussion
of priorities).  My list of what I would like done includes:
1)  Compiler -- this is absolutely my top priority, as I have a lot of code
                that I would like to be able to compile.
2)  Missing Values -- I'm not sure if this is second priorty, but its certainly
                near the top.
5)  More efficient object system.  When the number of objects gets large
                (100's, in my code) the system gets ramarkably slow.
6)  A better MSWin implementation (many minor but annoying differences, bugs,
                and limitations when compared to the Mac and X11 versions):
                window placement/size is awkward; pop-up menus don't work;
                there is no *listener*; go-away nil doesn't work; dialog boxes
                not always right; "out of memory" problems ...
7)  Support for text windows in X11 and MSWIN versions.
6)  Vectors in Plots (not just lines, but vectors with ends that can be labled,
                dragged, hidden, etc., just like points).
7)  More complete set of string functions.  Xlisp seems to be an especially
                incomplete subset of Common Lisp here.

From udina@upf.es  Mon Feb  1 04:53:37 1993
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Mon, 1 Feb 1993 04:53:37 -0600
Received: from libiya.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA05673; Mon, 1 Feb 93 11:58:17 GMT
Message-Id: <9302011158.AA05673@io.upf.esupf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA07631; Mon, 1 Feb 93 11:53:42 GMT
From: udina@upf.es
Date: Mon, 1 Feb 93 11:53:32 WET
To: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu (Forrest Young)
Subject: Re: FUNCTION FROM STRING
In-Reply-To: <01GU6PHRAT1E8ZJIS9@vx.cis.umn.edu>; from "Forrest Young" at Feb 01, 93 1:06 pm

~~
~~I have a lisp programming problem I can't solve.
~~I have a string, say "foo", and i have a function whose name is the same,
~~say (foo).  I wish to convert the string into the function name to be able to
~~use the function name.  That is, i want to be able to have a string-to-function
~~function that will make (string-to-function "foo") be equivalent to (foo).
~~I'll bet a wad of money that there is some magic Lisp function that does this
~~(I just hope it isn't so obvious that I'll be embarassed).
~~Anyone know the answer?  Thanks...
~~

Can the following code do the job?

----------------------------------------------------
(defun test () (print "this is the test function"))

(defun string-to-function (name) 
  (with-input-from-string 
   (str (concatenate 'string "(" name ")" ))
   (eval (read str))))
----------------------------------------------------

this is what you get when you run it:

> (string-to-function "test")

"this is the test function" "this is the test function"



Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172




From fed!m1phm02@uunet.UU.NET  Mon Feb  1 10:52:56 1993
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Mon, 1 Feb 1993 11:08:07 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA19267; Mon, 1 Feb 93 12:08:10 -0500
Received: from fed.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 120609.3927; Mon, 1 Feb 1993 12:06:09 EST
Received: from mfsss1.FRB.GOV by fed.FRB.GOV (4.1/SMI-4.0)
	id AA00941; Mon, 1 Feb 93 10:47:47 GMT
Received: from localhost by mfsss1.FRB.GOV (4.1/SMI-4.0)
	id AA20730; Mon, 1 Feb 93 15:52:57 GMT
Message-Id: <9302011552.AA20730@mfsss1.FRB.GOV>
To: SL-news-list@umnstat
Subject: Re: LUKES REQUEST... 
In-Reply-To: Your message of 01 Feb 93 13:13:40 +0700.
             <01GU6Q6WEZF68ZJF6Q@vx.cis.umn.edu> 
Date: Mon, 01 Feb 93 10:52:56 +0000
From: Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>

My opinions regarding some of Forrest Young's suggestions:

Regarding Lukes question (perhaps public replies will generate some discussion
of priorities).  My list of what I would like done includes:
1)  Compiler -- this is absolutely my top priority, as I have a lot of code
                that I would like to be able to compile.

It is pretty unlikely that you will get this without starting from scratch
using a full Common Lisp implementation in place of XLISP. Lisp compilers
are HARD to write (as demonstrated by the fact that it was about 20 years
from the first interpreter to the first compiler), and I haven't heard about
anyone working on one for XLISP.
. . .

6)  A better MSWin implementation (many minor but annoying differences, bugs,
                and limitations when compared to the Mac and X11 versions):
                window placement/size is awkward; pop-up menus don't work;
                there is no *listener*; go-away nil doesn't work; dialog boxes
                not always right; "out of memory" problems ...

Some of these problems are pretty much inherent to Messy Win, at least in
its current incarnation. Most notable of them is the "out of memory"
problem, which is related to 16bit-ness. A Win32 implementation would
probably be much better in this respect. The 16bit Win implementation also
appears to impose an enormous speed penalty. I have been working on a version
for OS/2 2.0; it does computationally-intensive tasks in about 1/3 the time,
and that is largely without code optimization.

I don't know what bothers you about window placement -- my main complaint is
the whole structure of the Win Multiple Document Interface, which there is
not much that an application can do anything about. Similarly, the use of 
drop-downs rather than pop-ups seems to be very difficult to work around in
Windows.

On the whole, I suspect that the best way to solve the problems with the
MSWin implementation is to get rid of MSWin.

Pat

From owner-SL-news  Mon Feb  1 10:54:04 1993
Resent-Date: Mon, 1 Feb 1993 15:54:04 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199302012055.AA23376@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 1 Feb 1993 14:55:16 -0600
Received: from jeeves.uwaterloo.ca by umnstat.stat.umn.edu; Mon, 1 Feb 1993 14:54:45 -0600
Received: by jeeves.uwaterloo.ca id <597>; Mon, 1 Feb 1993 15:54:17 -0500
From: Greg Anglin <dganglin@jeeves.uwaterloo.ca>
To: stat-lisp-news@umnstat
Subject: Re: FUNCTION FROM STRING
Cc: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu, udina@upf.es
Message-Id: <93Feb1.155417est.597@jeeves.uwaterloo.ca>
Date: Mon, 1 Feb 1993 15:54:04 -0500
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Greg Anglin <dganglin@jeeves.uwaterloo.ca>


>>I have a lisp programming problem I can't solve.
>>I have a string, say "foo", and i have a function whose name is the same,
>>say (foo).  I wish to convert the string into the function name to be able to
>>use the function name.  That is, i want to be able to have a string-to-function
>>function that will make (string-to-function "foo") be equivalent to (foo).
>>I'll bet a wad of money that there is some magic Lisp function that does this
>>(I just hope it isn't so obvious that I'll be embarassed).
>>Anyone know the answer?  Thanks...

>Can the following code do the job?
>
>----------------------------------------------------
>(defun test () (print "this is the test function"))
>
>(defun string-to-function (name) 
>  (with-input-from-string 
>   (str (concatenate 'string "(" name ")" ))
>   (eval (read str))))
>----------------------------------------------------

I'm not sure about in LispStat, but in Common Lisp one might
alternatively do 

(defun string-to-function (name &rest args)
	(apply (symbol-function (read-from-string name))
               args))

Greg Anglin
Statistical Computing Laboratory
University of Waterloo
dganglin@jeeves.uwaterloo.ca


From owner-SL-news  Mon Feb  1 11:26:38 1993
Resent-Date: Mon, 01 Feb 93 16:26:38 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199302012131.AA23548@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 1 Feb 1993 15:31:43 -0600
Message-Id: <199302012131.AA23539@umnstat.stat.umn.edu>
Received: from KARIBA.BBN.COM by umnstat.stat.umn.edu; Mon, 1 Feb 1993 15:31:37 -0600
To: Greg Anglin <dganglin@jeeves.uwaterloo.ca>
Cc: stat-lisp-news@umnstat, ECSFWY%NUSVM.BITNET@vw.cis.umn.edu, udina@upf.es
Subject: Re: FUNCTION FROM STRING 
In-Reply-To: Your message of Mon, 01 Feb 93 15:54:04 -0500.
             <93Feb1.155417est.597@jeeves.uwaterloo.ca> 
Date: Mon, 01 Feb 93 16:26:38 -0500
From: kanderso@BBN.COM
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kanderso@BBN.COM

  From: Greg Anglin <dganglin@jeeves.uwaterloo.ca>
  To: stat-lisp-news@umnstat.stat.umn.edu
  Subject: Re: FUNCTION FROM STRING
  Cc: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu, udina@upf.es
  Date: Mon, 1 Feb 1993 15:54:04 -0500
  Errors-To: owner-SL-news@umnstat.stat.umn.edu
  
  
  >>I have a lisp programming problem I can't solve.
  >>I have a string, say "foo", and i have a function whose name is the same,
  >>say (foo).  I wish to convert the string into the function name to be able to
  >>use the function name.  That is, i want to be able to have a string-to-function
  >>function that will make (string-to-function "foo") be equivalent to (foo).
  >>I'll bet a wad of money that there is some magic Lisp function that does this
  >>(I just hope it isn't so obvious that I'll be embarassed).
  >>Anyone know the answer?  Thanks...
  
  >Can the following code do the job?
  >
  >----------------------------------------------------
  >(defun test () (print "this is the test function"))
  >
  >(defun string-to-function (name) 
  >  (with-input-from-string 
  >   (str (concatenate 'string "(" name ")" ))
  >   (eval (read str))))
  >----------------------------------------------------
  
  I'm not sure about in LispStat, but in Common Lisp one might
  alternatively do 
  
  (defun string-to-function (name &rest args)
  	(apply (symbol-function (read-from-string name))
                 args))
  
Rather than read-from-string, i'd use INTERN.  INTERN takes an optional
package argument which is implied in READ-FROM-STRING.

k


From fed!m1phm02@uunet.UU.NET  Mon Feb  1 17:29:43 1993
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Mon, 1 Feb 1993 16:37:29 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA19243; Mon, 1 Feb 93 17:37:21 -0500
Received: from fed.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 173636.1395; Mon, 1 Feb 1993 17:36:36 EST
Received: from mfsss1.FRB.GOV by fed.FRB.GOV (4.1/SMI-4.0)
	id AA06721; Mon, 1 Feb 93 17:24:33 GMT
Received: from localhost by mfsss1.FRB.GOV (4.1/SMI-4.0)
	id AA22600; Mon, 1 Feb 93 22:29:44 GMT
Message-Id: <9302012229.AA22600@mfsss1.FRB.GOV>
To: SL-news-list@umnstat
Subject: Re: FUNCTION FROM STRING 
In-Reply-To: Your message of Mon, 01 Feb 93 16:26:38 -0500.
             <199302012131.AA23539@umnstat.stat.umn.edu> 
Date: Mon, 01 Feb 93 17:29:43 +0000
From: Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>


  I'm not sure about in LispStat, but in Common Lisp one might
  alternatively do 
  
  (defun string-to-function (name &rest args)
  	(apply (symbol-function (read-from-string name))
                 args))
  
Rather than read-from-string, i'd use INTERN.  INTERN takes an optional
package argument which is implied in READ-FROM-STRING.

Furthermore, XLISP doesn't have READ-FROM-STRING but it does have INTERN.
My solution was

(defun string-to-function (str)
    (symbol-function (intern (string-upcase (string-trim "|" str)))))

(The string-* stuff is needed to get around the peculiar way in which
strings are stored internally in XLISP.)

From almond@statsci.com  Mon Feb  1 06:55:39 1993
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Mon, 1 Feb 1993 17:22:21 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA00836; Mon, 1 Feb 93 18:22:11 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 182007.17446; Mon, 1 Feb 1993 18:20:07 EST
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA02713; Mon, 1 Feb 93 14:53:50 PST
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA10648; Mon, 1 Feb 93 14:55:39 PST
Date: Mon, 1 Feb 93 14:55:39 PST
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9302012255.AA10648@bass.statsci.com>
To: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu
Cc: SL-news-list@umnstat
In-Reply-To: Forrest Young's message of 01 Feb 1993 13:06:03 +0700 (SST) <199302010512.AA21046@umnstat.stat.umn.edu>
Subject: FUNCTION FROM STRING



Forest, the function you're missing is #'intern.  Intern takes a
string (and in ANSI Common Lisp an optional package) and returns a
symbol with that print name.  This will fetch the symbol associated
with the string.  Warning:  the internal forms of most Common Lisp
symbols are internally stored in all upper case.  So you will want to
force the string to upper case.

Thus the code I would write to solve your problem is:
> (defun string-to-fun (str)
    (symbol-function (intern (string-upcase str)))
)
STRING-TO-FUN

A few tests:  

> (string-to-fun "car")
#<Subr-CAR: #f75e8>
> (string-to-fun "xx?")
error: unbound function - XX?

The other alternative is to use #'read-from-string to handle the
conversion.  This will make the case behavior indentical to common
lisp.  But you need to watch out for strings like "(1 2" and
"#<my-struct>" which will cause errors and "#.(trash-the-disk)" which
could have disasterous side effects.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu


From owner-SL-news  Tue Feb  2 06:13:10 1993
Resent-Date: Tue, 2 Feb 93 14:13:10 -0800
Resent-From: owner-SL-news
Resent-Message-Id: <199302022213.AA27084@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 2 Feb 1993 16:13:14 -0600
Received: from louise.stat.washington.edu by umnstat.stat.umn.edu; Tue, 2 Feb 1993 16:13:11 -0600
Received: by louise.stat.washington.edu
	(5.65/UW-NDC Revision: 2.26 ) id AA12087; Tue, 2 Feb 93 14:13:10 -0800
Date: Tue, 2 Feb 93 14:13:10 -0800
From: kilroy@stat.washington.edu
Message-Id: <9302022213.AA12087@louise.stat.washington.edu>
To: stat-lisp-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kilroy@stat.washington.edu

I have been using Lisp-Stat for my dissertation research, and if I
could have whatever I wanted right now...

1) a compiler

or is it possible to write a translator to translate lisp functions to
C and then compile the C code?

2) better control over memory allocation and garbage collection

I would like to have more control over garbage collection parameters.

I have noticed on many occasions that after a few garbage collections,
some of my functions and variable bindings disappear mysteriously.
After loading functions and binding variables, I start getting
error: unbound function - ... and  error: unbound variable - ...
on functions and variables I could have absolutely sworn on a stack of
Lisp-Stat manuals that I had loaded.  So there's a glitch in the
garbage collection somewhere...

I would like to have more control over memory allocation parameters.

Forrest Young states
  "More efficient object system.  When the number of objects gets large
     (100's, in my code) the system gets ramarkably slow."

I have speeded up code considerably by using the (expand ...)
function, try

> (expand 200) 

etc. and see if that speeds up your code any.  It took me months to
learn this little tidbit, there is a small reference in the back of
the book (p 369) to this function.  I also tried the (alloc ...)
function, but this never seemed to have any noticeable effect on
performance speed.

I wish I could control stack depth without recompiling the whole
lisp-stat system.  I don't seem to be able to work on data sets of a
thousand or more observations, I keep getting "stack-depth" errors
when I try to read in long data lists.


3) Graphical control

I would like to be able to control the bitmap dumps to screen for
functions generating output to graphics windows.  Presumably
intermediate bitmap calculations are buffered somewhere then dumped
periodically to the window, but I don't know how to control this.

More documentation (of lower-level functions) and more functions to
allow the user to design graphics windows, dialogues and other
graphics for new applications.

4) Quick interface with math package functions

I modified some code from Wayne Olford at the University of Waterloo
(his Common-Lisp to S package) into a Lisp-Stat package (my xlisp-s
package, available from statlib@lib.stat.cmu.edu) so I can access all
the S functions.  This is great, the combination of object-oriented
lisp programming, Lisp-Stat graphics and the library of S functions
yields a powerful statistical computing engine, albeit a bit slower
than I'd like.  I suspect there's some lisp or C coding that would
allow much more direct access to S functions than the mechanisms in
the xlisp-S code, as well as to fortran and other library routines.

5) Access to Unix

I'd like to be able to interface with Unix so as to control and
manipulate files and other Unix system stuff.  The lisp-stat
(system...) function sends commands off to Unix, but I can't get Unix
output piped back into Lisp.  One example:
> (setq directory (system "pwd"))
/home2/kilroy/thesis
0
> directory
0
I wish that the system function could get that path and stick it in
the directory variable so I could control file i/o better.  There are
several other Unix functions that I'd like the output from...



Of course no matter how hard Luke works on this we will all still have
wish lists, these wishes of mine are in no way meant as complaints.
The Lisp-Stat system as a whole is a remarkable system for exploring
new graphical and object-oriented statistical methods.  Thank you
Luke.



        \`|'/
        (. .)
   ---uuu-U-uuu---
   kilroy was here


From owner-SL-news  Wed Feb  3 19:18:27 1993
Resent-Date: 03 Feb 1993 12:18:27 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302030423.AA27850@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 2 Feb 1993 22:23:07 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Tue, 2 Feb 1993 22:23:05 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GU9GD3EEOW8ZJY7G@vx.cis.umn.edu>; Tue, 2 Feb 1993 22:25:59 CDT
Received: by NUSVM (Mailer R2.03B) id 1695; Wed, 03 Feb 93 12:22:38 SST
Date: 03 Feb 1993 12:18:27 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: SOLUTIONS TO MY PROBLEM
To: STAT-LISP-NEWS@umnstat
Message-Id: <01GU9GD3EOC28ZJY7G@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

Thanks for all of your replies.  The replies fell into two groups:
1)  (funcall (symbol-function (intern (string-upcase "foo"))))
2)  (with-input-from-string (str "(foo)")(eval (read str)))
 
In the meantime, I came up with my own, slightly different solution:
3)  (eval (read (make-string-input-stream "(foo)")))
which has the disadvantage, compared with solution 2 (if I read Steele right)
that #3 leaves the stream open, whereas #2 leaves it closed.  In any case, I
think I prefer 2.  It is closest to what I originally tried, which was the
same but omitted symbol-function, which I didn't know about.
 
Thanks again...Forrest Young

From owner-SL-news  Wed Feb  3 11:49:08 1993
Resent-Date: Wed, 3 Feb 93 11:39:08+010
Resent-From: owner-SL-news
Resent-Message-Id: <199302031040.AA28720@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 3 Feb 1993 04:40:53 -0600
Received: from faui45.informatik.uni-erlangen.de by umnstat.stat.umn.edu; Wed, 3 Feb 1993 04:39:40 -0600
Received: from faui78.informatik.uni-erlangen.de by uni-erlangen.de with SMTP;
	id AA09340 (5.65c-5/7.3q-FAU); Wed, 3 Feb 1993 11:39:21 +0100
Received: from faui78t.informatik.uni-erlangen.de by immd7.informatik.uni-erlangen.de  with SMTP (5.64+/7.3h-FAU)
	id AA06131; Wed, 3 Feb 93 11:39:22 +0100
From: Winfried Dulz <dulz@informatik.uni-erlangen.de>
Message-Id: <9302031039.AA06131@faui78.informatik.uni-erlangen.de>
Date: Wed, 3 Feb 93 11:39:08+010
To: STAT-LISP-NEWS@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Winfried Dulz <dulz@informatik.uni-erlangen.de>


In his recommendations for extended Xlispstat functionality kilroy wrote

>> 5) Access to Unix
>>
>> I'd like to be able to interface with Unix so as to control and
>> manipulate files and other Unix system stuff.  The lisp-stat
>> (system...) function sends commands off to Unix, but I can't get Unix
>> output piped back into Lisp.  One example:
>> > (setq directory (system "pwd"))
>> /home2/kilroy/thesis
>> 0
>> directory
>> 0
>> I wish that the system function could get that path and stick it in
>> the directory variable so I could control file i/o better.  There are
>> several other Unix functions that I'd like the output from...

One possible (quick-and-dirty and not very efficient) solution is the following
function:

;*******************************************************************************
; Read result of UNIX system call and return string of result
;*******************************************************************************
(defun read-system (command
                    &aux
                    string
                    )
  (let
   ((result
     (with-output-to-string (string)
                            (system command string)
                            string)))
   (coerce
    (reverse
     (rest
      (reverse
       (coerce
        result
        'list))))
    'string )))
;*******************************************************************************

I also wish to thank Luke for his wonderful tool. I have got some experiences
with other packages (Old S, New S, ...) and believe the object-oriented approach
is the only way "not to get lost in the mud of exponential growing special
purpose software solutions".

If there is a chance to get more efficient objects, e.g compiling or explicit
control of the runtime stack, I would agree in correspondence with other
recommendations to give this task the highest priority.

By the way, are there any other "Build-on-Top-of-Xlispstat" special purpose
extensions like ElToy? I am especially interested in simulation and modeling
approaches that are based on Bernard Zeigler's DEVS theory. We have developed
an environment called "Worklab" for infering regular stochastic grammars and
automata from measured event traces. Using a grammar-based load generator it
is possible to generate more realistic load patterns for performance evaluation
studies of (communication) systems.

-----------------------------------------------------------------------
|                            Winfried Dulz                            |
|                                                                     |
|                            University of Erlangen-Nuremberg         |
|                            Institute of Computer Science            |
|                            Chair for Computer Architecture and      |
|                            Performance Evaluation                   |
|                                                                     |
|                            Martensstr. 3                            |
|                            W-8520 Erlangen                          |
|                            Deutschland                              |
|                                                                     |
|                            Phone   *9131 85 7929                    |
|                            FAX     *9131 39388                      |
|                            E-Mail  dulz@informatik.uni-erlangen.de  |
|                            X.400   /C=de/A=dbp/P=uni-erlangen       |
|                                    /OU=informatik/S=dulz/           |
-----------------------------------------------------------------------

From owner-SL-news  Wed Feb  3 00:34:18 1993
Resent-Date: Wed, 3 Feb 93 8:34:18 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199302031841.AA29843@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 3 Feb 1993 12:41:41 -0600
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Wed, 3 Feb 1993 12:41:33 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA24455; Wed, 3 Feb 93 12:37:09 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 123405.10199; Wed, 3 Feb 1993 12:34:05 EST
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA22544; Wed, 3 Feb 93 08:34:02 PST
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA26668; Wed, 3 Feb 93 08:34:19 PST
From: phil@statsci.com (Phil Neal)
Message-Id: <9302031634.AA26668@bass.statsci.com>
Subject: How to do a dyn-load ?
To: STAT-LISP-NEWS@umnstat
Date: Wed, 3 Feb 93 8:34:18 PST
X-Mailer: ELM [version 2.3 PL11]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: phil@statsci.com (Phil Neal)

Dear xlispstat people,

I am running xlispstat on a Sun Sparc II with X11. My console
is on a hp computer. I am trying to get dyn-load to work.

Here is what happens:

> (dyn-load "/herb/users/phil/AdVISE/foo.o")
first ld pass
ld -d -N -x -A /herb/users/phil/AdVISE/xlispstat/xlisp -T 2d7000 /herb/users/phil/AdVISE/foo.o  -lm -lc -o /tmp/xlispdyn26548
ld: -ldl: No such file or directory
error: link failed
>

> (system "ls *.o")
foo.o
0
> (system "pwd")
/herb/users/phil/AdVISE
0
>


I am looking at the xsdynload.c code but I don't find an error
message that matches "No such file or directory" so I assume the
error message is coming from ld.

Any insights would be appreciated.

Thanks,

Phil Neal


From owner-SL-news  Wed Feb  3 18:38:47 1993
Resent-Date: 03 Feb 1993 23:38:47 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302040737.AA01747@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 4 Feb 1993 01:37:07 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Thu, 4 Feb 1993 01:37:04 -0600
Received: from UTCVM.BITNET (MAILER@UTCVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GUB1EXXS008ZKFX6@vx.cis.umn.edu>; Thu, 4 Feb 1993 01:39:57 CDT
Received: from UTCVM (GHONG) by UTCVM.BITNET (Mailer R2.08) with BSMTP id 3602;
 Thu, 04 Feb 93 01:00:31 EST
Date: 03 Feb 1993 23:38:47 -0500 (EST)
From: Rich Faldowski <GHONG@UTCVM.BITNET>
Subject: Wishes
To: LispStat News Mailing List <lisp-stat-news@umnstat>
Message-Id: <01GUB1EXXS028ZKFX6@vx.cis.umn.edu>
X-Envelope-To: lisp-stat-news@umnstat.stat.umn.edu
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Rich Faldowski <GHONG@UTCVM.BITNET>

LispStat Lispers,
 
In response to Luke's call for suggestions on potential additions and
modifications to LispStat, my top priorities would be:
 
(1) A compiler !!!  (getting fantasies out of the way first)
(2) A 3rd version of Mac LispStat which takes advantage of the Quadra's  040
    processing capabilities.
(3) A "vector" data type in plots. "Vectors", which probably should be
    implemented in C, are directed line segments drawn from the origin of a
    plot to the vector's coordinates.  They should support all of the
    manipulation features of points (ie. labeling, coloring, hiding, ...)
    plus a capacity to be rescaled independently from the scalings of the
    current plot dimensions.  It would also be useful to permit them to be
    added to plots in either the original or scaled coordinate systems.
(4) An object template for multiplot displays containing its own menu
    plus a set of plots.  The plots all operate as their own prototypes
    would dictate, however, all the plots united in the template would share
    the same data.  Thus, say all the plots were displaying aspects of
    a statistical model. If the model were altered, then it would only
    necessitate changing a single copy of the data and redrawing all the
    plot in order to update the displays.
 
Of course, the latter two suggestions can be juryrigged under the current
LispStat system, but its a recipe for inefficiency.
 
Comments on some of the other suggestions:
(1) Several comments regarding a need for missing data capabilities.
 
    It sounds like what is needed is not so much a formula  for handling
    missing values per se, but a protocol for specifying and identifying them.
    A simple implementation of this idea might involve defining a global
    constant containing a prefix used in identifying a diversity of different
    types of specific missing values.  Coupled with a function designed to
    search for the missing value prefix and act according to a users specificat
    when one is located, this scheme might go some way toward addressing
    the "wishes" without writing missing value treatment into Lisp-stone.
 
 (2) Regarding Forrest Young's comments on the "Joys of LispStat under Windows"
 
     Ditto Patrick McAllister's reponse.  (After all, how often are commercial
     software companies so magnanimous that they virtually give away their
     sterling product on such a global scale?)
 
(3) Regarding Kilroy's comments  on memory management.
 
    On occasion, I've noted the same problems he has had with losing fuctions
    and variable bindings, but it sounds like he's made more progress in
    tracking it down than I've been able to.  I also share his interest in
    learning more about the effect of ALLOC.
 
    Along similar lines, the LispStat editor contains glitch in that it is
    possible to open a file, make a number of minor alterations, and then
    close the file window w/out being prompted to save the changes.  Changes
    aren't saved.  This seems to be related to byte count of the file remaining
    constant (???).
 
Rich Faldowski

From owner-SL-news  Thu Feb  4 05:38:04 1993
Resent-Date: Thu, 4 Feb 93 12:37:23 WET
Resent-From: owner-SL-news
Resent-Message-Id: <199302041138.AA02206@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 4 Feb 1993 05:38:04 -0600
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Thu, 4 Feb 1993 05:37:23 -0600
Received: from libiya.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA08984; Thu, 4 Feb 93 12:42:05 GMT
Message-Id: <9302041242.AA08984@io.upf.esupf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA10151; Thu, 4 Feb 93 12:37:24 GMT
From: Frederic Udina <udina@upf.es>
Subject: re: suggestions for next release of lisp-stat
To: stat-lisp-news@umnstat (lisp stat list)
Date: Thu, 4 Feb 93 12:37:23 WET
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>


Here are some comments I have sended to Luke Tierney


~~
~~I am currently in the process of deciding what additions and
~~modifications to make to Lisp-Stat. Before embarking on this, I
~~thought I would ask if anyone who has used a version of the system has
~~any comments or suggestions that might be helpful. I am particularly
~~interested in hearing about:
~~

This is a really great new. I'm currently working hard with xlispstat
on Macintosh and a unix HP-700 workstation. I will try to report some
reply to your questions.

~~      What additional statistical features would you find useful?
~~

Some basic techniques of multivariate analysis, as principal components,
correspondance analysis, ...

In the graphical interface tools, I think the control of the apearance
of the graphs can be improved. I give some examples:

- I will like to be able to decide if the labels on the y-axis must appear
  horizontally or vertically, to include minor ticks without label, 

- Working with windows, I have not been able to implement activate-dependent
  actions. I mean, for example, be able to detect when a window is going
  to the front. Perhaps some window must send other windows a :show-window
  or :redraw message... I dont'know if this is done using the 'subordinates
  slot, but I have don't found any documentation about it.

- The mouse-modes mechanism for graph-proto is really good, but I don't like
  to have to open the modal dialog for changing the mouse-mode. Perhaps an
  overlay mechanism would be better. I have done it in lisp, I can send 
  the program if you want it.
  I have included a dirty zoom-in/zoom-out mouse-mode in lisp. I think it
  is very useful.

- For slider objects, it will be fine to have a :while-scroll-action 
  method that would be called also while you drag the slider thumb.

- When a graph-proto contains more than two variables, I think it will be
  fine to have the possibility to automatically split the window in several
  panes showing the bivariate graphs (lines or scatterplots or anything)
  comparing the first variable to the other ones.

- When building a new prototype containing a window with his own menu, I have
  found a little dificult to build menu items that send messages to his own
  window if it is not contained in a global variable.
  I think a menu-item object
  must contain slots like 'target-object and 'message-to-send.

- It will be fine to have an adaptive sampling algorithm
   for plotting functions.

~~      What additional programming/language features would you find useful?
~~
I think a lisp-compiler and included C-compiler are necessary.
I don't know if you plan to port lisp-stat to kyoto common lisp.


These are my first on-the-fly suggestions. I know some of them are not easy
to implement...

Thank you for getting it all working



Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172


--


Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172

From owner-SL-news  Thu Feb  4 03:49:22 1993
Resent-Date: Thu, 4 Feb 93 08:49:22 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199302041349.AA02493@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 4 Feb 1993 07:49:25 -0600
Received: from alfred.econ.lsa.umich.edu by umnstat.stat.umn.edu; Thu, 4 Feb 1993 07:49:23 -0600
Received: by alfred.econ.lsa.umich.edu (NX5.67c/1123-1.0(us))
	id AA01251; Thu, 4 Feb 93 08:49:22 -0500
Date: Thu, 4 Feb 93 08:49:22 -0500
From: Hal Varian <hal@alfred.econ.lsa.umich.edu>
Message-Id: <9302041349.AA01251@alfred.econ.lsa.umich.edu>
Received: by NeXT.Mailer (1.87.1)
Received: by NeXT Mailer (1.87.1)
To: <lisp-stat-news@umnstat>
Subject: missing data
Reply-To: Hal.Varian@umich.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Hal Varian <hal@alfred.econ.lsa.umich.edu>

> (1) Several comments regarding a need for missing data capabilities.
>  

>     It sounds like what is needed is not so much a formula  for handling
>     missing values per se, but a protocol for specifying and identifying  
them.
>     A simple implementation of this idea might involve defining a global
>     constant containing a prefix used in identifying a diversity of different
>     types of specific missing values.  Coupled with a function designed to
>     search for the missing value prefix and act according to a users  
specificat
>     when one is located, this scheme might go some way toward addressing
>     the "wishes" without writing missing value treatment into Lisp-stone.
> 


Yes.  The main thing is to have a flexible protocol.  The next thing is to have  
a sensible default value for missing data.  The third thing is to have a  
default in some of the standard stat packages (regression, anova) for  
quick-and-dirty estimation. Maybe it would make sense to have a "hook" for  
preprocessing the data.  If the hook is "true" the data would be run through  
"remove-missing-data" before being fed to estimation routines.  One could  
imagine other treatments in different contexts, of course, but having a data  
pre-processor would allow considerable flexibility.

---
Hal.Varian@umich.edu    Hal Varian
voice: 313-764-2364     Dept of Economics
fax:   313-764-2364     Univ of Michigan
                        Ann Arbor, MI 48109-1220

From owner-SL-news  Sat Feb  6 01:21:17 1993
Resent-Date: Sat, 6 Feb 1993 01:21:17 GMT
Resent-From: owner-SL-news
Resent-Message-Id: <199302060850.AA09044@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 6 Feb 1993 02:50:31 -0600
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Sat, 6 Feb 1993 02:50:28 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA23576; Sat, 6 Feb 93 03:50:27 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 034947.29917; Sat, 6 Feb 1993 03:49:47 EST
Received: from arugula by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA17941; Fri, 5 Feb 93 17:21:01 PST
Received: by arugula
	(16.7/16.2) id AA15987; Fri, 5 Feb 93 20:20:19 -0500
Newsgroups: lists.statlisp
Path: almond
From: almond@statsci.com (Russell G. Almond)
Subject: Menu-item slots.
In-Reply-To: udina@upf.es's message of 4 Feb 93 10:37:23 GMT
Message-Id: <ALMOND.93Feb5172117@bass.statsci.com>
Sender: usenet@statsci.com (Usenet News Account)
Organization: Statistical Sciences, Inc., Seattle, WA USA
References: <9302041242.AA08984@io.upf.esupf.es>
Date: Sat, 6 Feb 1993 01:21:17 GMT
Lines: 64
Apparently-To: lists-statlisp@mailhost
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)



- When building a new prototype containing a window with his own menu, I have
  found a little dificult to build menu items that send messages to his own
  window if it is not contained in a global variable.
  I think a menu-item object
  must contain slots like 'target-object and 'message-to-send.

This can be done easily with the current lisp.  You just need to use
functional closures.

(defmeth my-window :isnew (me &rest args)

 ;; Some random initialization stuff

 (let ((window-data (...))))

   (let ((frob-menu-item
           (send menu-item-proto :new "Frob"
                 :action #'(lambda () (send me :frob window-data))))
	)
   ...

When Lisp gets builds the frob-menu-item, the value to put in the
action slot is the result of evaluating (function (lambda () (send me
:frob))).    (#' is a reader macro for function).  
The function special form in not quite like ' because it produces
lexical closures.  Essentially, it preserves the lexical environment.
In essence, it preserves the bindings to me (the window object) and
( whatever you set window-data to).  Thus there is no reason to set a
global variable, it is encapuslated in the function closure.  The
closure is preserved even after the function returns.

As another example, consider the function:

(defun make-account (balance)
  #'(lambda (action &optional amount)
      (case action
	(:balance balance)
	(:deposit (setf balance (+ balance amount)))
	(:withdraw (setf balance (- balance amount)))
	(t (error "Unrecognized command ~S" action)))))

> (setf (symbol-function 'my-account) (make-account 100))
#<Closure: #19a170>
> (my-account :balance)
100
> (my-account :deposit 50)
150
> (my-account :withdraw 75)
75
> (my-account :balance)
75




			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu



From fed!m1phm02@uunet.UU.NET  Mon Feb  8 06:35:18 1993
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Mon, 8 Feb 1993 11:31:14 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA01160; Mon, 8 Feb 93 12:31:12 -0500
Received: from fed.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 123007.1096; Mon, 8 Feb 1993 12:30:07 EST
Received: from mfsss1.FRB.GOV by fed.FRB.GOV (4.1/SMI-4.0)
	id AA00944; Mon, 8 Feb 93 11:30:05 GMT
Received: from localhost by mfsss1.FRB.GOV (4.1/SMI-4.0)
	id AA01438; Mon, 8 Feb 93 16:35:24 GMT
Message-Id: <9302081635.AA01438@mfsss1.FRB.GOV>
To: SL-news-list@umnstat
Subject: Re: Menu-item slots. 
In-Reply-To: Your message of Sat, 06 Feb 93 01:21:17 +0000.
             <ALMOND.93Feb5172117@bass.statsci.com> 
Date: Mon, 08 Feb 93 11:35:18 -0500
From: Patrick McAllister  <fed!m1phm02@uunet.UU.NET> <m1phm02>


Russell Almond's observations on building a menu item to send a message to
the current object are excellent (as usual).  One device that I use to make
the process a little clearer if the action is somewhat complex is using a
macro to construct it, rather than putting all the code in directly. For
example, an action that needs to send messages to two different objects,
with one message containing the results of another:

(defmacro display-results (display-ob regr-ob)
  `(lambda () (send ,display-ob :strings (send ,regr-ob :get-display))
     (send ,display-ob :redraw)))

is then utilized by:

 ... (send menu-item-proto :new "Display results"
			   :action (display-results display-ob self))) ...

This approach is also useful if similar messages must be constructed in
several different places, etc.

Pat




From almond@statsci.com  Mon Feb  8 04:37:27 1993
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Mon, 8 Feb 1993 15:17:52 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA23390; Mon, 8 Feb 93 16:17:47 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 161525.19760; Mon, 8 Feb 1993 16:15:25 EST
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA01916; Mon, 8 Feb 93 12:37:03 PST
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA06917; Mon, 8 Feb 93 12:37:27 PST
Date: Mon, 8 Feb 93 12:37:27 PST
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9302082037.AA06917@bass.statsci.com>
To: m1phm02@statsci.com
Cc: SL-news-list@umnstat
In-Reply-To: Patrick McAllister's message of Mon, 08 Feb 93 11:35:18 -0500 <9302081635.AA01438@mfsss1.FRB.GOV>
Subject: Menu-item slots. 


Patrick McAllister writes the following macro for building the menu item.

 (defmacro display-results (display-ob regr-ob)
    `(lambda () (send ,display-ob :strings (send ,regr-ob :get-display))
       (send ,display-ob :redraw)))

  is then utilized by:

   ... (send menu-item-proto :new "Display results"
	   		     :action (display-results display-ob self))) ...


Shouldn't that be:

 (defmacro display-results (display-ob regr-ob)
    `(function (lambda ()
                 (send ,display-ob :strings (send ,regr-ob :get-display)) 
                 (send ,display-ob :redraw))))

i.e., wrapped in a function special form to produce the lexical
closure?  

Some older lisps (especially Scheme) use Lambda to create
closures, xlisp may as well.  On the other hand, the current ANSI
Common LISP draft is pretty millitant about making a distinction
between lambda expressions and functions.  The former need to be
closed before they can be applied.  Even if there is no effective
difference, I would add the function as being stylistically
preferable.



	--Russell



From owner-SL-news  Tue Feb  9 03:36:53 1993
Resent-Date: Tue, 9 Feb 1993 03:36:53 GMT
Resent-From: owner-SL-news
Resent-Message-Id: <199302090417.AA17566@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 8 Feb 1993 22:17:20 -0600
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Mon, 8 Feb 1993 22:17:07 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA26648; Mon, 8 Feb 93 23:17:13 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 231640.10935; Mon, 8 Feb 1993 23:16:40 EST
Received: from arugula by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA00269; Mon, 8 Feb 93 19:36:35 PST
Received: by arugula
	(16.7/16.2) id AA15671; Mon, 8 Feb 93 22:35:54 -0500
Newsgroups: lists.statlisp
Path: almond
From: almond@statsci.com (Russell G. Almond)
Subject: Re: Menu-item slots.
In-Reply-To: almond@statsci.com's message of 8 Feb 93 20:37:27 GMT
Message-Id: <ALMOND.93Feb8193653@bass.statsci.com>
Sender: usenet@statsci.com (Usenet News Account)
Organization: Statistical Sciences, Inc., Seattle, WA USA
References: <9302081635.AA01438@mfsss1.FRB.GOV> <9302082037.AA06917@bass.statsci.com>
Date: Tue, 9 Feb 1993 03:36:53 GMT
Lines: 86
Apparently-To: lists-statlisp@mailhost
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)


I (Russell G. Almond) writes:

   Patrick McAllister writes the following macro for building the menu item.

    (defmacro display-results (display-ob regr-ob)
       `(lambda () (send ,display-ob :strings (send ,regr-ob :get-display))
	  (send ,display-ob :redraw)))

     is then utilized by:

      ... (send menu-item-proto :new "Display results"
				:action (display-results display-ob self))) ...


   Shouldn't that be:

    (defmacro display-results (display-ob regr-ob)
       `(function (lambda ()
		    (send ,display-ob :strings (send ,regr-ob :get-display)) 
		    (send ,display-ob :redraw))))

   i.e., wrapped in a function special form to produce the lexical
   closure?  

   Some older lisps (especially Scheme) use Lambda to create
   closures, xlisp may as well.  On the other hand, the current ANSI
   Common LISP draft is pretty millitant about making a distinction
   between lambda expressions and functions.  The former need to be
   closed before they can be applied.  Even if there is no effective
   difference, I would add the function as being stylistically
   preferable.



	   --Russell

Oops.  I need to double check my facts before I post.  A series of
messages and experiments with Patrick reveals that he was partially
right and I was partially wrong on this one.  The lambda expression
implies the closure, not the function special form.  In Xlisp, (lambda
(x) (+ x 3)) and #'(lambda (x) (+ x 3)) both produce closures.

Thus in xlisp

(funcall (lambda (x) (+ x 3)) 5)
and
(funcall #'(lambda (x) (+ x 3)) 5)

both produce 8, as does:
(funcall '(lambda (x) (+ x 3)) 5)

Note that the latter is considered depriciated by most of the LISP
community.  In fact, the X3J13 report definitely states that the list
'(lambda (x) (+ x 3)) is *not* a function (i.e.,

(functionp '(lambda (x) (+ x 3)) 5) is should be nil.

Xlisp, written before the decision that made that list returns t.

Interestingly enough, the fact that (lambda (x) (+ x 3)) evaluates to
a function appears to be an *extension* to the CL standard provided by
Xlisp.  The X3J13 draft standard only defines lambda as symbol and
does not give it a function, macro or special-form definition.  In
both Allegro CL and CMU CL, evaluating the expression (lambda (x) (+ x
3)) produces an error. 

Incidentally I tried evaluating a number of variations on the theme in
all three version of lisp, I got:
				  Xlisp 	Allegro		CMU
(funcall #'(lambda (x) (+ x 3)))  8		8		8
(funcall '(lambda (x) (+ x 3)))   8		8		error
(funcall (lambda (x) (+ x 3)))    8		error		error

Thus while Patrick's code works in Xlisp, he can't count on it being
portable.  

I simply think about #'(lambda (...) ...) as an idiom.  I never use
lambda without the function.  Hence my confusion about whether lambda
or function produces the closure.

	--Russell






From owner-SL-news  Tue Feb  9 20:46:56 1993
Resent-Date: 09 Feb 1993 13:46:56 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302090830.AA18132@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 9 Feb 1993 02:30:17 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Tue, 9 Feb 1993 02:30:14 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GUI2QOWCG08ZHC4W@vx.cis.umn.edu>; Tue, 9 Feb 1993 02:33:12 CDT
Received: by NUSVM (Mailer R2.03B) id 9826; Tue, 09 Feb 93 13:51:13 SST
Date: 09 Feb 1993 13:46:56 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: MISSING DATA
To: Stat-Lispers <STAT-LISP-NEWS@umnstat>
Message-Id: <01GUI2QOWCG28ZHC4W@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

Let me support Hal Varian's points about missing data...what we really need, in
my opinion, is pretty much exactly what he suggested:  A protocol of some kind
for representing missing data, and a few simple functions for identifying it.
It would also be good to modify the existing Lisp-Stat analysis examples
(regressio, ANOVA) as he suggested (default is for them to through out data
with missing values).
  In addition, isn't there some sort of IEEE standard on this topic?  If so,
Lisp-Stat should probably adhere to it!
  Let me add publically here, as I have to Luke many times in the past, how
wonderful it is to have Lisp-Stat.  It enables me to do things that I have long
wanted to do that I simply couldn't in any other system!  Thanks once again,
Luke...

From billh@lsid.hp.com  Tue Feb  9 00:36:44 1993
Received: from hp.com by umnstat.stat.umn.edu; Tue, 9 Feb 1993 10:36:47 -0600
Received: from labmdv.lsid.hp.com by hp.com with SMTP
	(16.8/15.5+IOS 3.13) id AA22844; Tue, 9 Feb 93 08:36:46 -0800
Received: by labmdv.lsid.hp.com
	(16.6/15.5+IOS 3.22) id AA02435; Tue, 9 Feb 93 08:36:45 -0800
From: Bill Harris <billh@lsid.hp.com>
Message-Id: <9302091636.AA02435@labmdv.lsid.hp.com>
Subject: Additions to XLISP-STAT?
To: SL-news-list@umnstat
Date: Tue, 9 Feb 93 8:36:44 PST
Mailer: Elm [revision: 66.25]

Just a suggestion from a novice: what about adding cluster analysis, a la
S?  There have been a couple of times I would have liked to try that on
some data and didn't have access to any software which made it easier.
(Perhaps someone has a program to do that in XLISP-STAT?)

Regards,

Bill 

--
Bill Harris                             Hewlett-Packard Co. 
R&D Productivity Department             Lake Stevens Instrument Division 
domain: billh@lsid.hp.com               M/S 330
hpdesk: Bill Harris / HPA100            8600 Soper Hill Road
phone: (206) 335-2200                   Everett, WA 98205-1298 
                    

From owner-SL-news  Tue Feb  9 15:57:00 1993
Resent-Date: Tue, 09 Feb 93 23:57:00 -0800
Resent-From: owner-SL-news
Resent-Message-Id: <199302100757.AA02087@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Feb 1993 01:57:37 -0600
Received: from netcom.netcom.com by umnstat.stat.umn.edu; Wed, 10 Feb 1993 01:57:28 -0600
Received: by netcom.netcom.com (5.65/SMI-4.1/Netcom)
	id AA28031; Tue, 9 Feb 93 23:57:02 -0800
Message-Id: <9302100757.AA28031@netcom.netcom.com>
To: Winfried Dulz <dulz@informatik.uni-erlangen.de>,
        kilroy@stat.washington.edu
Cc: STAT-LISP-NEWS@umnstat
Subject: Re: xlispstat wish list item -- access to unix
In-Reply-To: Your message of "Wed, 03 Feb 93 11:39:08."
             <9302031039.AA06131@faui78.informatik.uni-erlangen.de> 
Date: Tue, 09 Feb 93 23:57:00 -0800
From: "Niels P. Mayer" <mayer@netcom.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Niels P. Mayer" <mayer@netcom.com>


>> 5) Access to Unix
>>
>> I'd like to be able to interface with Unix so as to control and
>> manipulate files and other Unix system stuff.  The lisp-stat
>> (system...) function sends commands off to Unix, but I can't get Unix
>> output piped back into Lisp.  One example:
>> > (setq directory (system "pwd"))

You may want to take a look at the following functions I added to WINTERP
(OSF/Motif Widget INTERPreter based on XLISP) -- POPEN PCLOSE SYSTEM
FSCANF-FIXNUM FSCANF-STRING FSCANF-FLONUM. They are useful for running Unix
commands with the process output piped back to WINTERP as XLISP stream type
data. The FSCANF-* commands are very useful for reading & parsing formatted
data from unix commands. You can just as easily create processes that
expect input and send data written to an xlisp stream using xlisp's FORMAT
primitive.

You can get WINTERP from
export.lcs.mit.edu:contrib/winterp/winterp-1.13.tar.Z file
winterp/src-server/xlisp/unixstuff.c. Feel free to take whatever code you
need from WINTERP and integrate into XLISP-STAT -- WINTERP has the same
kind of copyright as XLISP-STAT 2.0. (I certainly am going to be taking
code from 2.X for use w/ WINTERP 2.0).

I expect to have WINTERP 2.0 out real soon now, which will have additional
features that should be very useful for interfacing to other Unix programs.
This version allows you to run multiple asynchronous subprocesses under a
pty, enabling communications with interactive unix programs. From the
perspective of the WINTERP programmer, you just end up writing/reading data
to/from a bidirectional XLISP stream. Note that since WINTERP is
event-driven, your X11/Motif user interfaces created by WINTERP don't
become inactive while one or more unix subprocesses are "busy thinking".

Note that WINTERP 1.13 is based on David Betz's original XLISP 2.1, whereas
WINTERP 2.0 is based on Tom Almy's mXLISP-PLUS 2.1d...

I expect to release an beta version of 2.0 in 2-3 months. Since I recently
quit my job as a researcher at HP Labs, I now expect to have more time to
work on fun projects like WINTERP and the WINTERP graphics/animation
package. I'll initially be funding this hacking through HP's generous
"voluntary severance" payout -- almost a year's salary. But one of these
months, I'll probably need to get a real job or do some
consulting/contracting...

Here is the excerpt from winterp-1.13/doc/xlisp.doc describing the
pipe functions. Afterwards, is the procedure documentation from
winterp-2.0/src-server/w_subprocess.c...

|        XLISP        UN*X-SPECIFIC FUNCTIONS (FOR WINTERP)       Page 52
|
|
|	The following functions were added to XLISP by Niels Mayer
|	for use with WINTERP. These functions are UN*X-specific:
|
|	POPEN - start a process and open a pipe as a read/write stream
|		(popen <shell-command> :direction <direction>)
|		    <shell-cmd>	is a string which is sent to shell
|				/bin/sh and is executed as command.
|		    <direction>	a keyword symbol, :input means a stream
|				is created that reads from stdout of
|				<shell-cmd>; :output means a stream
|				is created that writes to stdin of 
|				<shell-cmd>. (:input is the default.)
|		    returns	a stream, or NIL if the pipe or /bin/sh 
|				process couldn't be created.
|
|	PCLOSE -- close a pipe stream as opened by POPEN.
|		(pclose <stream>)
|		    <stream>	a stream object created by POPEN
|		    returns	T if the command executed successfully, else
|				returns the integer exit status of
|				<shell-cmd>.
|
|	SYSTEM - run a process, sending output (if any) to stdout/stderr
|		(system <shell-cmd>)
|		    <shell-cmd> is a string which is sent to shell
|				/bin/sh and is executed as command.
|		    returns	T if the command executed successfully,
|				else returns the integer exit status of
|				<shell-cmd>.
|
|
|        XLISP        UN*X-SPECIFIC FUNCTIONS (FOR WINTERP)       Page 53
|
|
|	FSCANF-FIXNUM - read a fixnum value from a stream using fscanf(3x).
|		(fscanf-fixnum <stream> <format>)
|		    <stream>	a stream object created via OPEN or POPEN.
|				Will give an error for "unnamed streams".
|		    <format>	a format string containing a single
|				conversion directive that will result in
|				an integer valued conversion %d, %u, %o,
|				%x, %ld, %lu, %lo and %lx style conversions 
|				are acceptable for this routine. See the
|				manual page for fscanf(3x) for details.
|		    returns	an integer if fscanf(3x) reports that
|				the conversion specified by <format> 
|				succeeded. Returns NIL if the conversion
|				wasn't successful, or if EOF was reached.
|
|	    WARNING: specifying a <format> that will result in the
|	    conversion of a result larger than sizeof(long) will result in
|	    corrupted memory and core dumps. 
|
|	FSCANF-STRING - read a string value from a stream using fscanf(3x).
|		(fscanf-string <stream> <format>)
|		    <stream>	a stream object created via OPEN or POPEN.
|				Will give an error for "unnamed streams".
|		    <format>	a format string containing a single
|				conversion directive that will result in
|				a string valued conversion. %s, %c, and
|				%[...] style conversions are acceptable for
|				this routine. See the manual page for
|				fscanf(3x) for details.
|		    returns	a string if fscanf(3x) reports that
|				the conversion specified by <format> 
|				succeeded. Returns NIL if the conversion
|				wasn't successful, or if EOF was reached.
|
|	    WARNING: specifying a <scanf-format> that will result in the
|	    conversion of a result larger than 1024 characters will result
|	    in corrupted memory and core dumps.
|
|	FSCANF-FLONUM - read a float from a stream using fscanf(3x).
|		(fscanf-flonum <stream> <format>)
|		    <stream>	a stream object created via OPEN or POPEN.
|				Will give an error for "unnamed streams".
|		    <format>	a format string containing a single
|				conversion directive that will result in
|				a FLONUM valued conversion. %e %f or %g
|				are valid conversion specifiers for this
|				routine. See the manual page for fscanf(3x)
|				for details.
|		    returns	a float if fscanf(3x) reports that
|				the conversion specified by <format> 
|				succeeded. Returns NIL if the conversion
|				wasn't successful, or if EOF was reached.
|
|	    WARNING: specifying a <scanf-format> that will result in the
|	    conversion of a result larger than sizeof(float) will result in
|	    corrupted memory and core dumps.

/******************************************************************************
 * (EXP_SPAWN <executable-filepath> <arg0> [<arg1> [[<arg2>] ...] )
 *	--> returns a STREAM (with no buffering, however)
 *		returns NIL if an error occurs...
 * where
 * <executable-filepath> is a string, the full path and name of the executable.
 * <arg0> is a string corresponding to argv[0] in the spawned executable,
 *        this should typically be the same as <executable-filepath>.
 * <arg-i> are optional string arguments corresponding to argv[i] passed to
 *        the spawned executable.
 *
 * Call EXP_GET_PID after calling EXP_SPAWN to find out process ID.
 * To shut down the subprocess, call CLOSE on the returned STREAM, followed
 * by a call to EXP_WAIT.
 *
 * Prior to calling EXP_SPAWN, if EXP_STTY_INIT is called, the string arg to
 * that function is interpreted in the style of stty(1) arguments as further
 * configuration for any pty used by future spawn commands. For example,
 * exp_stty_init = "sane" repeats the default initialization.
 * 
 * If EXP_STTY_INIT was never called prior to calling EXP_SPAWN, then 
 * the pty is initialized the same way as the user's tty.  When this is not
 * possible (i.e., expect was not started with a controlling terminal), spawn
 * uses the tty settings that correspond to "stty sane".
 *
 * Note: it is ok to write to the EXP_SPAWN-created subprocess with FORMAT,
 * PRINT, PRIN1, PRINC PPRINT, TERPRI, WRITE-CHAR, and WRITE-BYTE.
 * However, one must be very careful in reading from the STREAM created by
 * EXP_SPAWN -- because you can't know how many characters are
 * "ready for reading", you shouldn't use READ, READ-LINE, because they might
 * cause WINTERP to lock-up waiting to read a character that may never arrive.
 * For reading, you should use READ-NONBLOCKING or EXP_EXPECT with a suitable
 * timeout.
 ******************************************************************************/

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
==           Niels Mayer -- netcom!mayer -- mayer@netcom.com               ==
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

From owner-SL-news  Wed Feb 10 05:00:09 1993
Resent-Date: Wed, 10 Feb 1993 10:00:09 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302101502.AA02964@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Feb 1993 09:02:51 -0600
Received: from PO5.ANDREW.CMU.EDU by umnstat.stat.umn.edu; Wed, 10 Feb 1993 09:02:48 -0600
Received: by po5.andrew.cmu.edu (5.54/3.15) id <AA05743@X> for stat-lisp-news@umnstat.stat.umn.edu; Wed, 10 Feb 93 10:02:33 EST
Received: via switchmail; Wed, 10 Feb 1993 10:02:26 -0500 (EST)
Received: from akutaktak.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/service/mailqs/q000/QF.YfSFW4G00WA1M0kUNH>;
          Wed, 10 Feb 1993 10:00:20 -0500 (EST)
Received: from akutaktak.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/usr12/ls2o/.Outgoing/QF.gfSFVue00WA1M1cdJk>;
          Wed, 10 Feb 1993 10:00:10 -0500 (EST)
Received: from mms.0.1.23.MacMail.3.2.CUILIB.3.45.SNAP.NOT.LINKED.akutaktak.andrew.cmu.edu.pmax.ul4
          via MS.5.6.akutaktak.andrew.cmu.edu.pmax_ul4;
          Wed, 10 Feb 1993 10:00:09 -0500 (EST)
Message-Id: <cfSFVtm00WA1I1cd9s@andrew.cmu.edu>
Date: Wed, 10 Feb 1993 10:00:09 -0500 (EST)
From: Lael Schooler <ls2o+@andrew.cmu.edu>
To: stat-lisp-news@umnstat
Subject: Access
Cc: STAT-LISP-NEWS@umnstat
In-Reply-To: <9302100757.AA28031@netcom.netcom.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Lael Schooler <ls2o+@andrew.cmu.edu>



Can somebody give me a pointer to the common lisp version
of lispstat for the Mac. I am having trouble untaring the
version on umn..edu. Is there a binhex/compactor version?


thanks in advance,

Lael

From owner-SL-news  Mon Feb 15 23:37:01 1993
Resent-Date: 15 Feb 1993 16:37:01 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302140651.AA19926@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 14 Feb 1993 00:51:54 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Sun, 14 Feb 1993 00:51:54 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GURD83FU6O8ZLGDK@vx.cis.umn.edu>; Mon, 15 Feb 1993 18:10:42 CDT
Received: by NUSVM (Mailer R2.03B) id 8163; Mon, 15 Feb 93 16:43:26 SST
Date: 15 Feb 1993 16:37:01 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: STREAM TO *STANDARD-OUTPUT*
To: Stat-Lispers <STAT-LISP-NEWS@umnstat>
Message-Id: <01GURD83FU6Q8ZLGDK@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

OK...here's another seemingly trivial thing I want to do that I can't figure
out how to do...
 
I have an input stream...say it's called *g* ... that I have obtained with
(with-open-file (*g* "myfile") ...
and I want to have the contents of myfile appear on *standard-output*
 
Thats all...just "print" the file on the standard output!  Helllpppp!
(Frustated...)

From owner-SL-news  Tue Feb 16 18:08:36 1993
Resent-Date: Tue, 16 Feb 93 17:08:36 +0100
Resent-From: owner-SL-news
Resent-Message-Id: <199302161608.AA21610@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 16 Feb 1993 10:08:57 -0600
Received: from ns3.hq.eso.org by umnstat.stat.umn.edu; Tue, 16 Feb 1993 10:08:42 -0600
Message-Id: <9302161608.AA29986@ns3.hq.eso.org>
Received: from localhost.hq.eso.org by ns3.hq.eso.org (4.1/ eso-1.1)
	id AA29986; Tue, 16 Feb 93 17:08:36 +0100
To: stat-lisp-news@umnstat
Subject: suggestions for next release of Lisp-Stat
Date: Tue, 16 Feb 93 17:08:36 +0100
From: hmadorf@eso.org
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: hmadorf@eso.org

I would appreciate if the graphics would be portable, i.e. run on the Mac
and also under Franz CL on a Sun for instance.

- Hans-Martin Adorf

------------------------------------------------------------------------------
Hans-Martin Adorf				      adorf@eso.org (Internet)
Space Telescope - European Coordinating Facility	 adorf@eso.uucp (UUCP)
European Southern Observatory			  adorf@dgaeso51.bitnet (EARN)
Karl-Schwarzschild-Str. 2				     ESO::ADORF (SPAN)
D-8046 Garching bei Muenchen
F.R. Germany
Phone: +49-89-320 06-261 -- Fax: +49-89-320 06-480
------------------------------------------------------------------------------

From owner-SL-news  Tue Feb 16 21:22:58 1993
Resent-Date: Tue, 16 Feb 1993 21:22:58 GMT
Resent-From: owner-SL-news
Resent-Message-Id: <199302162247.AA22966@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 16 Feb 1993 16:47:48 -0600
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Tue, 16 Feb 1993 16:47:44 -0600
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA20855; Tue, 16 Feb 93 17:47:47 -0500
Received: from statsci.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 174626.8771; Tue, 16 Feb 1993 17:46:26 EST
Received: from arugula by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA12313; Tue, 16 Feb 93 13:22:32 PST
Received: by arugula
	(16.7/16.2) id AA04856; Tue, 16 Feb 93 16:22:02 -0500
Newsgroups: lists.statlisp
Path: almond
From: almond@statsci.com (Russell G. Almond)
Subject: Re: STREAM TO *STANDARD-OUTPUT*
In-Reply-To: ECSFWY%NUSVM.BITNET@vw.cis.umn.edu's message of 15 Feb 93 23:37:01 GMT
Message-Id: <ALMOND.93Feb16132258@bass.statsci.com>
Sender: usenet@statsci.com (Usenet News Account)
Organization: Statistical Sciences, Inc., Seattle, WA USA
References: <01GURD83FU6Q8ZLGDK@vx.cis.umn.edu>
Date: Tue, 16 Feb 1993 21:22:58 GMT
Lines: 77
Apparently-To: lists-statlisp@mailhost
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)

In article <01GURD83FU6Q8ZLGDK@vx.cis.umn.edu> ECSFWY%NUSVM.BITNET@vw.cis.umn.edu (Forrest Young) writes:

   Approved: usenet@statsci.com

   OK...here's another seemingly trivial thing I want to do that I can't figure
   out how to do...

   I have an input stream...say it's called *g* ... that I have obtained with
   (with-open-file (*g* "myfile") ...
   and I want to have the contents of myfile appear on *standard-output*

Try:

(defun cat-to-stream (filename &optional (out-stream *standard-output*))
  (with-open-file (in-stream filename :direction :input)
    (let ((char nil)) ; establish a local variable
      (loop ; until Eof
        (if (setq char (read-char in-stream)) ; will return nil on eof
            (write-char char out-stream)
          (return nil)))))) ; eof, quit.
	

The secret is the fact that #'read-char can be used to test for end of
file.  In particular, it will return nil on eof, thus the if statement
becomes a trap for the loop.

Incidenentally, while I was testing this example, I noticed two "bugs"
in Xlisp.

1) Read-char does not work as advertised in Steele[1984] or from 
(documentation 'read-char 'function).  In particular, it doesn't take
the normal optional arguments.  To get the same behavior in
common-lisp, you would need to say:

  (read-char stream nil nil)  

The first nil tells #'read-char to suppress the error on end-of-file;
the second nil tells #'read-char to return nil on eof (actually, this
is the default value, so it can be omitted).

In Xlisp
                     
> (documentation 'read-char 'function)
"Args: (&optional (stream *standard-input*) (eof-value nil) (recursive-p nil))
Reads a character from STREAM."

Indicating that it should accept what is the third argument in
common-lisp syntax, but not the first.  On the other hand, 
(read-char stream nil) generates an error message (to many arguments).
This is almost certainly a bug, and we cannot override the default
behavior.  On the other hand, in this case the default behavior does
what we want, so there is no difficulty.  Let this be a lesson
however, we can't depend on what will happen at the end of file, so we
need to explicitly check for it.  The default behavior in common-lisp
is to signal an error.

2) Let does not conform to the Common Lisp standard.  In particular,
in Common Lisp I (and many other lisp programmers) use syntax like

(let ((char)) ...)

To set up a local variable, often for use in an implicit or explicit
loop.  This produces an error in Xlisp, instead you need to do:

(let ((char nil)) ...)

This code should port easily to Common Lisp, but it will produce
errors when porting some Common Lisp code into Xlisp.


			Russell Almond			   
Statistical Sciences, Inc.		U. Washington
1700 Westlake Ave., N Suite 500		Statistics, GN-22
Seattle, WA  98109			Seattle, WA  98195
(206) 283-8802				
almond@statsci.com			almond@stat.washington.edu



From kilroy@biostat.washington.edu  Wed Feb 17 11:09:24 1993
Received: from uhura.biostat.washington.edu by umnstat.stat.umn.edu; Wed, 17 Feb 1993 13:10:23 -0600
Received: by uhura.biostat.washington.edu
	(5.64/UW-NDC Revision: 2.21 ) id AA05433; Wed, 17 Feb 93 11:09:26 -0800
From: Steve McKinney <kilroy@biostat.washington.edu>
Message-Id: <9302171909.AA05433@uhura.biostat.washington.edu>
Subject: (let ()) special form in xlisp
To: SL-news-list@umnstat
Date: Wed, 17 Feb 93 11:09:24 GMT
X-Mailer: ELM [version 2.3 PL11]

Russel Almond writes

> 2) Let does not conform to the Common Lisp standard.  In particular,
> in Common Lisp I (and many other lisp programmers) use syntax like
> 
> (let ((char)) ...)
> 
> To set up a local variable, often for use in an implicit or explicit
> loop.  This produces an error in Xlisp, instead you need to do:
> 
> (let ((char nil)) ...)
> 
> This code should port easily to Common Lisp, but it will produce
> errors when porting some Common Lisp code into Xlisp.

To set up local variables I use

(let (char
      (foo 0)) 
    ...)  

i.e. variables to be used locally and not bound to a value (like char)
initially appear without parentheses.

This works in xlisp 

> (let (junk)
    (setq junk "foo")
    (princ junk))
foo"foo"


and Allegro Common Lisp

[1] <cl> (let (junk)
  (setq junk "foo")
  (princ junk))
foo
"foo" 

Common Lips The Language and
Common Lisp The Reference  list the following for "let"

Usage
let ({var | (var value)}*) {decl}* {form}*

suggesting that unbound variables should not be in parentheses.
Such variables are bound to nil in the body of the let form.
Xlisp "let" handling thus appears to be correct.

Sorry to be so nitpicky.  I'm just trying to avoid working on my
dissertation! 

        \`|'/
        (. .)
   ---uuu-U-uuu---
   kilroy was here





From owner-SL-news  Fri Feb 19 03:25:47 1993
Resent-Date: Fri, 19 Feb 93 09:25:47 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199302191525.AA03288@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 19 Feb 1993 09:25:53 -0600
Received: from hermes.stat.wisc.edu by umnstat.stat.umn.edu; Fri, 19 Feb 1993 09:25:49 -0600
Message-Id: <9302191525.AA19959@hermes.stat.wisc.edu>
Received: from localhost by hermes.stat.wisc.edu; Fri, 19 Feb 93 09:25:48 -0600
To: Luke Tierney <luke@umnstat>
Cc: Statistical Lisp Mailing List <stat-lisp-news@umnstat>
Subject: new feature for the next version of xlispstat
Date: Fri, 19 Feb 93 09:25:47 CST
From: kademan@stat.wisc.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kademan@stat.wisc.edu

How about a batch mode for xlispstat in unix?  Or perhaps just a command
line switch that disables X11 graphics.  When I try to run xlispstat this
way I get a "can't connect to x server" error message.

I had thought that this was just an ignorable warning and that xlispstat
could get on with its (non-graphic) job in spite of it but for some reason
the last time I tried it the whole thing failed.

From owner-SL-news  Wed Feb 17 23:29:52 1993
Resent-Date: 17 Feb 1993 16:29:52 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199302220314.AA10216@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 21 Feb 1993 21:14:58 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Sun, 21 Feb 1993 21:14:55 -0600
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GUZXE8EB8094DNVX@vx.cis.umn.edu>; Sun, 21 Feb 1993 21:14:39 CDT
Received: by NUSVM (Mailer R2.03B) id 6289; Wed, 17 Feb 93 16:35:29 SST
Date: 17 Feb 1993 16:29:52 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: MAC DISPLAY WINDOWS
To: Stat Lispers <STAT-LISP-NEWS@umnstat>
Message-Id: <01GUZXE8EB8294DNVX@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

Well...thanks for the answer to my previous question, and here's another, to
which I'm afraid the answer is "No".
 
Question:  On the Macintosh, is there any way to reposition the position of a
           display window (i.e., an instance of display-window-proto) via
           lisp statements that does the equivalent of moving the vertical
           scroll bar about? I have opened such a window, and have pasted a
           stream into it via :paste-stream, and the window is positioned such
           that the bottom of the stream is showing.  I want the top to show.
           Is there a way to do this via Lisp?
 
Thanks in advance...Forrest Young

From owner-SL-news  Wed Feb 24 03:01:36 1993
Resent-Date: Wed, 24 Feb 93 11:01:36 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199302241902.AA19867@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 24 Feb 1993 13:02:16 -0600
Received: from gandalf.Berkeley.EDU by umnstat.stat.umn.edu; Wed, 24 Feb 1993 13:02:13 -0600
Received: from toad.Berkeley.EDU by gandalf.Berkeley.EDU (4.1/SMI-4.1)
	id AA05093; Wed, 24 Feb 93 11:01:36 PST
Date: Wed, 24 Feb 93 11:01:36 PST
From: neville@gandalf.Berkeley.EDU (Padraic Neville)
Message-Id: <9302241901.AA05093@gandalf.Berkeley.EDU>
To: luke@umnstat
Subject: Xlisp enhancements
Cc: stat-lisp-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: neville@gandalf.Berkeley.EDU (Padraic Neville)

I would like to be able to dynamically load a C routine and
pass a character string to it.  Eg., 
(dyn-load "foo.o")
(call-cfun "foo"  "pass this string to foo")

	-Padraic Neville

From owner-SL-news  Fri Mar 12 10:40:53 1993
Resent-Date: Fri, 12 Mar 93 15:40:53 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199303122045.AA13697@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 12 Mar 1993 14:45:57 -0600
Received: from unx.al.alcoa.com ([132.226.16.105]) by umnstat.stat.umn.edu; Fri, 12 Mar 1993 14:41:25 -0600
Received: by unx.al.alcoa.com (5.57/Ultrix3.0-C)
	id AA15180; Fri, 12 Mar 93 15:40:53 -0500
Date: Fri, 12 Mar 93 15:40:53 -0500
From: daniel@unx.al.alcoa.com (David Daniel)
Message-Id: <9303122040.AA15180@unx.al.alcoa.com>
To: stat-lisp-news@umnstat
Subject: xlisp suggestions
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: daniel@unx.al.alcoa.com (David Daniel)

I've already made some suggestions about xlisp, but I forgot one
that I'd like to add.  This only pertains to the Macintosh
version, and I'm not sure how feasible it is.  I would like to
see a better editor.  My preference would be to see MPW used
but I haven't a clue how this could be worked out - I see two
problems with this:  (1) MPW is commercial (although a tool
can be distributed without the MPW shell); and (2) how could
it be implemented under MPW (perhaps as a tool).  A more 
realistic idea might be to enhance the editor functions of the
current version.  I don't think there is any need to list all
the short-comings of the editor on the Mac, but if this request
is considered and a list of suggested improvements is desired,
then I'd be happy to list what I think would help improve the
editor.

As always, thanks to those who have made such a marvelous tool
as XLisp-Stat available.

-David Daniel
daniel@unx.al.alcoa.com


From dulz@ICSI.Berkeley.EDU  Thu Apr  1 11:14:09 1993
Received: from icsia.ICSI.Berkeley.EDU by umnstat.stat.umn.edu; Thu, 1 Apr 1993 21:14:14 -0600
Received: from icsib74.ICSI.Berkeley.EDU by icsia.ICSI.Berkeley.EDU (4.1/HUB$Revision: 1.17 $)
	id AA29897; Thu, 1 Apr 93 19:14:10 PST
From: dulz@ICSI.Berkeley.EDU (Winfried Dulz)
Received: by icsib74.ICSI.Berkeley.EDU (Sun-4.1/CLIENT$Revision: 1.4 $)
	id AA02280; Thu, 1 Apr 93 19:14:09 PST
Date: Thu, 1 Apr 93 19:14:09 PST
Message-Id: <9304020314.AA02280@icsib74.ICSI.Berkeley.EDU>
To: SL-news-list@umnstat
Subject: Some experiments with &aux and dynamic symbol creation
Cc: dulz@ICSI.Berkeley.EDU


Browsing through the LISP-STAT news list I found

> I think your application is one of the lucky 2.5%.  The problem is
> when you create your new symbol, and you then want to set its value,
> you need to bind the value of the symbol which is stored in a local
> variable.  This is a job for "set".  Thus
> 
> (defun make-new-data-var (name data)
>   "Makes a new symbol with print-name <name> and value <data>"
>    ;(declare (type String name) (type T data)
>    ;         (:returns (type Symbol)))
>  (let ((new-symbol (intern name)))
>    (set new-symbol data)
>    new-symbol))
> 

written by Russell Almond on Tue, 9 Jun 92 as part of a longer explanation with
respect to read and eval time bindings of symbols. So I tried

=============
1. Experiment
=============

> (defun foo  ()
  (let*
   ((foo-list '(symbol-name "symbol-value"))
    (foo-symbol (intern (string (first foo-list)))))
    (print foo-symbol)
    (print symbol-name)
    (set foo-symbol (second foo-list))
    (print foo-symbol))
    (print symbol-name)) 

but by calling

> (foo)
SYMBOL-NAME error: unbound variable - SYMBOL-NAME
NIL

Also

> symbol-name
error: unbound variable - SYMBOL-NAME

=============
2. Experiment
=============

The next I did was redefining foo only in the parameter description part -
the rest remained the same

> (defun foo  (&aux symbol-name)
  (let*
   ((foo-list '(symbol-name "symbol-value"))
    (foo-symbol (intern (string (first foo-list)))))
    (print foo-symbol)
    (print symbol-name)
    (set foo-symbol (second foo-list))
    (print foo-symbol))
    (print symbol-name)) 

and calling

> (foo)
SYMBOL-NAME 
NIL 
SYMBOL-NAME 
NIL T

Also

> symbol-name
"symbol-value"

=============
3. Experiment
=============

After this I retried my first experiment, i.e

> (defun foo  ()
  (let*
   ((foo-list '(symbol-name "symbol-value"))
    (foo-symbol (intern (string (first foo-list)))))
    (print foo-symbol)
    (print symbol-name)
    (set foo-symbol (second foo-list))
    (print foo-symbol))
    (print symbol-name)) 

but now I got another result

> (foo)
SYMBOL-NAME 
"symbol-value" 
SYMBOL-NAME 
"symbol-value" T

and again

> symbol-name
"symbol-value"

=============================== End of experiments ===========================

The last result is what I supposed to see as the result of the 1. experiment.
So what are the dependencies between symbols and the &aux statement? For me,
it seems very strange that the local &aux will have any consequences for later
bindings and results.

Is there anybody who will explain me my troubles?	Winfried Dulz

From almond@statsci.com  Fri Apr  2 03:45:35 1993
Received: from spool.UU.NET by umnstat.stat.umn.edu; Fri, 2 Apr 1993 14:19:03 -0600
Received: by spool.UU.NET with UUCP (5.61/UUNET-uucp-primary)
	id AA07459; Fri, 2 Apr 93 15:18:32 -0500
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA25838; Fri, 2 Apr 93 11:41:09 PST
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA09319; Fri, 2 Apr 93 11:45:35 PST
Date: Fri, 2 Apr 93 11:45:35 PST
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9304021945.AA09319@bass.statsci.com>
To: dulz@ICSI.Berkeley.EDU
Cc: SL-news-list@umnstat
In-Reply-To: Winfried Dulz's message of Thu, 1 Apr 93 19:14:09 PST <9304020314.AA02280@icsib74.ICSI.Berkeley.EDU>
Subject: Some experiments with &aux and dynamic symbol creation


As I seem to have confused you, I will try to straighten you out
again.

Part of the problem is that the global state of the system is changing
as you execute the three programs.  In particular, the state of the
symbol SYMBOL-VALUE changes from the special state unbound, to bound
to nil to bound to the new global value.

Lets go through your function a little more slowly and I think we will
spot the problem.

(defun foo  ()
  (let* ((foo-list '(symbol-name "symbol-value"))
         (foo-symbol (intern (string (first foo-list)))))
    ;; Note1:  This is the almost universal way to code let statements.
    ;; At this point FOO-LIST is lexically bound to (SYMBOL-NAME
    ;; "symbol-value") and FOO-SYMBOL is bound to SYMBOL-NAME.
    ;; SYMBOL-NAME is not dynamically bound, so it's value is its
    ;; global binding
    (print foo-symbol)
    ;; FOO-SYMBOL is bound to SYMBOL-NAME
    (print symbol-name)
    ;; SYMBOL-NAME is unbound; this should generate an error.
    (set foo-symbol (second foo-list))
    ;; Never get here.
    (print foo-symbol))
    (print symbol-name)) 

In the second case, the &aux keyword provides a lexical binding for
SYMBOL-NAME; therefore the print statement doesn't produce an error.

Thus experiment two is equivalent to:
(defun foo  ()
  (let ((symbol-value nil)) ;; Note NIL is implicit.
  (let* ((foo-list '(symbol-name "symbol-value"))
         (foo-symbol (intern (string (first foo-list)))))
    ;; As before, FOO-LIST is lexically bound to (SYMBOL-NAME
    ;; "symbol-value") and FOO-SYMBOL is bound to SYMBOL-NAME.
    ;; SYMBOL-NAME is lexically bound to nil.
    (print foo-symbol)
    ;; FOO-SYMBOL is bound to SYMBOL-NAME
    (print symbol-name)
    ;; SYMBOL-NAME is lexically bound to NIL.
    (set foo-symbol (second foo-list))
    ;; Set modifies global value of FOO-SYMBOL binding it to "symbol-value"
    (print foo-symbol))
    (print symbol-name))
    ;; SYMBOL-NAME is still lexically bound to NIL.  As SYMBOL-NAME is
    ;; not a special variable, its lexical binding masks its gobal
    ;; binding.


At this point SYMBOL-NAME is globally bound to "symbol-value" as you wanted.

Note, #'set only effects the GLOBAL binding, not the lexical one.  I
didn't realize that and I needed to look it up.  Setq and Setf effects
the lexical binding.  I'm not sure what DEF does, so I'll try an
experiment:

> (macroexpand-1 '(def x 3))
(UNLESS (AND *ASK-ON-REDEFINE* (BOUNDP (QUOTE X))
             (NOT (Y-OR-N-P "Variable has a value. Redefine?")))
   (PUSHNEW (QUOTE X) *VARIABLES*)
   (SETF X 3)
   (QUOTE X))

Ah, it uses setf so it affects the lexical (local) value.

Now, when you run experiment 3; SYMBOL-VALUE does have a global value,
so it is not unbound and you don't generate the error message.


Another note.  In XLISP-STAT, unlike most other lisps, the debugger is
turned off by default.  Execute the top level form (debug).  This will
turn on the debugger.  Now execute (baktrace) when you get the error
message.  This will show you where the error is.

On last piece of advice, there is a function, #'boundp which will tell
you whether or not a function is bound.

Thus (if (boundp 'symbol-value) (print symbol-value)
         (format nil "~S is unbound" 'symbol-value))
would fix up the bug in your first program.

	--Russell Almond






From owner-SL-news  Fri Apr  9 05:06:08 1993
Resent-Date: Fri, 09 Apr 93 10:06:08 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199304091506.AA20793@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 9 Apr 1993 10:06:25 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Fri, 9 Apr 1993 10:06:12 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA07158; Fri, 9 Apr 93 10:06:10 -0500
Message-Id: <9304091506.AA07158@sci234e.mrs.umn.edu>
To: stat-lisp-news@umnstat
Subject: A question on map
Date: Fri, 09 Apr 93 10:06:08 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>

I haven't been able to figure this out.  

I have a list of strings, all in upper case. Can someone give me a neat way
to convert the strings to lowercase, except for the the first letter.

Example   (def x (map 'list #'string (color-symbols))) yields the list

          ("YELLOW" "CYAN" "RED" "BLACK" "BLUE" "GREEN" "MAGENTA" "WHITE")

I want these converted to 
          ("Yellow" "Cyan" "Red" "Black" .....                    "White")

Thanks.

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From owner-SL-news  Fri Apr  9 05:09:55 1993
Resent-Date: Fri, 09 Apr 93 10:09:55 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199304091509.AA20806@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 9 Apr 1993 10:09:59 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Fri, 9 Apr 1993 10:09:56 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA07170; Fri, 9 Apr 93 10:09:55 -0500
Message-Id: <9304091509.AA07170@sci234e.mrs.umn.edu>
To: stat-lisp-news@umnstat
Subject: Re: A question on map (More on my question).
Date: Fri, 09 Apr 93 10:09:55 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>


I forgot to mention that my problem is that I am unable to pass on the
keyword argument ":start 1" to string-downcase while using map.

Therefore the general question is, how can one pass keyword arguments
to a function that is being mapped across a list or vector.

Thanks.
---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From owner-SL-news  Fri Apr  9 05:29:54 1993
Resent-Date: Fri, 09 Apr 93 10:29:54 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199304091529.AA20868@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 9 Apr 1993 10:29:57 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Fri, 9 Apr 1993 10:29:55 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA07209; Fri, 9 Apr 93 10:29:54 -0500
Message-Id: <9304091529.AA07209@sci234e.mrs.umn.edu>
To: stat-lisp-news@umnstat
Subject: Re: A question on map. (More on my question).
Date: Fri, 09 Apr 93 10:29:54 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>


I found an example in Tierney's book to answer my question.  
One just needs to use a lambda expression with the keyword in the
definition of the lambda function.

(map 'list #'(lambda (x) (string-downcase x :start 1)) 
	(map 'list #'string (color-symbols))) 

works.

Thanks for your time.
---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From owner-SL-news  Mon Apr 12 07:24:04 1993
Resent-Date: Mon, 12 Apr 93 12:24:04 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199304121724.AA00843@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 12 Apr 1993 12:24:09 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Mon, 12 Apr 1993 12:24:05 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA11113; Mon, 12 Apr 93 12:24:04 -0500
Message-Id: <9304121724.AA11113@sci234e.mrs.umn.edu>
To: stat-lisp-news@umnstat
Subject: A question.
Date: Mon, 12 Apr 93 12:24:04 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>


Is there an wasy way to make a graph-window-proto modal?  
I don't want the modal mode to create any kind of windows on
its own.

The reason is that I have written a color package which lets a 
person create colors. 

However, I would like to use it in the following fashion. 
A user would just call a function like (get-color-choice) and
this should return the choice the person made.  Until then,
the program should direct all input to the window.  I saw 
the Lisp-Stat source to see how the modal-dialog message was 
implemented, but I couldn't understand all of it.  

I include the code so that you can see what it does.  Be sure
to check the menu for some goodies.

I will put this on statlib once I get it all completed.

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

**********************  Cut Here ***********************
;;;
;;; Color.lsp   lets users experiment with colors.
;;; Copyright (C) 1993 B. Narasimhan
;;;
;;;    This program 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 2 of the License, or
;;;    (at your option) any later version.
;;;
;;;    This program 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
;;;    along with this program; if not, write to the Free Software
;;;    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

(defproto color-choice-window-proto '(loc cbox-side color red green blue) 
  () graph-window-proto)

(defmeth color-choice-window-proto :modal-window (&optional (remove t))
  (send self :modal-window remove))

(defmeth color-choice-window-proto :modal-window-return (value)             
  (let ((target (send (slot-value 'modal-dialog) 
		      :slot-value 'modal-throw-target)))
    (if target (throw target value))))

(defmeth color-choice-window-proto :modal-dialog-return (value)             
"Method Args: (value)
Ends modal dialog loop and has :modal-dialog return VALUE."
  (let ((target (slot-value 'modal-throw-target)))
    (if target (throw target value))))

(defmeth color-choice-window-proto :isnew ()

    (setf (slot-value 'color) 'black)
    (send self :delete-method :do-motion)
    (send self :title "Color Picker")
    (setf (slot-value 'red) 0)
    (setf (slot-value 'green) 0)
    (setf (slot-value 'blue) 0)
    (let* ((menu (send menu-proto :new "Menu"))
	   (custom-color-item (send menu-item-proto :new "Custom Color"
				    :action
				    #'(lambda () (create-rgb-sliders self))))
	   (name-color-item (send menu-item-proto :new "Rename Color"
				  :action
				  #'(lambda () 
				      (let ((name 
					     (get-value-dialog 
					      "Enter new name" 
					      :initial (slot-value 'color))))
					(when name
					      (free-color (slot-value 'color))
					      (setf (slot-value 'color) 
						    (select name 0))
					      (make-color 
					       (slot-value 'color)
					       (slot-value 'red)
					       (slot-value 'green)
					       (slot-value 'blue))
					      (send self :redraw))))))
	   (free-color-item (send menu-item-proto :new "Free color"
				  :action
				  #'(lambda () 
				      (free-color (slot-value 'color))
				      (setf (slot-value 'color) 
					    (select (color-symbols) 0))
				      (send self :redraw)))))
				      
      
      (send menu :append-items custom-color-item name-color-item
	    free-color-item)
      (send self :menu menu))
    (call-next-method :show nil)
    (send self :redraw)
    (send self :show-window))
    
(defmeth color-choice-window-proto :redraw ()
  (let* ((ascent (send self :text-ascent))
	 (descent (send self :text-descent))
	 (cbox-side (+ ascent descent))
	 (em (send self :text-width "m"))
	 (row-sep (round (* .5 cbox-side)))
	 (col-sep (* 2 em))
	 (colors (color-symbols))
	 (color-names (map 'list #'(lambda (x) (string-downcase x :start 1))
			   (map 'list #'string colors)))
	 (max-name-width (max (map 'list #'(lambda (x)
					     (send self :text-width x))
				   color-names)))
	 (item-width (+ cbox-side em max-name-width))
	 (y-offset (+ 50 row-sep))
	 (n (length colors))
	 (c (floor (sqrt n)))
	 (r (floor (/ n c)))
	 (ww (+ (* c (+ col-sep item-width)) col-sep))
	 (wh (+ y-offset (if (eql (* c r) n)
			     (* r (+ row-sep cbox-side))
			   (* (+ r 1) (+ row-sep cbox-side))) row-sep))
	 (tmp nil))
    
    (setf (slot-value 'cbox-side) cbox-side)
    (send self :size ww wh)    
    (send self :draw-color 'white)
    (send self :paint-rect 0 0 ww wh)
    (setf (slot-value 'cbox-side) cbox-side)
    (dotimes (i n)
             (let ((y (+ (* (floor (/ i c)) (+ cbox-side row-sep)) 
			 row-sep y-offset))
		   (x (+ (* (mod i c) (+ item-width col-sep)) col-sep)))
               (setf tmp
		     (append tmp (list (list x y))))))
    (setf (slot-value 'loc) tmp)
    (send self :draw-color (slot-value 'color))
    (send self :paint-rect (- (round (* .5 ww)) 50) row-sep 100 50)
    (send self :draw-color 'black)
    (dotimes (j n)
	     (let* ((myloc (select tmp j))
		    (x (first myloc))
		    (name (select color-names j))
		    (y (second myloc)))
	       (send self :frame-rect x y cbox-side cbox-side)
	       (send self :draw-text name (+ x cbox-side em) (+ y ascent) 0 0)
	       (when (eql (select colors j) (slot-value 'color))
		     (send self :draw-line x y (+ x cbox-side) (+ y cbox-side))
		     (send self :draw-line x (+ y cbox-side) (+ x cbox-side) y))))))

(defmeth color-choice-window-proto :do-click (x y m1 m2)
  (let* ((loc (slot-value 'loc))
	 (box-side (slot-value 'cbox-side))
	 (n (length (slot-value 'loc)))
	 (val (catch 'my-click
		(dotimes (j n)
			 (let* ((myloc (select loc j))
				(left-x (first myloc))
				(bot-y (second myloc))
				(rt-x (+ left-x box-side))
				(top-y (+ bot-y box-side)))
			   (if (and (< left-x x rt-x) (< bot-y y top-y))
			       (throw 'my-click j)))))))
    (when val
	  (setf (slot-value 'color) (select (color-symbols) val))
	  (send self :redraw))))

(defun create-rgb-sliders (w) 
  (let* ((r-text (send text-item-proto :new "Red Intensity"))
	 (r-value (send text-item-proto :new "" :text-length 5))
	 (r-scroll (send interval-scroll-item-proto :new
			 (list 0 1)
			 :points 256
			 :text-item r-value
			 :action #'(lambda (x)
				     (send w :change :red x))
			 :initial 0))
	 
	 (g-text (send text-item-proto :new "Green Intensity"))
	 (g-value (send text-item-proto :new "" :text-length 5))
	 (g-scroll (send interval-scroll-item-proto :new
			 (list 0 1)
			 :points 256
			 :text-item g-value
			 :action #'(lambda (x)
				     (send w :change :green x))
			 :initial 0))
	 
	 (b-text (send text-item-proto :new "Blue Intensity"))
	 (b-value (send text-item-proto :new "" :text-length 5))
	 (b-scroll (send interval-scroll-item-proto :new
			 (list 0 1)
			 :points 256
			 :text-item b-value
			 :action #'(lambda (x)
				     (send w :change :blue x))
			 :initial 0))
	 (d (send dialog-proto :new (list (list r-text r-value) r-scroll
					  (list g-text g-value) g-scroll
					  (list b-text b-value) b-scroll))))
    (send w :add-subordinate d)))

	
(defmeth color-choice-window-proto :change (&key red green blue)
  (if red (setf (slot-value 'red) red))
  (if green (setf (slot-value 'green) green))
  (if blue (setf (slot-value 'blue) blue))
  (let ((ww (first (send self :size)))
	(row-sep (round (* .5 (slot-value 'cbox-side)))))
    (make-color 'custom (slot-value 'red) 
		(slot-value 'green) (slot-value 'blue))
    (setf (slot-value 'color) 'custom))
  (send self :redraw))
    
(defmeth color-choice-window-proto :give-rgb-values ()
  (parse-color (slot-value 'color)))



(def z (send color-choice-window-proto :new))


From owner-SL-news  Fri May  3 22:12:26 1993
Resent-Date: 03 May 1993 15:12:26 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199305030714.AA01757@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 3 May 1993 02:14:41 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Mon, 3 May 1993 02:14:38 -0500
Received: from NUSVM.BITNET (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GXQ0AD6MS09AQBFF@vx.cis.umn.edu>; Mon, 3 May 1993 02:14:40 CDT
Received: by NUSVM (Mailer R2.03B) id 7869; Mon, 03 May 93 15:15:52 SST
Date: 03 May 1993 15:12:26 +0700 (SST)
From: forrest young <ECSFWY@NUSVM.BITNET>
Subject: ADDING ELEMENT TO LIST
To: stat-lispers <STAT-LISP-NEWS@umnstat>
Message-Id: <01GXQ0AD6MS29AQBFF@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: forrest young <ECSFWY@NUSVM.BITNET>

Oftentimes I find I want to do the following simple thing:  Add one element
to a list, where if the list is nil, a one element list results.

I don't know a simple way to do this (simple: using an existing function).
I have written a function to do it, but it involves let*, cond, etc.  There
must be a simple function but I can't figure out what it is.  Thanks in advance

From owner-SL-news  Mon May  3 03:29:22 1993
Resent-Date: Mon, 3 May 93 10:26:35 WETDST
Resent-From: owner-SL-news
Resent-Message-Id: <199305030829.AA01977@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 3 May 1993 03:29:22 -0500
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Mon, 3 May 1993 03:28:53 -0500
Received: from libiya.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA14006; Mon, 3 May 93 10:34:00 +0100
Message-Id: <9305030934.AA14006@io.upf.esupf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA07639; Mon, 3 May 93 10:26:36 +0100
From: Frederic Udina <udina@upf.es>
Subject: Re: ADDING ELEMENT TO LIST
To: ECSFWY%NUSVM.BITNET@vx.cis.umn.edu
Date: Mon, 3 May 93 10:26:35 WETDST
Cc: stat-lisp-news@umnstat
In-Reply-To: <01GXQ0AD6MS29AQBFF@vx.cis.umn.edu>; from "forrest young" at May 03, 93 3:12 pm
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

~~
~~Oftentimes I find I want to do the following simple thing:  Add one element
~~to a list, where if the list is nil, a one element list results.
~~
~~I don't know a simple way to do this (simple: using an existing function).
~~I have written a function to do it, but it involves let*, cond, etc.  There
~~must be a simple function but I can't figure out what it is.  Thanks in advance
~~

If it is good for you, the simplest is to add the element at the front of
the list with cons:

> (cons 3 '(1 2))
(3 1 2)
> (cons '(1 2) '(8 9))
((1 2) 8 9)
> 

But if you want to add it at the end (you can of course reverse the resulting list) you can use append

> (append '(1 2 3 4) (list 5))
(1 2 3 4 5)
> (append nil (list 5))
(5)

The problem with append (for me) is that if your element to be added is itself
a list, its elements will be added, not the list itself:

> (append '(1 2 3) '(7 8 9))
(1 2 3 7 8 9)


Can this help you?



Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172

From owner-SL-news  Mon May  3 08:33:42 1993
Resent-Date: Mon, 3 May 93 15:33:42 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <199305032243.AA05151@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 3 May 1993 17:43:16 -0500
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Mon, 3 May 1993 17:43:12 -0500
Received: from spool.uu.net (via localhost.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA27433; Mon, 3 May 93 18:43:11 -0400
Received: from statsci.UUCP by spool.uu.net with UUCP/RMAIL
	(queueing-rmail) id 184238.18076; Mon, 3 May 1993 18:42:38 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA14982; Mon, 3 May 93 15:33:05 PDT
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA12236; Mon, 3 May 93 15:33:42 PDT
Date: Mon, 3 May 93 15:33:42 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9305032233.AA12236@bass.statsci.com>
To: stat-lisp-news@umnstat
In-Reply-To: forrest young's message of 03 May 1993 15:12:26 +0700 (SST) <199305030714.AA01757@umnstat.stat.umn.edu>
Subject: ADDING ELEMENT TO LIST
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)




This is such a common occurance in LISP, that there are some special
macros to deal with it.  Cons is the most natural way to extend a
list, but the problem is that you usually need to update a pointer to
a list.  For example, you have a variable X which store a list, and
you want to update the variable as well as extending the list.  It
could be a generalized variable as well, for example (slot-value
'dependents).  


Actually, there are two contexts in which this arrives.  One is that
you want to maintain a list of any old items you don't care if there
are repeats.  In this situation, you want to use the macro (push).
Its syntax is (push <datum> <place>).  <place> is a generalized
variable form suitable for (setf) (in fact the push macro extends to
an appropriate call to the setf special form).  This updates place by
extending the list and returns the extended list.

For example:
> (send myobj :list)
(A B)
> (push 'c (send myobj :list))
(C A B)


The second context is when you want to maintain a list of unique
items.  In this case you can use the macro (pushnew).  Its syntax is
the same as push.  However, it will not add duplicate objects.  Thus:

> (pushnew 'd (send myobj :list))
NIL				 ; This is a bug in XLISP-STAT
			         ; according to the draft ANSI report
				 ; (page 14-54) pushnew should return
				 ; the new list
> (send myobj :list)
(D C A B)
> (pushnew 'd (send myobj :list))
NIL
> (send myobj :list)
(D C A B)


Removing items from the list is easy in the first context, but much
more difficult in the second.  If you just want to remove the first
item from the list, (pop <place>) will do the job for you.  This
removes the first item from the list, destructively modifying place
and returning the result.  Unfortunately, pop is not supplied with
XLISP-STAT (XLISP is a Common LISP subset, often you need to look
things up in Steele[1984] and then experiment to see if they are in
XLISP.)  Therefore, lets define it.  As its <place> argument has
special evaluation rules associated with it, this will be a macro not
a function.

(defmacro pop (place)
  "Destructively remove the first element from the list in place and
return the (old) first element."
  (let ((temp (gensym))) ; make sure that our special variable
			 ; doesn't clopper anything else.
    `(let ((,temp ,place))
       (setf ,place (cdr ,temp))  ; Note (cdr NIL) ==> NIL
       (car ,temp)))) 		  ; Note (car NIL) ==> NIL

Lets try it out.

First, a test of the macro
> (macroexpand '(pop (fn x)))
(LET ((G6 (FN X))) (SETF (FN X) (CDR G6)) (CAR G6))

Now on our example.

> (pop (send myobj :list))
D
> (send myobj :list))
(C A B)

The other case corresponds to the need to remove any item from the
list.  There are two ways you can do this with #'delete which
destructively modiefies the list to get rid of the unwanted element  
an item from a list and with #'remove which produces a copy of the
list with the item removed.  The difference comes in whether or not
some other place shares the same list structure.  For example,

(setf x '(a b c))
(setf y x)		

At this point X and Y share the same list structure.  Destructive
modifications made to X may (or may not) influence Y.

Thus, after (setf x (remove b x)) the state of Y is unchanged and x is
bound to a new list (A C).  After (setf x (delete b x)) the state of Y
is unknown  (it may or may not be equal to '(A C)).  Delete does the
deletion in the most efficient way and remove does it in the safest
way.  On the other hand, if you used

(setf x '(a b c))
(setf y (copy-list x))

Then it would be safe (and more efficient) to use delete.

Because the form (setf <place> (delete <item> <place>)) is so common,
I like to define a macro for it.  Thus,

(defmacro deletef (item place)
  `(setf ,place (delete ,item ,place)))

(defmacro removef (item place)
  `(setf ,place (remove ,item ,place)))


Finally, you will notice that in my example, I was using (send <obj>
<slot>) as the place form.  This is not a supported setf method
(although #'slot-value is).  Therefore I needed to define a new setf
method.  The easy way to do this is describe on page 154--155 of the
LISP-STAT book.

(defun set-send! (obj slot data)
   "Assumes that the set method follows the convention
    (send <obj> <slot> <new-value>)"
   (send obj slot data))

(defsetf send set-send!)


I hope this is of some help.


			Russell Almond			   
Statistical Sciences, Inc.
1700 Westlake Ave., N Suite 500, Seattle, WA  98109		
(206) 283-8802	 FAX:  (206) 283-8691  Email: almond@statsci.com	



[I've tried sending this to a different address at UMN, hopefully they
won't duplicate my message 100 or so times.]


From owner-SL-news  Sat May 11 22:44:49 1993
Resent-Date: 11 May 1993 15:44:49 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199305110757.AA04833@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 11 May 1993 02:57:59 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Tue, 11 May 1993 02:57:56 -0500
Received: from NUSVM.NUS.SG (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GY1854IHYO9GVAWT@vx.cis.umn.edu>; Tue, 11 May 1993 02:58:13 CDT
Received: from NUSVM.NUS.SG (NJE origin ECSFWY@NUSVM) by NUSVM.NUS.SG (LMail
 V1.1d/1.7f) with RFC822 id 3771; Tue, 11 May 1993 15:58:57 +0800
Date: 11 May 1993 15:44:49 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: ANOTHER SIMPLE QUESTION
To: Stat-Lispers <STAT-LISP-NEWS@umnstat>
Message-Id: <01GY1854IHYQ9GVAWT@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

First...thanks to Russell for such a complete reply to my previous (incomplete)
question.  Several other people replied suggesting that I add an element to
a list by using (append ...) which, of course, I know about.  But, what I
want to do (stating this completely, this time) is add an element that can be
whatever (a list, a list-of-lists, a matrix, a character string ... whatever)
so that it's nature is preserved. In particular, if I have a list-of-lists
and I want to add it to a list of whatever kinds of elements, then I get
a new element added that is the list-of-lists.  AND, I forgot to say in my
previous note, I want to add the new whatever-element to the END of my existing
list (which might be nil).  So, Russell's suggestion of using (push) comes
close, but adds the whatever-element to the beginning of the list.  And
(reverse (push whatever-element list)) doesn't work unless I change this to
(setf list (reverse (push whatever-element list))), which is much simpler than
I was able to do this before, but still seems a bit inelegant.

SECOND:  An anoying aspect of Lisp-Stat is that many methods need a series of
arguments rather than a list of arguments, whereas they return a list of the
arguments.  If, for example, I have two windows and I want to make the
second window have the same x-axis characteristics as the first, then I can't
say:
(send second-window :x-axis (send first-window :x-axis))
because the method :x-axis needs a set of seperate arguments, not the list
returned by the method.  So I end up doing something like:
(send second-window :x-asis (first (send first-window :x-axis))
                            (second (send first-window :x-axis))
                            (third (send first-window :x-axis)))
which is clearly not good.  QUESTION:  How can I convert the list
(a b c d)
into just a set of values
a b c d
?  Is there anyway to do this?  Or, is there a better solution to my problem?

Thanks ...

From owner-SL-news  Tue May 11 12:10:22 1993
Resent-Date: Tue, 11 May 1993 11:10:22 +0100 (BST)
Resent-From: owner-SL-news
Resent-Message-Id: <199305111012.AA05140@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 11 May 1993 05:12:46 -0500
Received: from cheviot.ncl.ac.uk by umnstat.stat.umn.edu; Tue, 11 May 1993 05:12:03 -0500
Received: from tuda.ncl.ac.uk by cheviot.ncl.ac.uk id <AA16672@cheviot.ncl.ac.uk>
  (5.65cVUW/NCL-CMA.1.35 for <STAT-LISP-NEWS@umnstat.stat.umn.edu>) with SMTP; Tue, 11 May 1993 11:11:54 +0100
Date: Tue, 11 May 1993 11:10:22 +0100 (BST)
From: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Sender: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Reply-To: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Subject: Re: ANOTHER SIMPLE QUESTION
To: Forrest Young <ECSFWY%NUSVM.BITNET@vx.cis.umn.edu>
Cc: Stat-Lispers <STAT-LISP-NEWS@umnstat>
In-Reply-To: <01GY1854IHYQ9GVAWT@vx.cis.umn.edu>
Message-Id: <Pine.3.05.9305111121.A18049-9100000@tuda>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>

For the second question,  'apply' could be used in conjuction
with lambda expressions:-

(apply #'(lambda (a b c d) (send second-window :x-axis a b c d))
       (send first-window :x-axis))

not particularly elegant,  but it saves several :x-axis
messages to first-window.


Chris Brunsdon 











From owner-SL-news  Tue May 11 07:31:18 1993
Resent-Date: Tue, 11 May 93 14:28:22 WETDST
Resent-From: owner-SL-news
Resent-Message-Id: <199305111231.AA05471@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 11 May 1993 07:31:18 -0500
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Tue, 11 May 1993 07:30:47 -0500
Received: from libiya.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA02496; Tue, 11 May 93 14:36:01 +0100
Message-Id: <9305111336.AA02496@io.upf.esupf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA11370; Tue, 11 May 93 14:28:23 +0100
From: Frederic Udina <udina@upf.es>
Subject: Re: ANOTHER SIMPLE QUESTION
To: ECSFWY%NUSVM.BITNET@vx.cis.umn.edu
Date: Tue, 11 May 93 14:28:22 WETDST
Cc: stat-lisp-news@umnstat (lisp stat list)
In-Reply-To: <01GY1854IHYQ9GVAWT@vx.cis.umn.edu>; from "Forrest Young" at May 11, 93 3:44 pm
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>


hello:

about your second question, my language is

(apply #'send 2nd-window :x-axis (send 1st-window :x-axis))

It works only if the last expression (send ... axis) is a list.

can this help?


frederic udina


From owner-SL-news  Tue May 11 04:15:51 1993
Resent-Date: Tue, 11 May 93 11:15:51 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <199305111844.AA06954@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 11 May 1993 13:44:28 -0500
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Tue, 11 May 1993 13:44:23 -0500
Received: from spool.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA12832; Tue, 11 May 93 14:44:20 -0400
Received: from statsci.UUCP by spool.uu.net with UUCP/RMAIL
	(queueing-rmail) id 144242.19640; Tue, 11 May 1993 14:42:42 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.34)
	id AA13978; Tue, 11 May 93 11:15:03 PDT
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA06214; Tue, 11 May 93 11:15:51 PDT
Date: Tue, 11 May 93 11:15:51 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9305111815.AA06214@bass.statsci.com>
To: ECSFWY%NUSVM.BITNET@vx.cis.umn.edu
Cc: Stat-Lisp-news@umnstat
In-Reply-To: Forrest Young's message of 11 May 1993 15:44:49 +0700 (SST) <199305110757.AA04833@umnstat.stat.umn.edu>
Subject: ANOTHER SIMPLE QUESTION
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)


  But, what I
  want to do (stating this completely, this time) is add an element that can be
  whatever (a list, a list-of-lists, a matrix, a character string ... whatever)
  so that it's nature is preserved. In particular, if I have a list-of-lists
  and I want to add it to a list of whatever kinds of elements, then I get
  a new element added that is the list-of-lists.

This is no problem.  LISP is really just manipulating pointers.  LISTs
are *always* lists of objects of type T (anything).  

Thus 
(setq x (make-big-harry-complex-structure))
(setq x-list (cons x nil)))	

will create a big-harry-complex-structure (could be anything).  The
variable x will reference that structure (until it is unbound by
returning from a function or a let) and (car x-list) will point to the
*same* structure (until x-list is changed).  Changes to the
big-harry-complex-structure will be reflected in both places (unlike S
which always copies a structure when it modifies part of it).  When
there is nobody pointing to it any more, it become garbage and the
garbage collector will get rid of it the next time it is invoked.


   AND, I forgot to say in my previous note, I want to add the new
   whatever-element to the END of my existing 
   list (which might be nil).

This is a little bit trickier.  You can setf (cdr (last mylist)),
[Remember last always returns the last cons cell.]  especially if the
list is short.  You will need to specially check mylist.  Thus you
could write:

(defmacro setf-mylist (new-item place)
  `(let ((mylist ,place))
     (if mylist (setf (cdr (last ,place)) (list ,new-item))
         (setf ,place (list ,new-item)))))
     

If you are going to be accessing these lists alot, and they are fairly
long, you will want to write something like this.  (This is Common
LISP code, it should adapt fairly easily to XLISP).  


;;; fifo-lists  -- 

(defstruct (fifo-list (:conc-name fifo-)
	              (:predicate fifo-list?)
		      (:constructor make-fifo-list
				    (&optional (head nil)
					       (tail (last head)))))
"This is a list with a pointer to both the first and
last cons cell, so that the list can be rapidly (destructively)
appended to and yet still items can be take from it in order.
Operations: fifo-list make-fifo-list fifo-list? fifo-head fifo-tail
fifo-pop fifo-append"
  (head nil :type list)
  (tail nil :type list))		;note tail point to last cons
					;cell not last item


;; fifo-pop -- pops an item from off the list and updates the
;; pointers.
(defun fifo-pop (fifo-list)
  (declare (type Fifo-List fifo-list)
	   (:returns (type T first-element)))
  "Pops an Item off the top of <fifo-list>."
  (cond ((pop (fifo-head fifo-list)))
	(t (setf (fifo-tail fifo-list) nil) nil)))

;; fifo-append -- appends a list to a fifo-list and returns fifo-list 
(defun fifo-append (fifo-lst lst)
  (declare (type Fifo-List fifo-lst) (type List lst)
	   (:returns (type Fifo-List fifo-lst)))
  "Nconc's <lst> to the end of <fifo-lst>.  

Warning:  asumes it is safe to destructively modify <lst>.
"
  (if (fifo-tail fifo-lst)
      (setf (cdr (fifo-tail fifo-lst)) lst)
    (setf (fifo-head fifo-lst) lst))
  (setf (fifo-tail fifo-lst) (last lst))
  fifo-lst)

(defmethod make-load-form ((self fifo-list))
  "Make sure pointers are set right."
  `(make-fifo-list ,(fifo-head self)))


	SECOND

As has already been pointed out, apply expects its last item to be a
list, all other items are just consed onto the front of the list.
Thus

(apply #'send second-window :x-axis (send first-window :x-axis))

Works just great.   BTW, I use this all the type in writing :isnew
methods.  (From ElToY)

(defmeth normal-family :isnew
	(&rest args
	 &key (name (gensym "NORMAL"))
	      (rv-names '(X))
	      (parameter-names '(Mean StDev))
	      (default-parameters '(0 1))
	      (parameter-range-default '((-10 10) (0 5)))
	      (parameter-limits (list (list *-infty* *infty*)
				      (list 0 *infty*)))
	      (parameter-granularity (list .25 .1))
	      (parameter-integer? '(nil nil))
	      &allow-other-keys)
  (apply #'call-next-method
   :name name
   :rv-names rv-names
   :parameter-names parameter-names
   :default-parameters default-parameters
   :parameter-range-default parameter-range-default
   :parameter-limits parameter-limits
   :parameter-integer? parameter-integer?
   :parameter-granularity parameter-granularity
   args))

This method overrides the default values on a large number of options
and simply calls the next methods.  Note that the args is always just
a list (the &rest) and that putting two keywords of the same name in
the list causes the one in front to override the one in back.


			Russell Almond			   
Statistical Sciences, Inc.
1700 Westlake Ave., N Suite 500, Seattle, WA  98109		
(206) 283-8802	 FAX:  (206) 283-8691  Email: almond@statsci.com	





From owner-SL-news  Sun May 15 00:22:54 1993
Resent-Date: 14 May 1993 17:22:54 +0700 (SST)
Resent-From: owner-SL-news
Resent-Message-Id: <199305140923.AA20060@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 14 May 1993 04:23:59 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Fri, 14 May 1993 04:23:34 -0500
Received: from NUSVM.NUS.SG (MAILER@NUSVM) by vx.cis.umn.edu (PMDF #2574 ) id
 <01GY5I07OCEO9GVODB@vx.cis.umn.edu>; Fri, 14 May 1993 04:23:46 CDT
Received: from NUSVM.NUS.SG (NJE origin ECSFWY@NUSVM) by NUSVM.NUS.SG (LMail
 V1.1d/1.7f) with RFC822 id 8272; Fri, 14 May 1993 17:23:56 +0800
Date: 14 May 1993 17:22:54 +0700 (SST)
From: Forrest Young <ECSFWY@NUSVM.BITNET>
Subject: COMPLEX ANSWERS
To: Stat-LIspers <STAT-LISP-NEWS@umnstat>
Message-Id: <01GY5I07OCEQ9GVODB@vx.cis.umn.edu>
X-Envelope-To: STAT-LISP-NEWS@UMNSTAT.STAT.UMN.EDU
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Forrest Young <ECSFWY@NUSVM.BITNET>

Thanks for the replys to my simple questions.  Why is it that such simple
questions always seem to generate such complex answers?  Is there something
about Lisp???   :-)

From statman@apeiron.ufstat.ufl.edu  Sun May 16 14:59:31 1993
Received: from  (jackcraval.stat.ufl.edu) by umnstat.stat.umn.edu; Sun, 16 May 1993 18:05:57 -0500
Received:  by  (NeXT-1.0 (From Sendmail 5.52)/4.09)
	id AA07047; Sun, 16 May 93 18:59:31 EDT
Date: Sun, 16 May 93 18:59:31 EDT
From: "charles d. kincaid" <statman@apeiron.ufstat.ufl.edu>
Message-Id: <9305162259.AA07047@>
Reply-To: charles d. kincaid <statman@stat.ufl.edu>
Received: by NeXT Mailer (1.63)
To: SL-news-list@umnstat
Subject: Lisp-Stat tutorial software?


Hello,
	I will be writing some tutorial software for our  
undergraduate first year statistics class.  For example, I would like  
to be able to show that as the sample size increases the shape of the  
distribution becomes close to normal.
	If anyone has any software that they would like to share, I  
would appreciate the head start.  I will be more than happy to share  
the software that I develop.  Especially, with those that send some  
my way.  :-)
	Any code, comments or advice is greatly appreciated.

Sincerely,

charles d. kincaid                           statman@stat.ufl.edu
'the post-modern neo-anti-reductionistic statistician'

From naras@sci234e.mrs.umn.edu  Mon May 17 03:54:43 1993
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Mon, 17 May 1993 08:54:52 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA04493; Mon, 17 May 93 08:54:44 -0500
Message-Id: <9305171354.AA04493@sci234e.mrs.umn.edu>
To: "charles d. kincaid" <statman@stat.ufl.edu>
Cc: SL-news-list@umnstat
Subject: Re: Lisp-Stat tutorial software? 
In-Reply-To: Your message of "Sun, 16 May 93 18:59:31 EDT."
             <9305162259.AA07047@> 
Date: Mon, 17 May 93 08:54:43 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>

You should get Russell Almond's ElToY from statlib.

************ Begin plug ******************

Besides that, I have some pedagogical tools I wrote for my use in
courses for demonstrating baby concepts, including the Central Limit Theorem,
effect of confidence level on interval size, Interpretation of confidence level,
effect of sample size on interval size, etc.  These will all form part of
a public domain set of notes I am writing in the spirit of FSF, 
(A Free Text Foundation is more appropriate!), since I am disgusted with the number of
basic texts that regurgitate the same old stuff and make money off it!
Xlisp-Stat will be the software used in this text.  Everything will be
made available, including the LaTeX file via statlib.  You can contribute too.
Contact me at "naras@cda.mrs.umn.edu".

At the moment, I will make these routines available to anyone who asks for it by
e-mail.  They are not as polished as I would like them to be.

(I must add that this project will take time and since I can't devote all my time 
for this purpose.)

  *************** Begin sub-plug *********************

  COMING SOON.  A set of routines that will demonstrate 
  discrete finite state Markov Chains for your students, along with the
  complete description of the routines and design in the form of a
  LaTeX file.  Univ of Minnesota Undergraduate Research Project.

  A preliminary version is available now for the asking.

  *************** End sub-plug ****************

**************** End plug *********************

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From owner-SL-news  Mon May 17 13:12:10 1993
Resent-Date: Mon, 17 May 1993 12:12:10 +0100 (BST)
Resent-From: owner-SL-news
Resent-Message-Id: <199305171429.AA01562@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 17 May 1993 09:29:07 -0500
Received: from cheviot.ncl.ac.uk by umnstat.stat.umn.edu; Mon, 17 May 1993 09:28:59 -0500
Received: from tuda.ncl.ac.uk by cheviot.ncl.ac.uk id <AB02034@cheviot.ncl.ac.uk>
  (5.65cVUW/NCL-CMA.1.35 for <stat-lisp-news@umnstat.stat.umn.edu>) with SMTP; Mon, 17 May 1993 15:28:50 +0100
Date: Mon, 17 May 1993 12:12:10 +0100 (BST)
From: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Subject: Colours in XLisp-stat 
To: XLisp-Stat <stat-lisp-news@umnstat>
Message-Id: <Pine.3.05.9305171210.C3157-a100000@tuda>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>




Is there any way of adding to the basic eight colours in X-Lisp stat.
There are times when I am writing my own graphics stuff (using the
:paint-poly and :draw-color messages in a graph window,  and would like 
to define my own fill colours (eg different shades of grey).  Also,
are there any ways to specify hatching when filling in polygons?

Ideally,  it would be good to write generic code using these colours,
but MS Windows specific or X_Windows specific solutions would also
be useful.

Any information would be gratefully recieved,
thanks in advance,

Chris Brunsdon


PS Apologies if this message appears twice.
I'm not sure it went to the right address first time!



From russ@erie.irc.nrc.ca  Mon May 17 04:28:36 1993
Received: from erie.irc.nrc.ca ([132.246.120.52]) by umnstat.stat.umn.edu; Mon, 17 May 1993 10:27:55 -0500
Message-Id: <9305171527.AA08307@ erie.irc.nrc.ca>
Date: Mon, 17 May 1993 11:28:36 -0700
To: "charles d. kincaid" <statman@stat.ufl.edu>,
        "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
From: russ@erie.irc.nrc.ca (Russ Thomas) (Russell Thomas)
Subject: Re: Lisp-Stat tutorial software?
Cc: SL-news-list@umnstat

Hi Narasimhan,

I would be interested in obtaining a copy of your notes and the "Baby
concept" programs if possible.

Many thanks.

Russ Thomas 


At  8:54 AM 17/5/93 -0500, B. Narasimhan wrote:
>You should get Russell Almond's ElToY from statlib.
>
>************ Begin plug ******************
>
>Besides that, I have some pedagogical tools I wrote for my use in
>courses for demonstrating baby concepts, including the Central Limit Theorem,
>effect of confidence level on interval size, Interpretation of confidence
>level,
>effect of sample size on interval size, etc.  These will all form part of
...

>**************** End plug *********************
>


-------------------------------------------------------------------------

Dr J Russell Thomas,                      Phone: (613) 993 - 0817
National Research Council of Canada,        Fax: (613) 952 - 7673
I.R.C. - ILB,                             email: russ@erie.irc.nrc.ca   
Building M-20,                                 : thomas@irc.lan.nrc.ca
Montreal Road,
Ottawa, Ontario K1A 0R6 
Canada.


From owner-SL-news  Mon May 17 07:03:25 1993
Resent-Date: Mon, 17 May 93 12:03:25 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199305171703.AA02409@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 17 May 1993 12:03:59 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Mon, 17 May 1993 12:03:47 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA05007; Mon, 17 May 93 12:03:26 -0500
Message-Id: <9305171703.AA05007@sci234e.mrs.umn.edu>
To: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Cc: XLisp-Stat <stat-lisp-news@umnstat>
Subject: Re: Colours in XLisp-stat 
In-Reply-To: Your message of "Mon, 17 May 93 12:12:10 BST."
             <Pine.3.05.9305171210.C3157-a100000@tuda> 
Date: Mon, 17 May 93 12:03:25 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>

I posted a version of my color picjer tool some time ago. Perhaps you missed it.
I include it again below. I have not tested it on Mac's or PC's., but it 
works fine on Unix workstations.  You design your color using rgb intensities.
Be sure to check the menu for that.

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

****************  Begin Include ******************
;;; cpicker.lsp, A tool for choosing and creating colors.
;;; Copyright (C) 1993 B. Narasimhan
;;;
;;;    This program 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 2 of the License, or
;;;    (at your option) any later version.
;;;
;;;    This program 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
;;;    along with this program; if not, write to the Free Software
;;;    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

(defproto color-choice-window-proto '(loc cbox-side color red green blue) 
  () graph-window-proto)

(defmeth color-choice-window-proto :modal-window (&optional (remove t))
  (send self :modal-window remove))

(defmeth color-choice-window-proto :modal-window-return (value)             
  (let ((target (send (slot-value 'modal-dialog) 
		      :slot-value 'modal-throw-target)))
    (if target (throw target value))))

(defmeth color-choice-window-proto :modal-dialog-return (value)             
"Method Args: (value)
Ends modal dialog loop and has :modal-dialog return VALUE."
  (let ((target (slot-value 'modal-throw-target)))
    (if target (throw target value))))

(defmeth color-choice-window-proto :isnew ()

    (setf (slot-value 'color) 'black)
    (send self :delete-method :do-motion)
    (send self :title "Color Picker")
    (setf (slot-value 'red) 0)
    (setf (slot-value 'green) 0)
    (setf (slot-value 'blue) 0)
    (let* ((menu (send menu-proto :new "Menu"))
	   (custom-color-item (send menu-item-proto :new "Custom Color"
				    :action
				    #'(lambda () (create-rgb-sliders self))))
	   (name-color-item (send menu-item-proto :new "Rename Color"
				  :action
				  #'(lambda () 
				      (let ((name 
					     (get-value-dialog 
					      "Enter new name" 
					      :initial (slot-value 'color))))
					(when name
					      (free-color (slot-value 'color))
					      (setf (slot-value 'color) 
						    (select name 0))
					      (make-color 
					       (slot-value 'color)
					       (slot-value 'red)
					       (slot-value 'green)
					       (slot-value 'blue))
					      (send self :redraw))))))
	   (free-color-item (send menu-item-proto :new "Free color"
				  :action
				  #'(lambda () 
				      (free-color (slot-value 'color))
				      (setf (slot-value 'color) 
					    (select (color-symbols) 0))
				      (send self :redraw)))))
				      
      
      (send menu :append-items custom-color-item name-color-item
	    free-color-item)
      (send self :menu menu))
    (call-next-method :show nil)
    (send self :redraw)
    (send self :show-window))
    
(defmeth color-choice-window-proto :redraw ()
  (let* ((ascent (send self :text-ascent))
	 (descent (send self :text-descent))
	 (cbox-side (+ ascent descent))
	 (em (send self :text-width "m"))
	 (row-sep (round (* .5 cbox-side)))
	 (col-sep (* 2 em))
	 (colors (color-symbols))
	 (color-names (map 'list #'(lambda (x) (string-downcase x :start 1))
			   (map 'list #'string colors)))
	 (max-name-width (max (map 'list #'(lambda (x)
					     (send self :text-width x))
				   color-names)))
	 (item-width (+ cbox-side em max-name-width))
	 (y-offset (+ 50 row-sep))
	 (n (length colors))
	 (c (floor (sqrt n)))
	 (r (floor (/ n c)))
	 (ww (+ (* c (+ col-sep item-width)) col-sep))
	 (wh (+ y-offset (if (eql (* c r) n)
			     (* r (+ row-sep cbox-side))
			   (* (+ r 1) (+ row-sep cbox-side))) row-sep))
	 (tmp nil))
    
    (setf (slot-value 'cbox-side) cbox-side)
    (send self :size ww wh)    
    (send self :draw-color 'white)
    (send self :paint-rect 0 0 ww wh)
    (setf (slot-value 'cbox-side) cbox-side)
    (dotimes (i n)
             (let ((y (+ (* (floor (/ i c)) (+ cbox-side row-sep)) 
			 row-sep y-offset))
		   (x (+ (* (mod i c) (+ item-width col-sep)) col-sep)))
               (setf tmp
		     (append tmp (list (list x y))))))
    (setf (slot-value 'loc) tmp)
    (send self :draw-color (slot-value 'color))
    (send self :paint-rect (- (round (* .5 ww)) 50) row-sep 100 50)
    (send self :draw-color 'black)
    (dotimes (j n)
	     (let* ((myloc (select tmp j))
		    (x (first myloc))
		    (name (select color-names j))
		    (y (second myloc)))
	       (send self :frame-rect x y cbox-side cbox-side)
	       (send self :draw-text name (+ x cbox-side em) (+ y ascent) 0 0)
	       (when (eql (select colors j) (slot-value 'color))
		     (send self :draw-line x y (+ x cbox-side) (+ y cbox-side))
		     (send self :draw-line x (+ y cbox-side) (+ x cbox-side) y))))))

(defmeth color-choice-window-proto :do-click (x y m1 m2)
  (let* ((loc (slot-value 'loc))
	 (box-side (slot-value 'cbox-side))
	 (n (length (slot-value 'loc)))
	 (val (catch 'my-click
		(dotimes (j n)
			 (let* ((myloc (select loc j))
				(left-x (first myloc))
				(bot-y (second myloc))
				(rt-x (+ left-x box-side))
				(top-y (+ bot-y box-side)))
			   (if (and (< left-x x rt-x) (< bot-y y top-y))
			       (throw 'my-click j)))))))
    (when val
	  (setf (slot-value 'color) (select (color-symbols) val))
	  (send self :redraw))))

(defun create-rgb-sliders (w) 
  (let* ((r-text (send text-item-proto :new "Red Intensity"))
	 (r-value (send text-item-proto :new "" :text-length 5))
	 (r-scroll (send interval-scroll-item-proto :new
			 (list 0 1)
			 :points 256
			 :text-item r-value
			 :action #'(lambda (x)
				     (send w :change :red x))
			 :initial 0))
	 
	 (g-text (send text-item-proto :new "Green Intensity"))
	 (g-value (send text-item-proto :new "" :text-length 5))
	 (g-scroll (send interval-scroll-item-proto :new
			 (list 0 1)
			 :points 256
			 :text-item g-value
			 :action #'(lambda (x)
				     (send w :change :green x))
			 :initial 0))
	 
	 (b-text (send text-item-proto :new "Blue Intensity"))
	 (b-value (send text-item-proto :new "" :text-length 5))
	 (b-scroll (send interval-scroll-item-proto :new
			 (list 0 1)
			 :points 256
			 :text-item b-value
			 :action #'(lambda (x)
				     (send w :change :blue x))
			 :initial 0))
	 (d (send dialog-proto :new (list (list r-text r-value) r-scroll
					  (list g-text g-value) g-scroll
					  (list b-text b-value) b-scroll))))
    (send w :add-subordinate d)))

	
(defmeth color-choice-window-proto :change (&key red green blue)
  (if red (setf (slot-value 'red) red))
  (if green (setf (slot-value 'green) green))
  (if blue (setf (slot-value 'blue) blue))
  (let ((ww (first (send self :size)))
	(row-sep (round (* .5 (slot-value 'cbox-side)))))
    (make-color 'custom (slot-value 'red) 
		(slot-value 'green) (slot-value 'blue))
    (setf (slot-value 'color) 'custom))
  (send self :redraw))
    
(defmeth color-choice-window-proto :give-rgb-values ()
  (parse-color (slot-value 'color)))



(def z (send color-choice-window-proto :new))




From owner-SL-news  Wed May 19 13:01:06 1993
Resent-Date: Wed, 19 May 1993 12:01:06 +0100 (BST)
Resent-From: owner-SL-news
Resent-Message-Id: <199305191106.AA11253@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 May 1993 06:06:12 -0500
Received: from cheviot.ncl.ac.uk by umnstat.stat.umn.edu; Wed, 19 May 1993 06:05:40 -0500
Received: from tuda.ncl.ac.uk by cheviot.ncl.ac.uk id <AA01913@cheviot.ncl.ac.uk>
  (5.65cVUW/NCL-CMA.1.35 for <stat-lisp-news@umnstat.stat.umn.edu>) with SMTP; Wed, 19 May 1993 12:03:05 +0100
Date: Wed, 19 May 1993 12:01:06 +0100 (BST)
From: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Subject: Re: Colours in XLisp-stat 
To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Cc: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>,
        XLisp-Stat <stat-lisp-news@umnstat>
In-Reply-To: <9305171703.AA05007@sci234e.mrs.umn.edu>
Message-Id: <Pine.3.05.9305191202.A12961-8100000@tuda>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>


Yes,  this works fine on PCs running windows also.  This has
given me the tricks I want for drawing maps :- I will follow 
up with some code once it is more user-friendly.

Many thanks,
 Chris Brunsdon



From owner-SL-news  Tue May 25 11:37:46 1993
Resent-Date: Tue, 25 May 93 19:37:27 EET DST
Resent-From: owner-SL-news
Resent-Message-Id: <199305251637.AA04981@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 25 May 1993 11:37:46 -0500
Received: from tukki.jyu.fi by umnstat.stat.umn.edu; Tue, 25 May 1993 11:37:38 -0500
Received: by tukki.jyu.fi id AA18903
  (5.65c8/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Tue, 25 May 1993 19:37:28 +0300
From: Rauno Veijola <veijola@jyu.fi>
Message-Id: <199305251637.AA18903@tukki.jyu.fi>
Subject: XLISP-STAT - ported to DEC AXP running Open VMS ?
To: stat-lisp-news@umnstat
Date: Tue, 25 May 93 19:37:27 EET DST
X-Mailer: ELM [version 2.3 PL11]
X-Charset: ISO_8859-1
X-Char-Esc: 29
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Rauno Veijola <veijola@jyu.fi>

Hi,

The subject line says it all. We've a Digital's ALPHA AXP running Open VMS
and I'd like to try XLISP-STAT on it.  Ahy hope?

Rauno Veijola
University of Jyvaskyla
Computing Center
veijola@jyu.fi

From luke  Wed May 26 04:20:46 1993
Resent-Date: Wed, 26 May 93 9:20:46 CDT
Resent-Message-Id: <199305261421.AA29940@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 26 May 1993 09:21:09 -0500
From: "Luke Tierney" <luke>
Message-Id: <199305261420.AA29931@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 26 May 1993 09:20:48 -0500
Subject: Re: XLISP-STAT - ported to DEC AXP running Open VMS ?
To: veijola@jyu.fi (Rauno Veijola)
Date: Wed, 26 May 93 9:20:46 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <199305251637.AA18903@tukki.jyu.fi>; from "Rauno Veijola" at May 25, 93 7:37 pm
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

> 
> Hi,
> 
> The subject line says it all. We've a Digital's ALPHA AXP running Open VMS
> and I'd like to try XLISP-STAT on it.  Ahy hope?
> 
> Rauno Veijola
> University of Jyvaskyla
> Computing Center
> veijola@jyu.fi
> 

We had limited acceess to an alpha runninf OSF for a brief time and
were have been able to make XLISP-STAT compile well enough to pass
some limited tests. A number of places in the X11 code needed to be
fixed for int/pointer problems related to the 64 bit architecture.  It
is possible that other problems remain; I have not had a chance to do
extensive testing. THe non-graphics part of the code did not need any
fixes and *should* be OK since most of these problems got worked out
in the early Mac and PC versions where similar 16 bit int/ 32 bit
pointer problems exist.

Since the hacks to make this work are still very experimental I will
not yet make them available by ftp, but if you contact me directly I
will be happy to provide them.

luke


From owner-SL-news  Mon May 31 02:44:25 1993
Resent-Date: Mon, 31 May 93 9:41:08 WETDST
Resent-From: owner-SL-news
Resent-Message-Id: <199305310744.AA06904@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 31 May 1993 02:44:25 -0500
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Mon, 31 May 1993 02:44:01 -0500
Received: from libiya.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA05480; Mon, 31 May 93 09:49:23 +0100
Message-Id: <9305310849.AA05480@io.upf.esupf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA19372; Mon, 31 May 93 09:41:09 +0100
From: Frederic Udina <udina@upf.es>
Subject: Xlispstat question (fwd)
To: stat-lisp-news@umnstat (lisp stat list)
Date: Mon, 31 May 93 9:41:08 WETDST
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>



hello,

Does someone use xlispstat in a IBM Risc6000 workstation running AIX?
We do and everything goes fine until typing (exit):

~~ I get errors
~~when I exit xlispstat. It has something to do with Xwindows.
~~
~~The error I get when I say (exit):
~~
~~> (exit)
~~X error code BadAccess (attempt to access private resource denied)
~~error: You may want to save what you can and exit.
~~> (exit)
~~Error exit (core dumped)
~~/u/upf/cee/pufedm04/xlisp $
~~
~~Any idea how to solve this ?  




Frederic Udina
Facultat de Ciencies Economiques
Universitat Pompeu Fabra
       Balmes 132
       08008 Barcelona
       SPAIN
    voice:  34 - 3 - 484 97 56
      fax:  34 - 3 - 484 97 46
   e-mail:  udina@upf.es
appleLink:  spa0172



From owner-SL-news  Tue Jun  1 09:15:54 1993
Resent-Date: Tue, 1 Jun 1993 13:15:54 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199306011717.AA11191@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 1 Jun 1993 12:17:16 -0500
Received: from versicolor.uwaterloo.ca by umnstat.stat.umn.edu; Tue, 1 Jun 1993 12:16:49 -0500
Received: by versicolor.uwaterloo.ca id <7611>; Tue, 1 Jun 1993 13:16:01 -0400
From: "R.W. Oldford" <rwoldfor@versicolor.uwaterloo.ca>
To: stat-lisp-news@umnstat
Subject: Quail 1.0 (beta) release announcement
Message-Id: <93Jun1.131601edt.7611@versicolor.uwaterloo.ca>
Date: Tue, 1 Jun 1993 13:15:54 -0400
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "R.W. Oldford" <rwoldfor@versicolor.uwaterloo.ca>

********************************************************************************

                       Quantitative Analysis in Lisp

                                 Quail 1.0
                               (beta release)
                                 Macintosh

********************************************************************************

                    The Statistical Computing Laboratory
                                  of the
                Department of Statistics and Actuarial Science
                          University of Waterloo
		         Waterloo, Ontario N2L 3G1
                                  Canada

                       announces the beta release of

                                  Quail 1.0

********************************************************************************

Quail is a quantitative programming environment written in Common Lisp
(CL; CltL2) and is largely object-oriented (based on the CL Object System).
Quail extends the CL language to better support quantitative analysis.

Amongst its features are:

           Arithmetical, Mathematical and Statistical capabilities:

           - extended arithmetic including the ability to
             lexically redefine return results that usually produce NaNs
           - rich array manipulation facilities including:
                 - array combination and subsetting
                 - iteration macros
                 - mathematical functions operate elementwise on arrays
                 - matrix manipulation including various decompositions
                 - arrays by indirect reference and by copying
           - smooth access to other languages (esp. Fortran and C)
                 - foreign language arrays behave as Quail arrays.
           - special mathematical functions such as gamma, beta, continued
             fraction approximations, diffentiation (symbolic and numerical)
             and numerical integration, ...
           - probability calculations for a wide variety of discrete
             and continuous distributions including mixtures.
                 - pseudo-random number generation
                 - quantiles
                 - probabilities
                 - density and distribution function calculations
                 - collection of linear congruential generators.
           - statistical response models
                 - fitting of normal linear models,
                   and generalized linear models including
                   quasi-likelihood

           Display facilities:
 
           - extended documentation and help facilities
                 - by parsing the CL documentation string documentation
                   objects are created which can be displayed in interactive
                   help windows
                 - tools for creating topics automatically from source
                   file organization
                 - automatic latex production of help documentation
           - object oriented graphics facilities including
                 - building blocks for arbitrary graphics
                 - collection of stock statistical graphics
                   Histograms, boxplots, function plots,
                   scatterplots, 3d-rotating scatterplots,
                   scatterplot matrices, Andrews' curves, ...
                 - function plotting,
                 - 3d-rotating function or surface plots
                       - wire-frame, hidden line, and solid polygon surface
                       - any of which can be depth-cued by colour
                 - arbitrary dynamic linking of graphics elements
                   allowing brushing within and across windows
           - graphical browsers
           - uniform access to a mouse and colour window system including
                 - automatic generation of colour postscript output
                   for all graphics

********************************************************************************


Quail is accessible via anonymous ftp from

             setosa.uwaterloo.ca  or 129.97.141.101

Login id: anonymous   Passwd: your-e-mail-address


Code can be found in pub/Quail 
READMEs found there will give further instructions.
********************************************************************************

A Franz and CLX based version is anticipated to be released late summer 1993.




From owner-SL-news  Thu Jun 17 07:44:16 1993
Resent-Date:    Thu, 17 Jun 1993 11:44:16 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199306170845.AA18532@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 17 Jun 1993 03:45:51 -0500
Received: from zeus.cc.ucr.gr (ret-idomen.cc.ucr.gr) by umnstat.stat.umn.edu; Thu, 17 Jun 1993 03:45:00 -0500
Date:    Thu, 17 Jun 1993 11:44:16 EDT
From: PLEYRAKHS@zeus.cc.ucr.gr (Pleurakns Avtwvns)
Message-Id: <930617114416.12b@zeus.cc.ucr.gr>
Subject: xlisp inquiry
To: stat-lisp-news@umnstat
X-Vmsmail-To: IN%"stat-lisp-news@umnstat.stat.umn.edu"
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: PLEYRAKHS@zeus.cc.ucr.gr (Pleurakns Avtwvns)

Hi."stat-lisp-news@umnstat.stat.umn.edu"

I am a post graduate univ. student in educational technology.
We are doing some educational study, and would like to know
where to g
et the xlisp stat package and info about it. We are
primarily concerned about chi square analyses, t-test but any
statistical 
lities will also be helpful.

Please contact me directly, because I am not a signed on the 
stat-lisp-news list.

Antonis Plevrakis,
Crete, Greece.

PLEYRAKHS@ZEUS.CC.UCR.GR

From owner-SL-news  Thu Jun 17 03:52:10 1993
Resent-Date: Thu, 17 Jun 93 08:52:10 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199306171354.AA19174@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 17 Jun 1993 08:54:01 -0500
Received: from sci234e.mrs.umn.edu by umnstat.stat.umn.edu; Thu, 17 Jun 1993 08:53:59 -0500
Received: by sci234e.mrs.umn.edu (5.57/Ultrix3.0-C)
	id AA15596; Thu, 17 Jun 93 08:52:13 -0500
Message-Id: <9306171352.AA15596@sci234e.mrs.umn.edu>
To: PLEYRAKHS@zeus.cc.ucr.gr (Pleurakns Avtwvns)
Cc: stat-lisp-news@umnstat
Subject: Re: xlisp inquiry 
In-Reply-To: Your message of "Thu, 17 Jun 93 11:44:16 EDT."
             <930617114416.12b@zeus.cc.ucr.gr> 
Date: Thu, 17 Jun 93 08:52:10 -0500
From: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "B. Narasimhan" <naras@sci234e.mrs.umn.edu>

You can ftp xlispstat from umnstat.stat.umn.edu anonymously.

---
B. Narasimhan                             naras@cda.mrs.umn.edu
Division of Science and Math.
The University of Minnesota at Morris
Morris, MN 56267

From 100140.1476@compuserve.com  Sat Jul  6 10:50:45 1993
Received: from ihc.compuserve.com by umnstat.stat.umn.edu; Tue, 6 Jul 1993 13:55:59 -0500
Received: by ihc.compuserve.com (5.65/5.930129sam)
	id AA28871; Tue, 6 Jul 93 14:55:56 -0400
Date: 06 Jul 93 14:50:45 EDT
From: Jens Eickhoff <100140.1476@compuserve.com>
To: <SL-news-list@umnstat>
Subject: XLisp and C or FORTRAN
Message-Id: <930706185044_100140.1476_BHB45-1@CompuServe.COM>

Hello,
I am doing some academic programming using the XLisp-Stat package on a Mac. I 
have the necessity to include some C or Fortran routines into my Lisp program 
and I wonder if this is possible with the XLisp-Stat system or whether I have 
to switch to some commercial Lisp implementation. A person in the INFO-Mac 
Digest gave me the hint to post my query here.

If such a cpoupling of C or FORTRAN Subroutines to Xlisp-Stat is possible, I 
would appreciate examples or hints how to find them.

Thx

Jens Eickhoff

From linsh@darkwing.uoregon.edu  Tue Jul  6 15:38:22 1993
Received: from darkwing.uoregon.edu by umnstat.stat.umn.edu; Wed, 7 Jul 1993 00:39:30 -0500
Received: by darkwing.uoregon.edu (4.1/UofO NetSvc-02/24/93)
	id AA08745; Tue, 6 Jul 93 22:39:26 PDT
Date: Tue, 6 Jul 1993 22:38:22 -0700 (PDT)
From: Sieh-Hwa Lin <linsh@darkwing.uoregon.edu>
Subject: Sign off
To: SL-news-list@umnstat
Message-Id: <Pine.3.07.9307062222.A8737-7100000@darkwing.uoregon.edu>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

Please remove my name from this list since I am leaving this node soon.




From LINSH@OREGON.UOREGON.EDU  Tue Jul  6 15:52:31 1993
Received: from donald.uoregon.edu by umnstat.stat.umn.edu; Wed, 7 Jul 1993 00:52:37 -0500
Received: from OREGON.UOREGON.EDU by OREGON.UOREGON.EDU (PMDF V4.2-12 #3475) id
 <01H08M41POFK8WW4I2@OREGON.UOREGON.EDU>; Tue, 6 Jul 1993 22:52:31 PDT
Date: Tue, 06 Jul 1993 22:52:31 -0700 (PDT)
From: Sieh-Hwa Lin <LINSH@OREGON.UOREGON.EDU>
Subject: Sign off
To: SL-news-list@umnstat, LINSH@DARKWING.UOREGON.EDU
Message-Id: <01H08M41PY368WW4I2@OREGON.UOREGON.EDU>
X-Vms-To: IN%"SL-news-list@umnstat.stat.umn.edu"
X-Vms-Cc: LINSH
Mime-Version: 1.0
Content-Transfer-Encoding: 7BIT

Hi!

Please remove my name from your list since I am leaving this node soon.


From owner-SL-news  Thu Jul  8 08:37:17 1993
Resent-Date: Thu, 8 Jul 93 15:37:57 METDST
Resent-From: owner-SL-news
Resent-Message-Id: <199307081337.AA27139@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Jul 1993 08:37:17 -0500
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Thu, 8 Jul 1993 08:36:49 -0500
Received: from sahara.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA02057; Thu, 8 Jul 93 15:42:15 +0100
Message-Id: <9307081442.AA02057@io.upf.esupf.es>
Received: by sahara.upf.es
	(16.6/15.6) id AA06431; Thu, 8 Jul 93 15:37:58 +0200
From: Jan Graffelman <graff@upf.es>
Subject: adding own C-source code to Xlispstat
To: stat-lisp-news@umnstat
Date: Thu, 8 Jul 93 15:37:57 METDST
Mailer: Elm [revision: 66.25]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Graffelman <graff@upf.es>

Hi,

I want to add some C routines to Luke Tierney's Xlispstat, and
have some questions about that. 

1.) In order to let my routines receive data from Xlisp, I have
    to call several routines like xlgetarg(); xlgafixnum();
    getfixnum(Ln); Is there some documentation at the C programming
    level about this ?

2.) In particular, I have problems letting my routines receive a
    list from xlispstat, and converting this into an ordinary 
    array of doubles. (*double).

Any help will be appreciated.

                 Jan Graffelman
--
--------------------------------------------------------
| Jan Graffelman            | internet:  GRAFF@UPF.ES  |
| Universitat Pompeu Fabra  | tel:       34-3-4849764  |
| Balmes 132                | fax:       34-3-4849746  |
| Barcelona, Spain          |                          |
--------------------------------------------------------


From @UKCC.UKY.EDU:ASTRO11@UKCC.UKY.EDU  Fri Jul  9 08:24:51 1993
Message-Id: <199307091630.AA01700@umnstat.stat.umn.edu>
Received: from ukcc.uky.edu by umnstat.stat.umn.edu; Fri, 9 Jul 1993 11:30:31 -0500
Received: from UKCC.UKY.EDU by UKCC.uky.edu (IBM VM SMTP V2R2)
   with BSMTP id 1338; Fri, 09 Jul 93 12:29:37 EDT
Received: from ukcc.uky.edu (NJE origin ASTRO11@UKCC) by UKCC.UKY.EDU (LMail
 V1.1d/1.7f) with BSMTP id 3398; Fri, 9 Jul 1993 12:29:37 -0400
Date:         Fri, 09 Jul 93 12:24:51 EDT
From: arny stromberg <ASTRO11@UKCC.uky.edu>
Subject:      error handling in lispstat
To: sl-news-list@umnstat

Help!
Given a starting value and a function, the lispstat function "newtonmax"
returns the maximum of the function or an error message. Is there an
easy way to modify the function so that when it encounters an error, it
returns the starting value instead of the error message?

Thanks, Arny Stromberg (astro11@ukcc.uky.edu)

From owner-SL-news  Fri Jul  9 07:02:10 1993
Resent-Date: Fri, 9 Jul 93 14:02:10 PDT
Resent-From: owner-SL-news
Resent-Message-Id: <199307092119.AA02873@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 9 Jul 1993 16:19:05 -0500
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Fri, 9 Jul 1993 16:18:57 -0500
Received: from spool.uu.net (via LOCALHOST) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA19533; Fri, 9 Jul 93 17:18:36 -0400
Received: from statsci.UUCP by spool.uu.net with UUCP/RMAIL
	(queueing-rmail) id 171616.15134; Fri, 9 Jul 1993 17:16:16 EDT
Received: from bass.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.35)
	id AA18713; Fri, 9 Jul 93 14:01:30 PDT
Received: by bass.statsci.com (4.1/SMI-4.1)
	id AA12668; Fri, 9 Jul 93 14:02:10 PDT
Date: Fri, 9 Jul 93 14:02:10 PDT
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9307092102.AA12668@bass.statsci.com>
To: stat-lisp-news@umnstat
In-Reply-To: arny stromberg's message of Fri, 09 Jul 93 12:24:51 EDT <199307091630.AA01700@umnstat.stat.umn.edu>
Subject: error handling in lispstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)


   Help!  Given a starting value and a function, the lispstat function
   "newtonmax" returns the maximum of the function or an error message.
   Is there an easy way to modify the function so that when it encounters
   an error, it returns the starting value instead of the error message?

   Thanks, Arny Stromberg (astro11@ukcc.uky.edu)


What you really want is the condition system in Common Lisp.  It
allows you to selectively ignore errors, especially errors of a
particular type (for example just arithmetic errors) and specify
recovery behavior.  I think this might be a very sensible approach to
missing values.  

Steele[1984] (CLtL-1) describes a mechanism called IGNORE-ERRORS
which does most of what you want, that is to say it returns the value
from executing a form (for example a call to NEWTONMAX) and a flag
indicating whether or not there was an error.  Unfortunately, XLISP
doesn't support this either.


I can be kludged using throw, catch and unwind-protect.  The following
code does that.  The way it works is as follows.  The clean-up forms
of unwind-protect are always executed.  Therefore, we simply have a
clean-up form in the unwind-protect which detects the error and throws
the default value to a catch surrounding the unwind-protect.  This
causes excecution to resume using the default value.  Normal execution
returns the value obtained from executing the form.



(defmacro default-value-on-error (form default)
  
  "This macro evaluates <form> in an environment which ensures that a
result will be returned.  If <form> generates an error, then the error
messages will be printed and <default> will be returned from the
default-value-on-error expression.  The <default> form is only
evaluated if evaluating <form> produces an error.  

This macro will produce strange results if <form> tries to use any non
local exit except an error it (i.e., a throw, a return or a go)."

  `(let ((%error-flag% nil))
     (catch 'error
       (unwind-protect
	   (prog2
	     (setq %error-flag% t)
	     ,form                      ;; <<-- This value is returned
	     (setq %error-flag% nil))
	 (when %error-flag%
	   ;; only get to here if executing <form> generated an error
	   (throw 'error ,default))))))



Here are some examples of the macro in action.
> (default-value-on-error 17 555)
17
> (default-value-on-error (/ 0 0) 555)
error: illegal zero argument
555

Note that if the debugger is on, the default value is not returned
until you exit from the debugger.

> (debug)
T
> (default-value-on-error (/ 0 0) 555)
error: illegal zero argument
1> (clean-up)
[ back to previous break level ]
555

Finally, note that it will do funny things with other throws and
catches.

> (catch 'bar (default-value-on-error (throw 'bar 'foo) 'oops))
OOPS

According to Steele[1990] this really should generate an error (that
is the inner throw to the outer tag 'bar should invalidate the throw
to the inner tag 'error in the clean-up form of the unwind-protect).
On the other hand complex code using nested throws catches and unwind
protects is probably a bad idea (as I said, this is a kludge not a
solution).  


Therefore, the answer to you question about NEWTONMAX is to write a
wrapper function using default-value-on-error which does what you want.

			Russell Almond			   
StatSci (a division of MathSoft)
1700 Westlake Ave., N Suite 500, Seattle, WA  98109		
(206) 283-8802	 FAX:  (206) 283-8691  Email: almond@statsci.com	



     

From luke  Fri Jul  9 11:41:32 1993
Resent-Date: Fri, 9 Jul 93 16:41:32 CDT
Resent-Message-Id: <199307092141.AA22669@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 9 Jul 1993 16:41:37 -0500
From: "Luke Tierney" <luke>
Message-Id: <199307092141.AA22661@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 9 Jul 1993 16:41:34 -0500
Subject: error handling in lispstat (fwd)
To: stat-lisp-news
Date: Fri, 9 Jul 93 16:41:32 CDT
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

Forwarded message:
> From @UKCC.UKY.EDU:ASTRO11@UKCC.UKY.EDU Fri Jul  9 11:33:57 1993
> Date:         Fri, 09 Jul 93 12:24:51 EDT
> From: arny stromberg <ASTRO11@UKCC.uky.edu>
> Subject:      error handling in lispstat
> To: sl-news-list@umnstat
> 
> Help!
> Given a starting value and a function, the lispstat function "newtonmax"
> returns the maximum of the function or an error message. Is there an
> easy way to modify the function so that when it encounters an error, it
> returns the starting value instead of the error message?
> 
> Thanks, Arny Stromberg (astro11@ukcc.uky.edu)
> 

take a look at the special form errset; it should let you do what you want.
Here is the help information:

ERRSET                                                          [function-doc]
Args: (expr [pflag])
Traps errors occurring during the evaluation of EXPR. PFLAG controls printing
of the error message. Returns the value of the last expression consed with
NIL or NIL.


ERRSET is xlisp's current method of error catching. Future versions
may support a subset fo the common lisp condition system.

luke


From owner-SL-news  Sat Jul 10 04:51:56 1993
Resent-Date: Sat, 10 Jul 93 11:51:56 -0700
Resent-From: owner-SL-news
Resent-Message-Id: <199307101851.AA05334@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 10 Jul 1993 13:51:22 -0500
Received: from netcom3.netcom.com by umnstat.stat.umn.edu; Sat, 10 Jul 1993 13:51:19 -0500
Received: by netcom3.netcom.com (5.65/SMI-4.1/Netcom)
	id AA20494; Sat, 10 Jul 93 11:51:57 -0700
Message-Id: <9307101851.AA20494@netcom3.netcom.com>
To: stat-lisp-news@umnstat
Cc: almond@statsci.com (Russell G. Almond)
Subject: Re: error handling in lispstat 
In-Reply-To: Your message of "Fri, 09 Jul 93 14:02:10 PDT."
             <9307092102.AA12668@bass.statsci.com> 
Date: Sat, 10 Jul 93 11:51:56 -0700
From: "Niels P. Mayer" <mayer@netcom.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Niels P. Mayer" <mayer@netcom.com>


From almond@statsci.com (Russell G. Almond):
>Note that if the debugger is on, the default value is not returned
>until you exit from the debugger.

The right way to make 'unwind-protect' and 'errset' work is to wrap it
in a 'progv'. This temporarily forces *breakenable* back to NIL so that
the breakloop doesn't interfere w/ 'unwind-protect' or 'errset'.

An example of such usage is the following WINTERP code (based on XLISP-PLUS
(version 2.1d)):

;;; READ-EXEC-CMD: returns a string representing the output to stdout generated
;;; by executing string parameter <cmd> in a shell (sh(1).)
;(defun read-exec-cmd (cmd)
;  (let ((fp NIL)
;       (result NIL)
;       )
;    (progv '(*breakenable*) '(nil)
;          (unwind-protect
;              (progn
;                (setq fp (popen (concatenate 'string cmd " 2> /dev/null")))
;                (setq result (read-line fp))
;                )
;            ;; unwind always
;            (if fp (pclose fp))
;            ))
;    result                             ;return result
;    ))

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
==           Niels Mayer -- netcom!mayer -- mayer@netcom.com               ==
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

From owner-SL-news  Mon Jul 12 06:16:56 1993
Resent-Date: Mon, 12 Jul 93 13:17:43 METDST
Resent-From: owner-SL-news
Resent-Message-Id: <199307121116.AA09301@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 12 Jul 1993 06:16:56 -0500
Received: from io.upf.esupf.es (io.upf.es) by umnstat.stat.umn.edu; Mon, 12 Jul 1993 06:16:29 -0500
Received: from sahara.upf.es by io.upf.esupf.es (4.1/SMI-4.1)
	id AA04452; Mon, 12 Jul 93 13:22:00 +0100
Message-Id: <9307121222.AA04452@io.upf.esupf.es>
Received: by sahara.upf.es
	(16.6/15.6) id AA08682; Mon, 12 Jul 93 13:17:44 +0200
From: Jan Graffelman <graff@upf.es>
Subject: Xlispstat/Xwindows question
To: stat-lisp-news@umnstat
Date: Mon, 12 Jul 93 13:17:43 METDST
Mailer: Elm [revision: 66.25]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Graffelman <graff@upf.es>

Hi,

I have a question concerning Xlispstat/Xwindows.

I compiled Xlispstat version 2.1 on an IBM RISC/6000, without any
problems. I can run it, and perform computations, make graphics and so
on. The problem starts when I try to exit:

> (exit)
X error code BadAccess, attempt to access private resource denied
error: You may want to save what you can and exit.
> 

If I'm stubborn and keep trying to exit then:

> (exit)
X error code BadCursor, invalid Cursor parameter
error: error: You may want to save what you can and exit.
X error code BadPixmap, invalid Pixmap parameter
error: You may want to save what you can and exit.
X error code BadPixmap, invalid Pixmap parameter
error: You may want to save what you can and exit.


These errors appear, and many more. The same Xlispstat 
program was also installed on some HP workstations in the network
of our university. On these workstations, users who run everything 
inside this HP can exit without problems.

Nevertheless, if I set up a telnet session to such a HP, I also
get in trouble when I try to exit: 

X error code BadAccess (attempt to access private resource denied)
error: You may want to save what you can and exit.

If I am stubborn again I get: 

> (exit)
Memory fault(coredump)


Altogether, it gives me the impression that something is wrong with
the communication between Xlispstat and Xwindows on my RISC. Any hints
or help are highly appreciated.

--
--------------------------------------------------------
| Jan Graffelman            | internet:  GRAFF@UPF.ES  |
| Universitat Pompeu Fabra  | tel:       34-3-4849764  |
| Balmes 132                | fax:       34-3-4849746  |
| Barcelona, Spain          |                          |
--------------------------------------------------------


From owner-SL-news  Mon Jul 12 17:36:57 1993
Resent-Date: Mon, 12 Jul 93 21:36:57 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199307130137.AA12138@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 12 Jul 1993 20:37:13 -0500
Received: from super.super.org by umnstat.stat.umn.edu; Mon, 12 Jul 1993 20:37:10 -0500
Received: from descartes (descartes.super.org) by super.super.org (4.1/SMI-4.1)
	id AA23905; Mon, 12 Jul 93 21:36:57 EDT
Received: by descartes (4.1/SMI-4.1)
	id AA15007; Mon, 12 Jul 93 21:36:57 EDT
Date: Mon, 12 Jul 93 21:36:57 EDT
From: pcolsen@super.org (Peter C Olsen)
Message-Id: <9307130136.AA15007@descartes>
To: linux-activists@joker.cs.hut.fi, stat-lisp-news@umnstat
Subject: Help - Can't run XLSIPSTAT under Emacs on Linux
X-Mn-Key: NORMAL
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pcolsen@super.org (Peter C Olsen)


I'm looking for help in getting xlispstat running under Emacs on
Linux.  I use Xlispstat extensively at work, and I've found that Emacs
makes a great user interface.  Unfortunately, I can't get the
combination running on my Linux box at home.  I've tried my own
compilation and a pre-compiled package taken from the Linux archive at
sunsite.unc.edu.  The package runs fine from an xterm, but always
gives this error under both Emacs 18.58 and lemacs 19.7

  Couldn't exec the program /usr/local/bin/xlispstat
  Process lisp exited abnormally with code 1

Any suggestions?

Peter

   Peter Olsen, n2ell, pcolsen@super.super.org  ...!uunet!super!pcolsen
         P.O. Box 410, Simpsonville, MD 21150-0410; 410-997-8584
     "Engineering is the art of applying a professional knowledge of
   mathematics and the physical sciences to improve the quality of life"

From owner-SL-news  Thu Jul 22 16:28:33 1993
Resent-Date: Thu, 22 Jul 93 14:28:33 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <199307221227.AA15966@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 22 Jul 1993 07:27:58 -0500
Received: from fidelio.inet.dkfz-heidelberg.de by umnstat.stat.umn.edu; Thu, 22 Jul 1993 07:27:49 -0500
Received: by fidelio.inet.dkfz-heidelberg.de (5.0/SMI-SVR4)
	id AA01129; Thu, 22 Jul 93 14:28:33 +0200
Date: Thu, 22 Jul 93 14:28:33 +0200
From: Lutz Edler <edler@fidelio.inet.dkfz-heidelberg.de>
Message-Id: <9307221228.AA01129@fidelio.inet.dkfz-heidelberg.de>
To: benner@amadeus.inet.dkfz-heidelberg.de, dok577@cvx12alias, lispstat,
        stat-lisp-news@umnstat
Subject: test
X-Sun-Charset: US-ASCII
Content-Length: 5
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Lutz Edler <edler@fidelio.inet.dkfz-heidelberg.de>

test

From owner-SL-news  Tue Aug  3 03:57:17 1993
Resent-Date: Tue, 3 Aug 93 10:55:52 METDST
Resent-From: owner-SL-news
Resent-Message-Id: <199308030857.AA28732@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 3 Aug 1993 03:57:17 -0500
Received: from sun4nl.nluug.nl by umnstat.stat.umn.edu; Tue, 3 Aug 1993 03:57:08 -0500
Received: from DCMR1 by sun4nl.nluug.nl via EUnet
	id AA21138 (5.65b/CWI-3.3); Tue, 3 Aug 1993 10:56:59 +0200
Message-Id: <9308030856.AA21138@sun4nl.nluug.nl>
Received: by dcmr1
	(16.6/16.2) id AA17758; Tue, 3 Aug 93 10:55:53 +0200
From: Paul Eilers <DCMR1!paul@relay.nluug.nl>
Subject: 
To: stat-lisp-news@umnstat
Date: Tue, 3 Aug 93 10:55:52 METDST
Mailer: Elm [revision: 66.25]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Paul Eilers <DCMR1!paul@relay.nluug.nl>

subscribe Paul Eilers


From swk@mlb.semi.harris.com  Wed Aug 11 08:48:10 1993
Received: from slopoke.mlb.semi.harris.com by umnstat.stat.umn.edu; Wed, 11 Aug 1993 11:44:12 -0500
Received: from seymour.mlb.semi.harris.com by slopoke.mlb.semi.harris.com (4.0/SMI-4.0)
	id AA26321; Wed, 11 Aug 93 12:44:00 EDT
Received: by seymour.mlb.semi.harris.com (4.1/SMI-4.1)
	id AA13393; Wed, 11 Aug 93 12:48:10 EDT
Date: Wed, 11 Aug 93 12:48:10 EDT
From: swk@mlb.semi.harris.com (Song Koh)
Message-Id: <9308111648.AA13393@seymour.mlb.semi.harris.com>
To: SL-news-list@umnstat
Subject: hardcopy of graphs


Is there a way to get hardcopy of the graphs generated in xlispstat?

------------------------------------------------------------------------
Song Koh			Harris Semiconductor
swk@mlb.semi.harris.com		MS 62-022
Voice: (407)-724-7085		P. O Box 883 (US mail) 
Fax:   (407)-729-4960		Palm Bay Road (UPS)
				Melbourne, FL 32902-0883
------------------------------------------------------------------------


From owner-SL-news  Mon Aug 23 06:35:47 1993
Resent-Date: Mon, 23 Aug 93 10:35:47 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199308231435.AA27904@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 23 Aug 1993 09:35:51 -0500
Received: from garb3.bellcore.com by umnstat.stat.umn.edu; Mon, 23 Aug 1993 09:35:46 -0500
Received: by garb3.bellcore.com (5.61/1.34)
	id AA07219; Mon, 23 Aug 93 10:35:47 -0400
Date: Mon, 23 Aug 93 10:35:47 -0400
From: andreas@bellcore.com (Andreas Buja)
Message-Id: <9308231435.AA07219@garb3.bellcore.com>
To: stat-lisp-news@umnstat
Subject: Lisp code for stepwise and all-subsets regression?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: andreas@bellcore.com (Andreas Buja)

A colleague of mine is looking for the above.  He is not a 
lispstat but a common lisp programmer.  Does anyone know about 
suitable code?  
Thanks

From owner-SL-news  Tue Sep  7 02:14:46 1993
Resent-Date: Mon, 6 Sep 1993 16:14:46 +1000 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199309060612.AA26195@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 6 Sep 1993 01:12:17 -0500
Received: from shiva.trl.OZ.AU by umnstat.stat.umn.edu; Mon, 6 Sep 1993 01:12:02 -0500
Received: from otcgpo.isg.otc.com.au ([134.159.16.100]) by shiva.trl.OZ.AU with SMTP id AA11904
  (5.65c/IDA-1.4.4 for <stat-lisp-news@umnstat.stat.umn.edu>); Mon, 6 Sep 1993 16:11:47 +1000
Received: from turin.research.otc.com.au (mailhost.research.otc.com.au) by otcgpo.isg.otc.com.au (4.1/OTC_GPO.2.1)
	id AA17876; Mon, 6 Sep 93 06:09:05 GMT
Received: from zeus.research.otc.com.au by turin.research.otc.com.au with SMTP id AA23790
  (5.65c/IDA-1.4.4 for <stat-lisp-news@umnstat.stat.umn.edu>); Mon, 6 Sep 1993 16:11:08 +1000
Received: by zeus.research.otc.com.au (4.1/SMI-4.1)
	id AA23107; Mon, 6 Sep 93 16:14:47 EST
From: kimh@research.otc.com.au (Kim Horn)
Message-Id: <9309060614.AA23107@zeus.research.otc.com.au>
Subject: Clustering
To: stat-lisp-news@umnstat
Date: Mon, 6 Sep 1993 16:14:46 +1000 (EST)
Organisation: Telstra International
Phone: +61-2-287-3165
Fax: +61-2-287-3299
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 687       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kimh@research.otc.com.au (Kim Horn)

Hello Folks,

I was wondering if anyone has implemented clustering tools in
XlispStat ?

Otherwise I am about to build some tools to visualise clusters 
and any interest/comment would be welcome.

We are also looking for tools that can help visualise relationships
in nominal data, any ideas ?

Thanks
	Kim

----------------------------------------------------------------------
Kim Horn                ACSnet: kimh@swdev.research.otc.com.au
Telstra                 UUCP:   {uunet,mcvax}!swdev.research.otc.com.au!kimh
GPO Box 7000, Sydney    FAX:    +61 2  287 3299
2001, Australia         PHONE:  +61 2  287 3165
----------------------------------------------------------------------


From mwitten@hermes.chpc.utexas.edu  Tue Sep 14 08:02:32 1993
Received: from hermes.chpc.utexas.edu by umnstat.stat.umn.edu; Tue, 14 Sep 1993 13:43:58 -0500
Received: from morpheus.chpc.utexas.edu by hermes.chpc.utexas.edu (5.64/SMI-3.2)
	id AA15067; Tue, 14 Sep 93 13:02:31 -0500
Received: by morpheus.chpc.utexas.edu (4.1/SMI-4.1)
	id AA09380; Tue, 14 Sep 93 13:02:32 CDT
Date: Tue, 14 Sep 93 13:02:32 CDT
From: mwitten@hermes.chpc.utexas.edu
Message-Id: <9309141802.AA09380@morpheus.chpc.utexas.edu>
To: SL-news-list@umnstat
Subject: CONGRESS: COMPUTATIONAL MEDICINE AND PUBLIC HEALTH (long)

 ** NOTE CHANGES IN SUBMISSION AND REGISTRATION DEADLINES **

		FIRST WORLD CONGRESS
      ON COMPUTATIONAL MEDICINE, PUBLIC HEALTH AND
                     BIOTECHNOLOGY
                    24-28 April 1994
                   Hyatt Regency Hotel
                     Austin, Texas
----- (Feel Free To Cross Post This Announcement) ----

1.0 CONFERENCE OVERVIEW:  With increasing frequency, 
computational sciences are being exploited as a means 
with which to investigate biomedical processes at all 
levels of complexity; from molecular to systemic to 
demographic. Computational instruments are now used, 
not only as exploratory tools but also as diagnostic 
and prognostic tools. The appearance of high 
performance computing environments has, to a great 
extent, removed the problem of increasing the 
biological reality of the mathematical models. For the 
first time in the history of the field, practical 
biological reality is finally within the grasp of the 
biomedical modeler. Mathematical complexity is no 
longer as serious an issue as speeds of computation 
are now of the order necessary to allow extremely 
large and complex computational models to be analyzed. 
Large memory machines are now routinely available.  
Additionally, high speed, efficient, highly optimized 
numerical algorithms are under constant development. 
As these algorithms are understood and improved upon, 
many of them are transferred from software 
implementation to an implementation in the hardware 
itself; thereby further enhancing the available 
computational speed of current hardware. The purpose 
of this congress is to bring together a 
transdisciplinary group of researchers in medicine, 
public health, computer science, mathematics, nursing,
veterinary medicine, ecology, allied health, as well 
as numerous other disciplines, for the purposes of 
examining the grand challenge problems of the next 
decades. This will be a definitive meeting in that it 
will be the first World Congress of its type and will 
be held as a follow-up to the very well received 
Workshop On High Performance Computing In The Life 
Sciences and Medicine held by the University of Texas 
System Center For High Performance Computing in 1990.

Young scientists (graduate students, postdocs, etc.)
are encouraged to attend and to 
present their work in this increasingly interesting 
discipline. Funding is being solicited from NSF, NIH, 
DOE, Darpa, EPA, and private foundations, as well as 
other sources to assist in travel support and in the 
offsetting of expenses for those unable to attend 
otherwise. Papers, poster presentations, tutorials, 
focused topic workshops,  birds of a feather groups, 
demonstrations, and other suggestions are also 
solicited.

2.0 CONFERENCE SCOPE AND TOPIC AREAS: The Congress 
has a broad scope. If you are not sure
whether or not your subject fits the Congress 
scope, contact the conference organizers at one 
of the addresses below.

Subject areas include but are not limited to:
*Visualization/Sonification
 --- medical imaging
 --- molecular visualization as a clinical 
     research tool
 --- simulation visualization
 --- microscopy
 --- visualization as applied to problems 
     arising in computational molecular 
     biology and genetics or other non-traditional 
     disciplines
 --- telemedicine
*Computational Molecular Biology and Genetics
 --- computational ramifications of clinical 
     needs in the Human Genome, Plant Genome, 
     and Animal Genome Projects
 --- computational and grand challenge problems in
     molecular biology and genetics
 --- algorithms and methodologies
 --- issues of multiple datatype databases
*Computational Pharmacology, Pharmacodynamics, 
    Drug Design
*Computational Chemistry as Applied to Clinical Issues
*Computational Cell Biology, Physiology, 
    and Metabolism
 --- Single cell metabolic models (red blood cell)
 --- Cancer models
 --- Transport models
 --- Single cell interaction with external factors 
     models (laser, ultrasound, electrical stimulus)
*Computational Physiology and Metabolism
 --- Renal System
 --- Cardiovascular dynamics
 --- Liver function
 --- Pulmonary dynamics
 --- Auditory function, coclear dynamics, hearing
 --- Reproductive modeling: ovarian dynamics, 
     reproductive ecotoxicology, modeling the 
     hormonal cycle 
 --- Metabolic Databases and metabolic models
*Computational Demography, Epidemiology, and 
    Statistics/Biostatistics
 --- Classical demographic, epidemiologic, 
     and biostatistical modeling
 --- Modeling of the role of culture, poverty, 
     and other sociological issues as they 
     impact healthcare 
 --- Morphometrics
*Computational Disease Modeling
 --- AIDS
 --- TB
 --- Influenza
 --- Statistical Population Genetics Of Disease
     Processes
 --- Other
*Computational Biofluids
 --- Blood flow
 --- Sperm dynamics
 --- Modeling of arteriosclerosis and related
     processes
*Computational Dentistry, Orthodontics, and 
    Prosthetics
*Computational Veterinary Medicine 
 --- Computational issues in modeling non-human 
     dynamics such as equine, feline, canine dynamics 
     (physiological/biomechanical)
*Computational Allied Health Sciences
 --- Physical Therapy
 --- Neuromusic Therapy
 --- Respiratory Therapy
*Computational Radiology
 --- Dose modeling
 --- Treatment planning
*Computational Surgery
 --- Simulation of surgical procedures in VR worlds
 --- Surgical simulation as a precursor to surgical 
     intervention
 --- The Visible Human
*Computational Cardiology
*Computational Nursing
*Computational Models In Chiropractice
*Computational Neurobiology and Neurophysiology 
 --- Brain modeling
 --- Single neuron models
 --- Neural nets and clinical applications
 --- Neurophysiological dynamics 
 --- Neurotransmitter modeling
 --- Neurological disorder modeling (Alzheimer's 
     Disease, for example)
 --- The Human Brain Project
*Computational Models of Psychiatric and Psychological
    Processes
*Computational Biomechanics
 --- Bone Modeling
 --- Joint Modeling
*Computational Models of Non-traditional Medicine
 --- Acupuncture
 --- Other
*Computational Issues In Medical Instrumentation
 Design and Simulation
 --- Scanner Design 
 --- Optical Instrumentation
*Ethical issues arising in the use of computational
 technology in medical diagnosis and simulation
*The role of alternate reality methodologies
 and high performance environments in the medical and
 public health disciplines
*Issues in the use of high performance computing 
 environments in the teaching of health science 
 curricula
*The role of high performance environments
 for the handling of large medical datasets (high
 performance storage environments, high performance
 networking, high performance medical records 
 manipulation and management, metadata structures
 and definitions)
*Federal and private support for transdisciplinary 
 research in computational medicine and public health

3.0 CONFERENCE COMMITTEE

*CONFERENCE CHAIR: Matthew Witten, UT System Center 
For High Performance Computing, Austin, Texas
m.witten@chpc.utexas.edu

*CURRENT CONFERENCE DIRECTORATE: 
Regina Monaco, Mt. Sinai Medical Center
Dan Davison, University of Houston  
Chris Johnson, University of Utah 
Lisa Fauci, Tulane University 
Daniel Zelterman, University of Minnesota Minneapolis
James Hyman, Los Alamos National Laboratory
Richard Hart, Tulane University  
Dennis Duke, SCRI-Florida State University  
Sharon Meintz, University of Nevada Los Vegas  
Dean Sittig, Vanderbilt University  
Dick Tsur, UT System CHPC  
Dan Deerfield, Pittsburgh Supercomputing Center 
Istvan Gyori, University of Veszprem (Hungary)
Don Fussell, University of Texas at Austin  
Ken Goodman, University Of Miami School of Medicine  
Martin Hugh-Jones, Louisiana State University 
Stuart Zimmerman, MD Anderson Cancer Research Center  
John Wooley, DOE  
Sylvia Spengler, University of California Berkeley   
Robert Blystone, Trinity University 
Gregory Kramer, Santa Fe Institute
Franco Celada, NYU Medical Center
David Robinson, NIH, NHLBI
Jane Preson, MCC
Peter Petropoulos, Brooks Air Force Base
Marcus Pandy, University of Texas at Austin
George Bekey, University of Southern California
Stephen Koslow, NIH, NIMH
Fred Bookstein, University of Michigan Ann Arbor
Dan Levine, University of Texas at Arlington
Richard Gordon, University of Manitoba (Canada)
Stan Zeitz, Drexel University
Marcia McClure, University of Nevada Las Vegas
Renato Sabbatini, UNICAMP/Brazil (Brazil)
Hiroshi Tanaka, Tokyo Medical and Dental University (Japan)
Shusaku Tsumoto, Tokyo Medical and Dental University (Japan)

Additional conference directorate members are
being added and will be updated on the anonymous
ftp list as they agree.

4.0 CONTACTING THE CONFERENCE COMMITTEE: To contact
the congress organizers for any reason use any of the 
following pathways:

ELECTRONIC MAIL - compmed94@chpc.utexas.edu

FAX (USA)       - (512) 471-2445

PHONE (USA)     - (512) 471-2472

GOPHER: log into the University of Texas System-CHPC
select the Computational Medicine and Allied Health
menu choice

ANONYMOUS FTP: ftp.chpc.utexas.edu
               cd /pub/compmed94
POSTAL:
            Compmed 1994
      University of Texas System CHPC
	    Balcones Research Center
	    10100 Burnet Road, 1.154CMS
	    Austin, Texas 78758-4497 

5.0 SUBMISSION PROCEDURES: Authors must submit 5 
copies of a single-page 50-100 word abstract clearly 
discussing the topic of their presentation. In 
addition, authors must clearly state their choice of 
poster, contributed paper, tutorial, exhibit, focused
workshop or birds of a feather group along with a 
discussion of their presentation. Abstracts will be 
published as part of the preliminary conference 
material. To notify the congress organizing committee 
that you would like to participate and to be put on 
the congress mailing list, please fill out and return 
the form that follows this announcement.  You may use 
any of the contact methods above. If you wish to 
organize a contributed paper session, tutorial 
session, focused workshop, or birds of a feather 
group, please contact the conference director at 
mwitten@chpc.utexas.edu . The abstract may be submitted
electronically to  compmed94@chpc.utexas.edu  or
by mail or fax. There is no official format.


6.0 CONFERENCE DEADLINES AND FEES: The following deadlines 
should be noted:

     1 November  1993 - Notification of intent to organize
                        a special session 

     15 December 1993 - Abstracts for talks/posters/
                        workshops/birds of a feather 
                        sessions/demonstrations

     15 January  1994 - Notification of acceptance of 
                        abstract

     15 February 1994 - Application for financial aid

     1 April     1994 - Registration deadline
	                (includes payment of all fees)

Fees include lunches for three days, all conference
registration materials, the reception, and the sit
down banquet: 

	$400.00 Corporate
	$250.00 Academic
	$150.00 Student

Students are required to submit verification of student
status. The verification of academic status form appears
appended to the registration form in this announcement.

Because financial aid may be available for minority
students, faculty, and for individuals from declared
minority institutions, you may indicate that you are
requesting financial aid as a minority individual.
Additionally, we anticipate some support for women to
attend. Application for financial aid is also appended
to the attached form.


7.0 CONFERENCE PRELIMINARY DETAILS AND ENVIRONMENT

LOCATION: Hyatt Regency Hotel, Austin, Texas, USA
DATES:    24-28 April 1994

The 1st World Congress On Computational Medicine, 
Public Health, and Biotechnology will be held at the 
Hyatt Regency Hotel, Austin, Texas located in 
downtown Austin on the shores of Town Lake, also 
known as the Colorado River. The Hyatt Regency has 
rooms available for the conference participants at 
a special rate of $79.00/night for single or double 
occupancy, with a hotel tax of 13%. The Hyatt accepts 
American Express, Diner's Club, Visa, MasterCard, 
Carte Blanche, and Discover credit cards. This room 
rate will be in effect until 9 April 1994 or until 
the block of rooms is full. We recommend that you make
your reservations as soon as possible. You may make 
your reservations by calling (512) 477-1234 or by 
returning the enclosed reservation form. Be certain 
to mention that you are attending the First World 
Congress On Computational Medicine, Public Health, 
and Biotechnology if you make your reservations by 
telephone. 

The hotel is approximately, five miles (15 minutes 
from Robert Mueller Airport). The Hyatt offers 
courtesy limousine service to and from the airport 
between the hours of 6:00am and 11:00pm. You may call 
them from the airport when you arrive. If you choose 
to use a taxi, expect to pay approximately $8.00. 
Automobiles may be rented, at the airport, from most 
of the major car rental agencies. However, because of 
the downtown location of the Congress and access to 
taxis and to bus service, we do not recommend that you 
rent an auto unless you are planning to drive 
outside of the city. 

Should you not be able to find an available room
at the Hyatt Regency, we have scheduled an "overflow" 
hotel, the Embassy Suites, which is located directly 
across the street from the Hyatt Regency. If, due to 
travel expense restrictions, you are unable to stay 
at either of these two hotels, please contact the 
conference board directly and we will be more than 
happy to find a hotel near the conference site that
should accommodate your needs.

Austin, the state capital, is renowned for its natural 
hill-country beauty and an active cultural scene. 
Several hiking and jogging trails are within walking 
distance of the hotel, as well as opportunities for a 
variety of aquatic sports. From the Hyatt, you can 
"Catch a Dillo" downtown, taking a ride on our 
delightful inner-city, rubber-wheeled trolley system. 
In Austin's historic downtown area, you can take a 
free guided tour through the State Capitol Building, 
constructed in 1888. Or, you can visit the Governor's 
Mansion, recognized as one of the finest examples of 
19th Century Greek Revival architecture and housing 
every Texas governor since 1856. Downtown you will 
find the Old Bakery and Emporium, built by Swedish 
immigrant Charles Lundberg in 1876 and the Sixth 
Street/Old Pecan Street Historical District - a 
seven-block renovation of Victorian and native stone 
buildings, now a National Registered Historic District 
containing more than 60 restaurants, clubs, and 
shops to enjoy. The Laguna Gloria Art Museum, the
Archer M. Huntington Art Gallery, the LBJ Library and
Museum, the Neill-Cochran Museum House, and the Texas
Memorial Museum are among Austin's finest museums.
The Umlauf Sculpture Garden, has become a major 
artistic attraction. Charles Umlauf's sculptured works 
are placed in a variety of elegant settings under a 
canopy of trees. The Zilker Gardens contains many 
botanical highlights such as the Rose Garden, Oriental 
Garden, Garden of the Blind, Water Garden and more. 
Unique to Austin is a large population of Mexican 
free-tailed bats which resides beneath the Congress 
Avenue Bridge. During the month of April, the Highland 
Lakes Bluebonnet Trail celebrates spring's wildflowers 
(a major attraction) as this self-guided tour winds 
through the surrounding region of Austin and nearby 
towns (you will need to rent a car for this one).

Austin offers a number of indoor shopping malls in 
every part of the city; The Arboretum, Barton Creek 
Square, Dobie Mall, and Highland Mall, to name a few. 
Capital Metro, Austin's mass transit system, offers 
low cost transportation throughout Austin. Specialty 
shops, offering a wide variety of handmade crafts and 
merchandise crafted by native Texans, are scattered 
throughout the city and surrounding areas.

Dining out in Austin, you will have choices of 
American, Chinese, Authentic Mexican, Tex-Mex, 
Italian, Japanese, or nearly any other type of cuisine 
you might wish to experience, with price ranges that 
will suit anyone's budget. Live bands perform in 
various nightclubs around the city and at night spots 
along Sixth Street, offering a range of jazz, blues, 
country/Western, reggae, swing, and rock music. 

Day temperatures will be in the 80-90(degrees F) range 
and fairly humid. Evening temperatures have been known 
to drop down into the 50's (degrees F). Cold weather
is not expected so be sure to bring lightweight 
clothing with you. Congress exhibitor and vendor 
presentations are also being planned.

8.0 CONFERENCE ENDORSEMENTS AND SPONSORSHIPS: 
Numerous potential academic sponsors have been
contacted. Currently negotiations are underway
for sponsorship with SIAM, AMS, MAA, IEEE, FASEB, and
IMACS. Additionally AMA and ANA continuing medical
education support is being sought. Information
will be updated regularly on the anonymous ftp
site for the conference (see above). Currently,
funding has been generously supplied by the following
agencies:

University of Texas System - CHPC
U.S. Department of Energy

================== REGISTRATION FORM ===============

(Please list your name below as it will appear on badge.)
First Name :

Middle Initial (if available):

Family Name:

Your Professional Title:

       [ ]Dr.
       [ ]Professor
       [ ]Mr.
       [ ]Mrs.
       [ ]Ms.
       [ ]Other:__________________

Office Phone (desk):

Home/Evening Phone (for emergency contact):

Fax:

Electronic Mail (Bitnet):

Electronic Mail (Internet):

Postal Address:
       Institution or Center:
       Building Code:
       Mail Stop:
       Street Address1:
       Street Address2:
       City:
       State:
       Zip or Country Code:
       Country:

Please list your three major interest areas:

       Interest1:
       Interest2:
       Interest3:

Registration fee:                       $____________
Late fee $50 (if after April 1, 1994)   $____________

**IF UT	AUSTIN, PLEASE PROVIDE YOUR:
UNIVERSITY ACCT. #:     ______________________
UNIVERSITY ACCT. TITLE: ______________________
NAME OF ACCT. SIGNER:   ______________________
=====================================================

                      VERIFICATION OF STUDENT STATUS

Name:

Mailing Address:


University at which you are a student:

What level student(year):

Your student id number:

Name of your graduate or postdoctoral advisor:

Telephone number for your advisor:

By filling in this section, I agree that I am electronically
signing my signature to the statement that I am currently
a student at the above university.


=======================================================
		      REQUEST FOR FINANCIAL AID	

Name:


Mailing Address:


I request financial assistance under one or more
of the following categories:

[ ] Student (You must fill out the Verification of Student
	     Status Section in order to be considered for
	     financial aid under this category)

[ ] Academic


[ ] Minority
	
	[ ] Female
	[ ] Black
	[ ] Hispanic
	[ ] Native American Indian
	[ ] Other

This form is not meant to invade your personal privacy in
any fashion. However, some of the grant funds are targeted
at specific ethnic/minority groups and need to be expended
appropriately. None of these forms will be in any way 
released to the public. And, after the congress, all of
the financial aid forms will be destroyed. No records will
be kept of ethnic or racial backgrounds.

If you have any questions concerning financial aid support,
please contact Matthew Witten at the above addresses.
==============================================================


From owner-SL-news  Tue Oct  5 07:47:18 1993
Resent-Date: Tue, 05 Oct 1993 11:47:18 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199310051115.AA12124@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 5 Oct 1993 06:15:11 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Tue, 5 Oct 1993 06:15:07 -0500
Received: from VM.CISED.UNINA.IT (MAILER@INACISED) by vx.cis.umn.edu (PMDF
 V4.2-13 #2574) id <01H3QRUN23SWB6341L@vx.cis.umn.edu>; Tue,
 5 Oct 1993 06:15:36 CDT
Received: from VM.CISED.UNINA.IT (DESPOSIT) by VM.CISED.UNINA.IT (Mailer R2.07)
 with BSMTP id 2894; Tue, 05 Oct 93 11:51:03 EDT
Date: Tue, 05 Oct 1993 11:47:18 -0400 (EDT)
From: Stefano Pagnotta <DESPOSIT@VM.CISED.UNINA.IT>
Subject: High break-down point linear regression procedures
To: stat-lisp-news@umnstat
Message-Id: <01H3QRUN2DGIB6341L@vx.cis.umn.edu>
Organization: CISED - University of Naples "Federico II"
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Content-Transfer-Encoding: 7BIT
X-Delivery-Notice:  SMTP MAIL FROM does not correspond to sender.
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Stefano Pagnotta <DESPOSIT@VM.CISED.UNINA.IT>

I would know if  anyone of you know something about xlispstat procedures
in  the field of robust linear regression like Lest Median of Squares
and in the field of outlier detection like Minimum Volume Ellipsoid.
Thank you.
Stefano Pagnotta

STEFANO M. PAGNOTTA                PHONE: +39 81 675183
UNIVERSITA' DI NAPOLI              FAX  : +39 81 675009
DIP. DI MATEMATICA E STATISTICA    E-MAIL: DESPOSIT@VM.CISED.UNINA.IT
VIA CINTHIA, M.TE S.ANGELO
80126 NAPOLI ITALY

From owner-SL-news  Tue Oct  5 04:25:56 1993
Resent-Date: Tue, 5 Oct 93 09:25:56 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <199310051427.AA12878@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 5 Oct 1993 09:27:58 -0500
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Tue, 5 Oct 1993 09:27:55 -0500
Received: from bird.stat.uiowa.edu by ns-mx.uiowa.edu (5.64.jnf/921215)
	  on Tue, 5 Oct 93 09:27:52 -0500 id AA18285 with SMTP 
Received: from nuthatch.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA10643; Tue, 5 Oct 93 09:25:56 CDT
Date: Tue, 5 Oct 93 09:25:56 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9310051425.AA10643@ stat.uiowa.edu>
To: stat-lisp-news@umnstat
Subject: problem with vectorizing
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: rlenth@stat.uiowa.edu (Russ Lenth)

I'm baffled by the following problem.  I made a function *NCT*CDF*
that calls a dynamically loaded function, and another function NCT-CDF
that is supposed to vectorize it, via map-elements.  (This is in the
Windows version of xlisp-stat.)  It works fine as long as there are no
list arguments; but when there are, it seems to call *NCT*CDF* too
many times.  The last time around, a window pops up telling me that an
error has occurred, and after clicking the "Ignore" button, it finally
finishes up with errors due to bad arguments.

A listing of the functions and results (with trace enabled for
*NCT*CDF*) is below.  Any ideas on what might be happening?

Russ Lenth
rlenth@stat.uiowa.edu
University of Iowa

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun *nct*cdf* (tval df delta)
  (let* ((z (call-cfun nct-dll "tcdf" 0.0 (float tval) (float df)
                       (float delta) 0))
         (errcode (first (select z 4))))
    (if (= 0 errcode) 
        (first (first z))
        (error "Error in *nct*cdf*: code = ~a" errcode))))
   
(defun nct-cdf (tval df delta)
  (map-elements #'*nct*cdf* tval df delta))

> (nct-cdf 1 2 '(1 2 3))
Entering: *NCT*CDF*, Argument list: (1 2 1)
Exiting: *NCT*CDF*, Value: 0.455746
Entering: *NCT*CDF*, Argument list: (1 2 2)
Exiting: *NCT*CDF*, Value: 0.15605
Entering: *NCT*CDF*, Argument list: (1 2 3)
Exiting: *NCT*CDF*, Value: 0.0288978
----(the error-message window pops up now)----
Entering: *NCT*CDF*, Argument list: (1 2 #<Free: #8e64>)
error: not a number - #<Free: #8e64>
 

From owner-SL-news  Tue Oct  5 15:25:33 1993
Resent-Date: Tue, 5 Oct 93 19:25:33 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199310052325.AA15828@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 5 Oct 1993 18:25:55 -0500
Received: from super.super.org by umnstat.stat.umn.edu; Tue, 5 Oct 1993 18:25:51 -0500
Received: from descartes (descartes.super.org) by super.super.org (4.1/SMI-4.1)
	id AA24795; Tue, 5 Oct 93 19:25:34 EDT
Received: by descartes (4.1/SMI-4.1)
	id AA13722; Tue, 5 Oct 93 19:25:33 EDT
Date: Tue, 5 Oct 93 19:25:33 EDT
From: pcolsen@super.org (Peter C Olsen)
Message-Id: <9310052325.AA13722@descartes>
To: stat-lisp-news@umnstat
Cc: dadamia@afterlife.ncsc.mil
Subject: BSDstuff.c
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pcolsen@super.org (Peter C Olsen)


I'm trying to recompile XlispStat under Linux and I'm stumped by the
code in BSDstuff.c  Luke once sent me a replacement file, but a
subsequent diskcrash has taken it to the land of dead bits.  Can
anyone send me another copy of the replacement?

Thanks.

Peter

From swk@mlb.semi.harris.com  Wed Oct  6 03:06:25 1993
Received: from slopoke.mlb.semi.harris.com by umnstat.stat.umn.edu; Wed, 6 Oct 1993 06:06:29 -0500
Received: from seymour.mlb.semi.harris.com by slopoke.mlb.semi.harris.com (4.0/SMI-4.0)
	id AA29268; Wed, 6 Oct 93 07:06:27 EDT
Received: by seymour.mlb.semi.harris.com (4.1/SMI-4.1)
	id AA18857; Wed, 6 Oct 93 07:06:25 EDT
Date: Wed, 6 Oct 93 07:06:25 EDT
From: swk@mlb.semi.harris.com (Song Koh)
Message-Id: <9310061106.AA18857@seymour.mlb.semi.harris.com>
To: pcolsen@super.org
Cc: SL-news-list@umnstat
In-Reply-To: <199310052325.AA15828@umnstat.stat.umn.edu> (pcolsen@super.org)
Subject: Re: BSDstuff.c

>>>>> On Tue, 5 Oct 93 19:25:33 EDT, pcolsen@super.org (Peter C Olsen) said:

	Peter> I'm trying to recompile XlispStat under Linux and I'm
	Peter> stumped by the code in BSDstuff.c Luke once sent me a
	Peter> replacement file, but a subsequent diskcrash has taken
	Peter> it to the land of dead bits.  Can anyone send me
	Peter> another copy of the replacement?

Why don't we post it?  I would be willing to help in the port...

------------------------------------------------------------------------
Song Koh			Harris Semiconductor
swk@mlb.semi.harris.com		MS 62-022
Voice: (407)-724-7085		P. O Box 883 (US mail) 
Fax:   (407)-729-4960		Palm Bay Road (UPS)
				Melbourne, FL 32902-0883
------------------------------------------------------------------------


From owner-SL-news  Wed Oct  6 10:14:40 1993
Resent-Date: Wed, 6 Oct 93 15:14:40 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <199310062014.AA20237@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 6 Oct 1993 15:14:44 -0500
Received: from mallit2.forestry.umn.edu by umnstat.stat.umn.edu; Wed, 6 Oct 1993 15:14:41 -0500
Date: Wed, 6 Oct 93 15:14:40 CDT
From: "William Compte" <wcompte@mallit2.forestry.umn.edu>
Message-Id: <9310062014.AA13663@mallit2.forestry.umn.edu>
Received: by mallit2.forestry.umn.edu; Wed, 6 Oct 93 15:14:40 CDT
Received: by NeXT Mailer (1.63)
To: stat-lisp-news@umnstat
Subject: citations for the algorithms used in numgrad and numhess
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "William Compte" <wcompte@mallit2.forestry.umn.edu>

Hi 


I am doing some research which requires computing numerical approximations to second  
partial derivatives of a non-analytical function. I use a NeXT and code in C, so I can't use  
xlisp-stat. However, it would be useful to find citations for the algorithms used in the  
numgrad and numhess routines of xlisp-stat. Can anyone help ?
Thanks.

William Compte
wcompte@mallit2.forestry.umn.edu

From owner-SL-news  Thu Oct  7 08:26:48 1993
Resent-Date: Thu, 07 Oct 1993 12:26:48 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199310071131.AA23378@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 7 Oct 1993 06:31:53 -0500
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Thu, 7 Oct 1993 06:31:50 -0500
Received: from VM.CISED.UNINA.IT (MAILER@INACISED) by vx.cis.umn.edu (PMDF
 V4.2-13 #2574) id <01H3TL05OL1SB7AMAB@vx.cis.umn.edu>; Thu,
 7 Oct 1993 06:32:00 CDT
Received: from VM.CISED.UNINA.IT (DESPOSIT) by VM.CISED.UNINA.IT (Mailer R2.07)
 with BSMTP id 3258; Thu, 07 Oct 93 12:29:26 EDT
Date: Thu, 07 Oct 1993 12:26:48 -0400 (EDT)
From: Stefano Pagnotta <DESPOSIT@VM.CISED.UNINA.IT>
Subject: dynamic graphics for ts
To: stat-lisp-news@umnstat
Message-Id: <01H3TL0MVH4YB7AMAB@vx.cis.umn.edu>
Organization: CISED - University of Naples "Federico II"
X-Envelope-To: stat-lisp-news@umnstat.stat.umn.edu
Content-Transfer-Encoding: 7BIT
X-Delivery-Notice:  SMTP MAIL FROM does not correspond to sender.
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Stefano Pagnotta <DESPOSIT@VM.CISED.UNINA.IT>

hi
does anyone know where I can get dynamic graphics procedures for explorative
time series analysis?
Thank you!

STEFANO M. PAGNOTTA                PHONE: +39 81 675183
UNIVERSITA' DI NAPOLI              FAX  : +39 81 675009
DIP. DI MATEMATICA E STATISTICA    E-MAIL: DESPOSIT@VM.CISED.UNINA.IT
VIA CINTHIA, M.TE S.ANGELO
80126 NAPOLI ITALY

From owner-SL-news  Thu Oct  7 14:44:57 1993
Resent-Date: Thu, 7 Oct 1993 13:44:57 +0100 (BST)
Resent-From: owner-SL-news
Resent-Message-Id: <199310071250.AA23678@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 7 Oct 1993 07:50:25 -0500
Received: from cheviot.ncl.ac.uk by umnstat.stat.umn.edu; Thu, 7 Oct 1993 07:50:15 -0500
Received: from burnmoor.ncl.ac.uk by cheviot.ncl.ac.uk id <AA04677@cheviot.ncl.ac.uk>
  (5.65cVUW/NCL-CMA.1.35 for <stat-lisp-news@umnstat.stat.umn.edu>) with SMTP; Thu, 7 Oct 1993 13:50:10 +0100
Received: from tuda.ncl.ac.uk (tuda.ncl.ac.uk [128.240.2.1]) by burnmoor.ncl.ac.uk (8.5/generic.cf(V8.5.1.5)) with ESMTP id MAA17705; Thu, 7 Oct 1993 12:51:12 GMT
Received: from localhost (ncb@localhost) by tuda.ncl.ac.uk (8.5/generic.cf(V8.5.1.5)) id NAA06466; Thu, 7 Oct 1993 13:50:05 +0100
Date: Thu, 7 Oct 1993 13:44:57 +0100 (BST)
From: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>
Subject: Poisson processes,  among other things
To: stat-lisp-news@umnstat
Message-Id: <Pine.3.05.9310071357.A6131-a100000@tuda>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "C. Brunsdon" <Chris.Brunsdon@newcastle.ac.uk>

Am I correct in assuming that a Poisson process is a very poor model
for the occurrence of posting to stat-lisp-news (ie there has been nothing
for weeks and weeks and then a sudden influx),  or is there a problem
with my mail?

On a more serious note,  does anyone have any experience of linking
Borland Turbo Pascal for Windows DLL's to xlisp-stat?  Any simple examples
would be gratefully received.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chris Brunsdon, Lecturer,                 |
Dept. Of Town and Country Planning,       | 
University Of Newcastle upon Tyne NE1 7RU |



From owner-SL-news  Fri Oct  8 19:43:12 1993
Resent-Date: Fri, 08 Oct 1993 09:43:12 +1000
Resent-From: owner-SL-news
Resent-Message-Id: <199310072343.AA26622@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 7 Oct 1993 18:43:37 -0500
Received: from dmssyd.syd.dms.CSIRO.AU by umnstat.stat.umn.edu; Thu, 7 Oct 1993 18:43:24 -0500
Received: from dmsyip.syd.dms.CSIRO.AU 
 by dmssyd.syd.dms.CSIRO.AU (4.1/5.17)
 id AA20816; Fri, 8 Oct 93 09:43:14 EST
 (from alokep@syd.dms.csiro.au (Aloke Phatak))
To: stat-lisp-news@umnstat
Subject: Beginner's questions
Date: Fri, 08 Oct 1993 09:43:12 +1000
Message-Id: <6923.750037392@dmsyip.syd.dms.CSIRO.AU>
From: Aloke Phatak <alokep@syd.dms.csiro.au>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Aloke Phatak <alokep@syd.dms.csiro.au>

I've just joined this list, so I apologize if some of these questions 
have been asked before.

1.      Is there an FAQ (Frequently Asked Questions) for this group?

2.      Have there been any methods developed for handling missing data, 
        e.g. something along the lines of S-plus?

3.      I see from rooting around STATLIB that Cook and Weisberg's 
        functions for regression diagnostics are available, but does 
        anyone know whether Cook's graphical regression stuff written 
        in XLISP-STAT is also going to be made available?

Thanks.

Aloke Phatak
--
 _Aloke Phatak, CSIRO Div. Maths & Stats_
/                                        \ 
|  Locked Bag 17, North Ryde  NSW  2113  |
|  Ph: 61 2 325 3217  fax (02) 325 3200  |
|  (Building E6B, Macquarie University)  |
|  E-mail: alokep@syd.dms.csiro.au       |
+----------------------------------------+

From owner-SL-news  Thu Oct 14 11:51:30 1993
Resent-Date: Thu, 14 Oct 93 17:52:35 WETDST
Resent-From: owner-SL-news
Resent-Message-Id: <199310141651.AA26983@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 14 Oct 1993 11:51:30 -0500
Received: from io.upf.es by umnstat.stat.umn.edu; Thu, 14 Oct 1993 11:51:07 -0500
Received: from libiya.upf.es by io.upf.es (4.1/SMI-4.1)
	id AA03871; Thu, 14 Oct 93 17:57:09 GMT
Message-Id: <9310141757.AA03871@io.upf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA14814; Thu, 14 Oct 93 17:52:37 +0100
From: Frederic Udina <udina@upf.es>
Subject: distribution objects
To: stat-lisp-news@umnstat (lisp stat list)
Date: Thu, 14 Oct 93 17:52:35 WETDST
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

hello there!

I have written a first approach to build a
distr-proto
object that will represent a probability distribution.
This is an object prototype providing
 some parameter information and methods for random generation,
for probability computation, graphic display and so on.

By means of these objects, it is easy to build finite mixtures of 
distributions and have a homogeneous approach to any distribution.

I plan to finish it and post it for xlispstat users but I want to know if
there is some other approaches out there.

So the question is:
 Is there anybody writing some object implementation of probability
distributions? 
 If there is someone, can we interchange a description of our respective 
approaches?
--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
       Balmes 132                   |            fax: 34 - 3 - 484 97 46
       08008 Barcelona              |         e-mail: udina@upf.es      
       SPAIN                        |      appleLink: spa0172           
___________________________________/|\_________________________________

From owner-SL-news  Thu Oct 14 12:18:34 1993
Resent-Date: Thu, 14 Oct 1993 16:18:34 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199310142022.AA27949@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 14 Oct 1993 15:22:32 -0500
Received: from versicolor (versicolor.uwaterloo.ca) by umnstat.stat.umn.edu; Thu, 14 Oct 1993 15:22:18 -0500
Received: by versicolor.uwaterloo.ca id <24281>; Thu, 14 Oct 1993 16:18:50 -0400
Subject: Re: distribution objects
From: "R.W. Oldford" <rwoldfor@versicolor.uwaterloo.ca>
To: udina@upf.es (Frederic Udina)
Date: Thu, 14 Oct 1993 16:18:34 -0400
Cc: stat-lisp-news@umnstat
In-Reply-To: <9310141757.AA03871@io.upf.es>; from "Frederic Udina" at Oct 14, 93 12:52 pm
X-Mailer: ELM [version 2.3 PL11]
Message-Id: <93Oct14.161850edt.24281@versicolor.uwaterloo.ca>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "R.W. Oldford" <rwoldfor@versicolor.uwaterloo.ca>


> 
> hello there!
> 
> I have written a first approach to build a
> distr-proto
> object that will represent a probability distribution.
> This is an object prototype providing
>  some parameter information and methods for random generation,
> for probability computation, graphic display and so on.
> 
> By means of these objects, it is easy to build finite mixtures of 
> distributions and have a homogeneous approach to any distribution.
> 
> I plan to finish it and post it for xlispstat users but I want to know if
> there is some other approaches out there.
> 
> So the question is:
>  Is there anybody writing some object implementation of probability
> distributions? 
>  If there is someone, can we interchange a description of our respective 
> approaches?
> --
>                   Frederic Udina
> _______________________________________________________________________
> Facultat de Ciencies Economiques    |
> Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
>        Balmes 132                   |            fax: 34 - 3 - 484 97 46
>        08008 Barcelona              |         e-mail: udina@upf.es      
>        SPAIN                        |      appleLink: spa0172           
> ___________________________________/|\_________________________________
> 

Quail (A Common Lisp based Statistical system)
already has a fairly complete collection of probability-measure classes
that do just what you propose.

Namely probability calculations, quantiles, random-number generation,
etc.

Quail is available for Macintoshes via anonymous ftp from
setosa.uwaterloo.ca  or equivalently 129.97.141.101

Check it out.


From owner-SL-news  Tue Oct 19 08:16:23 1993
Resent-Date: Tue, 19 Oct 93 12:16:23 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199310191616.AA20724@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 19 Oct 1993 11:16:35 -0500
Received: from super.super.org by umnstat.stat.umn.edu; Tue, 19 Oct 1993 11:16:25 -0500
Received: by super.super.org (4.1/SMI-4.1)
	id AA10559; Tue, 19 Oct 93 12:16:23 EDT
Date: Tue, 19 Oct 93 12:16:23 EDT
From: pcolsen@super.org (Peter C Olsen)
Message-Id: <9310191616.AA10559@super.super.org>
To: stat-lisp-news@umnstat
Subject: Fast Fourier Transforms
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pcolsen@super.org (Peter C Olsen)


I'm looking for anyone who has written an FFT package to use with
Xlisp-Stat.  I want to analyze some data using FFTs and I'd rather not
have to write a package from scratch myself.  Any code, pointers to
code, or (if worse comes to worst) implementation hints would be
greatly appreciated. 

Thanks!

Peter

   Peter Olsen, n2ell, pcolsen@super.super.org  ...!uunet!super!pcolsen
         P.O. Box 410, Simpsonville, MD 21150-0410; 410-997-8584
     "Engineering is the art of applying a professional knowledge of
   mathematics and the physical sciences to improve the quality of life"

From owner-SL-news  Wed Oct 20 04:44:01 1993
Resent-Date: Wed, 20 Oct 93 08:44:01 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199310201317.AA26091@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Oct 1993 08:17:53 -0500
Received: from slopoke.mlb.semi.harris.com by umnstat.stat.umn.edu; Wed, 20 Oct 1993 08:15:23 -0500
Received: from seymour.mlb.semi.harris.com by slopoke.mlb.semi.harris.com (4.0/SMI-4.0)
	id AA02611; Wed, 20 Oct 93 08:44:02 EDT
Received: by seymour.mlb.semi.harris.com (4.1/SMI-4.1)
	id AA28783; Wed, 20 Oct 93 08:44:01 EDT
Date: Wed, 20 Oct 93 08:44:01 EDT
From: swk@mlb.semi.harris.com (Song Koh)
Message-Id: <9310201244.AA28783@seymour.mlb.semi.harris.com>
To: stat-lisp-news@umnstat
Subject: xlispstat on Linux [repost]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: swk@mlb.semi.harris.com (Song Koh)


I am resending this because I have not heard back from anyone.

I am interested in porting xlispstat to Linux.

I have gotten it to compile but there are problems with interactive IO
and with pulldown menus on the plots.  

Has anyone done any work on this port yet?  One previous message seems
to suggest that there was a patch...

------------------------------------------------------------------------
Song Koh			Harris Semiconductor
swk@mlb.semi.harris.com		MS 62-022
Voice: (407)-724-7085		P. O Box 883 (US mail) 
Fax:   (407)-729-4960		Palm Bay Road (UPS)
				Melbourne, FL 32902-0883
------------------------------------------------------------------------


From owner-SL-news  Tue Oct 26 01:39:07 1993
Resent-Date: Tue, 26 Oct 93 06:39:07 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199310261139.AA23915@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 26 Oct 1993 06:39:18 -0500
Received: from mars.stat.wisc.edu by umnstat.stat.umn.edu; Tue, 26 Oct 1993 06:39:15 -0500
Message-Id: <9310261139.AA19084@mars.stat.wisc.edu>
Received: from localhost by mars.stat.wisc.edu; Tue, 26 Oct 93 06:39:08 -0500
To: swk@mlb.semi.harris.com (Song Koh)
Cc: stat-lisp-news@umnstat
Subject: Re: xlispstat on Linux [repost] 
In-Reply-To: Your message of "Wed, 20 Oct 93 08:44:01 EDT."
             <9310201244.AA28783@seymour.mlb.semi.harris.com> 
Date: Tue, 26 Oct 93 06:39:07 -0500
From: kademan@stat.wisc.edu
X-Mts: smtp
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: kademan@stat.wisc.edu

> I am interested in porting xlispstat to Linux.

There seems to be a port of xlispstat to linux on the machine
sunsite.unc.edu in the file

/pub/Linux/X11/xapps/math/xlispstat2.1R2.tar.gz

I haven't tried it or anything.

From owner-SL-news  Mon Nov  1 12:00:39 1993
Resent-Date: Mon, 1 Nov 93 18:37:22 WET
Resent-From: owner-SL-news
Resent-Message-Id: <199311011800.AA01415@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 1 Nov 1993 12:00:39 -0600
Received: from io.upf.es by umnstat.stat.umn.edu; Mon, 1 Nov 1993 12:00:23 -0600
Received: from libiya.upf.es by io.upf.es (4.1/SMI-4.1)
	id AA10021; Mon, 1 Nov 93 18:43:41 GMT
Message-Id: <9311011843.AA10021@io.upf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA04611; Mon, 1 Nov 93 18:37:22 GMT
From: Frederic Udina <udina@upf.es>
Subject: kronecker product
To: stat-lisp-news@umnstat (lisp stat list)
Date: Mon, 1 Nov 93 18:37:22 WET
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

hello

Does someone have defined in xlisp a function for doing the kronecker
product of two bidimensional matrices?

thanks

--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
       Balmes 132                   |            fax: 34 - 3 - 484 97 46
       08008 Barcelona              |         e-mail: udina@upf.es      
       SPAIN                        |      appleLink: spa0172           
___________________________________/|\_________________________________

From owner-SL-news  Tue Nov  2 05:40:54 1993
Resent-Date: Tue, 2 Nov 93 10:40:54 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199311012341.AA03321@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 1 Nov 1993 17:41:13 -0600
Received: from frey.newcastle.edu.au by umnstat.stat.umn.edu; Mon, 1 Nov 1993 17:41:06 -0600
Received: by frey.newcastle.edu.au id AA17182
  (5.65c/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Tue, 2 Nov 1993 10:40:54 +1100
From: "Philip Iversen (Statistics)" <pwi@frey.newcastle.edu.au>
Message-Id: <199311012340.AA17182@frey.newcastle.edu.au>
Subject: Re: kronecker product
To: stat-lisp-news@umnstat
Date: Tue, 2 Nov 93 10:40:54 EST
In-Reply-To: <9311011843.AA10021@io.upf.es>; from "Frederic Udina" at Nov 1, 93 6:37 pm
X-Mailer: ELM [version 2.3 PL11]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Philip Iversen (Statistics)" <pwi@frey.newcastle.edu.au>

> 
> hello
> 
> Does someone have defined in xlisp a function for doing the kronecker
> product of two bidimensional matrices?
> 
> thanks
> 
> --
>                   Frederic Udina
> _______________________________________________________________________
> Facultat de Ciencies Economiques    |
> Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
>        Balmes 132                   |            fax: 34 - 3 - 484 97 46
>        08008 Barcelona              |         e-mail: udina@upf.es      
>        SPAIN                        |      appleLink: spa0172           
> ___________________________________/|\_________________________________
> 

Here is what I have done.  The algorithm steps through the elements of
M1, multiplies each element with M2 and puts the result in the
appropriate submatrix of the result.  The upper left corner of this
submatrix is specified by BEGROW and BEGCOL.

(defun ncols (x) (array-dimension x 1))

(defun nrows (x) (array-dimension x 0))

(defun kronecker (m1 m2)
  (let* ((r1 (nrows m1))
	 (c1 (ncols m1))
	 (r2 (nrows m2))
	 (c2 (ncols m2))
	 (result (make-array (list (* r1 r2) (* c1 c2))))
	 (begrow 0)
	 (begcol 0))
    (dolist (arow (iseq r1) result)
	    (dolist (acol (iseq c1) result)
		    (setf begrow (* arow r2))
		    (setf begcol (* acol c2))
		    (setf (select result (iseq begrow (+ begrow r2 -1))
				         (iseq begcol (+ begcol c2 -1)))
			  (* (select m1 arow acol) m2))))))

Philip Iversen
pwi@frey.newcastle.edu.au

From owner-SL-news  Tue Nov  2 06:06:11 1993
Resent-Date: Tue, 2 Nov 93 11:41:27 WET
Resent-From: owner-SL-news
Resent-Message-Id: <199311021206.AA05475@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 2 Nov 1993 06:06:11 -0600
Received: from io.upf.es by umnstat.stat.umn.edu; Tue, 2 Nov 1993 06:05:36 -0600
Received: from libiya.upf.es by io.upf.es (4.1/SMI-4.1)
	id AA10779; Tue, 2 Nov 93 11:47:50 GMT
Message-Id: <9311021147.AA10779@io.upf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA04818; Tue, 2 Nov 93 11:41:29 GMT
From: Frederic Udina <udina@upf.es>
Subject: kronecker
To: stat-lisp-news@umnstat (lisp stat list)
Date: Tue, 2 Nov 93 11:41:27 WET
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

Hi all

Philip Iversen (thank you)
gives a good solution to my kronecker product problem
His function works on two arrays.

Another approach, when the matrices are given as nested lists, can be

(defun kron-list (a b) 
"given two matrices A and B as nested lists, gives the kronecker product
 of A by B, ..."
  (let* ((ar (length a))
         (br (length b))
         (ac (length (first a)))
         (bc (length (first b))))
    (* (mapcar #'(lambda (row) (repeat row (repeat bc ac)))
               (split-list (repeat a (repeat br ar)) ac))
       (mapcar #'(lambda (row) (repeat row ac))
               (repeat b ar)))))

--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
       Balmes 132                   |            fax: 34 - 3 - 484 97 46
       08008 Barcelona              |         e-mail: udina@upf.es      
       SPAIN                        |      appleLink: spa0172           
___________________________________/|\_________________________________

From owner-SL-news  Tue Nov  2 03:02:24 1993
Resent-Date: Tue, 2 Nov 1993 08:02:24 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199311021301.AA05686@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 2 Nov 1993 07:01:58 -0600
Received: from NOC4.DCCS.UPENN.EDU by umnstat.stat.umn.edu; Tue, 2 Nov 1993 07:01:55 -0600
Received: from HILBERT.WHARTON.UPENN.EDU by noc4.dccs.upenn.edu
	id AA10660; Tue, 2 Nov 93 08:01:53 -0500
Return-Path: <bob@hilbert.wharton.upenn.edu>
Received: by hilbert.wharton.upenn.edu
	id AA18704; Tue, 2 Nov 93 08:02:25 -0500
From: bob@hilbert.wharton.upenn.edu (Robert A. Stine)
Posted-Date: Tue, 2 Nov 1993 08:02:24 -0500 (EST)
Message-Id: <9311021302.AA18704@hilbert.wharton.upenn.edu>
Subject: Building XLisp on HP 735
To: stat-lisp-news@umnstat
Date: Tue, 2 Nov 1993 08:02:24 -0500 (EST)
X-Mailer: ELM [version 2.4 PL13]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 277       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: bob@hilbert.wharton.upenn.edu (Robert A. Stine)

Hi,

I recall seeing a posting about someone who was having
problems building LispStat on an HP 735 workstation. We
are doing that now, and dynamic loading is a bit of a 
problem.  

Anyone done this before?

Bob Stine			bob @ hilbert.wharton.upenn.edu
Statistics, Univ of Pa


From owner-SL-news  Wed Nov  3 04:19:36 1993
Resent-Date: Wed, 3 Nov 93 09:19:36 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199311031418.AA12055@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 3 Nov 1993 08:18:38 -0600
Received: from unx.al.alcoa.com by umnstat.stat.umn.edu; Wed, 3 Nov 1993 08:18:35 -0600
Received: by unx.al.alcoa.com (5.57/Ultrix3.0-C)
	id AA03089; Wed, 3 Nov 93 09:19:36 -0500
Date: Wed, 3 Nov 93 09:19:36 -0500
From: daniel@unx.al.alcoa.com (David Daniel)
Message-Id: <9311031419.AA03089@unx.al.alcoa.com>
To: stat-lisp-news@umnstat
Subject: multivariate numerical integration
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: daniel@unx.al.alcoa.com (David Daniel)


Howdy fellow XLispers,

I'm looking for a numerical integration function which will
integrate over two (or possibly more) variables.  I want 
something that is *just* xlisp code, and not a C or FORTRAN
routine since using external routines would require specifying
the funtion to be integrated externally as well.

Thanks for any help,

-David Daniel
daniel@unx.al.alcoa.com

From mwitten@chpc.utexas.edu  Wed Nov  3 05:36:09 1993
Received: from morpheus.chpc.utexas.edu by umnstat.stat.umn.edu; Wed, 3 Nov 1993 11:36:09 -0600
Received: by morpheus.chpc.utexas.edu (4.1/SMI-4.1)
	id AA08727; Wed, 3 Nov 93 11:36:09 CST
Date: Wed, 3 Nov 93 11:36:09 CST
From: mwitten@chpc.utexas.edu
Message-Id: <9311031736.AA08727@morpheus.chpc.utexas.edu>
To: SL-news-list@umnstat
Subject: URGENT: DEADLINE CHANGE FOR WORLD CONGRESS 

		   UPDATE ON DEADLINES
FIRST WORLD CONGRESS ON COMPUTATIONAL MEDICINE, PUBLIC
	     HEALTH, AND BIOTECHNOLOGY
		    24-28 April 1994
                   Hyatt Regency Hotel
                     Austin, Texas
----- (Feel Free To Cross Post This Announcement) ----

Due to a confusion in the electronic distribution of
the congress announcement and deadlines, as well as 
incorrect deadlines appearing in a number of society
newsletters and journals, we are extending the abstract
submission deadline for this congress to 31 December 1993.
We apologize to those who were confused over the differing
deadline announcements and hope that this change will
allow everyone to participate. For congress details:

To contact the congress organizers for any reason use any of the
following pathways:

ELECTRONIC MAIL - compmed94@chpc.utexas.edu

FAX (USA)       - (512) 471-2445

PHONE (USA)     - (512) 471-2472

GOPHER: log into the University of Texas System-CHPC
select the Computational Medicine and Allied Health
menu choice

ANONYMOUS FTP: ftp.chpc.utexas.edu
	     cd /pub/compmed94
	(all documents and forms are stored here)

POSTAL:
            Compmed 1994
      University of Texas System CHPC
            Balcones Research Center
            10100 Burnet Road, 1.154CMS
            Austin, Texas 78758-4497

SUBMISSION PROCEDURES: Authors must submit 5
copies of a single-page 50-100 word abstract clearly
discussing the topic of their presentation. In
addition, authors must clearly state their choice of
poster, contributed paper, tutorial, exhibit, focused
workshop or birds of a feather group along with a
discussion of their presentation. Abstracts will be
published as part of the preliminary conference
material. To notify the congress organizing committee
that you would like to participate and to be put on
the congress mailing list, please fill out and return
the form that follows this announcement.  You may use
any of the contact methods above. If you wish to
organize a contributed paper session, tutorial
session, focused workshop, or birds of a feather
group, please contact the conference director at
mwitten@chpc.utexas.edu . The abstract may be submitted
electronically to  compmed94@chpc.utexas.edu  or
by mail or fax. There is no official format.


If you need further details, please contact me.

Matthew Witten
Congress Chair
mwitten@chpc.utexas.edu

From owner-SL-news  Tue Nov  9 18:53:54 1993
Resent-Date: Wed, 10 Nov 93 02:53:54 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199311101052.AA14211@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Nov 1993 04:52:46 -0600
Received: from ursula.ee.pdx.edu by umnstat.stat.umn.edu; Wed, 10 Nov 1993 04:52:42 -0600
Received: by ursula.ee.pdx.edu (4.1/SMI-4.1)
	id AA03163; Wed, 10 Nov 93 02:53:54 PST
Date: Wed, 10 Nov 93 02:53:54 PST
From: marcus@ee.pdx.edu (Marcus Daniels)
Message-Id: <9311101053.AA03163@ursula.ee.pdx.edu>
To: stat-lisp-news@umnstat
Subject: Anyone using CLS1.0A1 with big databases?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: marcus@ee.pdx.edu (Marcus Daniels)


I'm working on converting some xlispstat-designed-code to CLS.

The only unusual thing about this is that I used a custom database backend
to load a set of 7 to 9 vectors, each vector typically containing around
10000 double-float's.  

The same code, compiled with AKCL 619 (+ gcc 2.5.2) and full-speed
optimization, barely runs half as fast as with xlispstat.  I haven't spent
any effort adding declarations to the CLS code, or modifying my own code yet.
I'm just wondering what experiences others have had porting code to
Common-lisp-stat (performance-wise).  Any tips?

Now using AKCL and a slightly improved backend, my database functions
read directly into the (:static t) allocated vectors.  This has improved
performance for loading, and is faster than the old xlispstat approach
I used.  I know I'm not getting bogged down with garbage collection.  
The virtual memory use is actually around %80 of what it used to be, no leaks,
and not even close to swapping.

BTW: The statistics I'm running are pretty simple... Just sets of
 min/max/means, medians, various quantiles, geomeans, etc..

I've been pondering some wild and wacky ideas like using CLOS with
Postgres (Picasso provides a backend).  Has anyone tried this combination in
the context of statistical/data-processing applications (or at all!) ?

cheers,
Marcus Daniels


From owner-SL-news  Wed Nov 10 02:36:34 1993
Resent-Date: Wed, 10 Nov 93 10:36:34 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199311101845.AA16150@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Nov 1993 12:45:29 -0600
Received: from relay1.UU.NET by umnstat.stat.umn.edu; Wed, 10 Nov 1993 12:45:25 -0600
Received: from spool.uu.net (via LOCALHOST) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA25404; Wed, 10 Nov 93 13:45:12 -0500
Received: from statsci.UUCP by uucp3.uu.net with UUCP/RMAIL
	(queueing-rmail) id 134351.14536; Wed, 10 Nov 1993 13:43:51 EST
Received: from herb.statsci.com by statsci.com (4.1/SMI-3.2 ssi v3.42)
	id AA04153; Wed, 10 Nov 93 10:36:04 PST
Received: by herb.statsci.com (4.1/SMI-4.1)
	id AA21039; Wed, 10 Nov 93 10:36:34 PST
Date: Wed, 10 Nov 93 10:36:34 PST
From: almond@statsci.com (Russell G. Almond)
Message-Id: <9311101836.AA21039@herb.statsci.com>
To: marcus@ee.pdx.edu
Cc: stat-lisp-news@umnstat
In-Reply-To: <199311101052.AA14211@umnstat.stat.umn.edu> (marcus@ee.pdx.edu)
Subject: Re: Anyone using CLS1.0A1 with big databases?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: almond@statsci.com (Russell G. Almond)


   I've been pondering some wild and wacky ideas like using CLOS with
   Postgres (Picasso provides a backend).  Has anyone tried this
   combination in the context of statistical/data-processing applications
   (or at all!) ?

I haven't tried it, but I've looked into it.  There are (I believe) an
number of vendors (I've gotten literature from Itasca, but there must
be more out there) who provide persistent CLOS objects (using the
Meta-Object Protocol).  Note, however, that CLOS is rather different
from LISP-STAT's home brew object system.

Actually, the issue may be deeper than you think.  Object persistance
has been put forward as one of the language features in which S is
better than XLISP-STAT.  In particular, comparisons of the two
languages often point out that S data objects are persistent (even
junk) while LISP-STAT data objects only last for a session.
Obviously, there is a need to address this issue in future versions of
LISP-STAT.  The S model (workspace stored on disk) is just one model
and has advantages and disadvantages.  In particular, the S database
model was designed well before recent advances in object oriented
database technology.

I'm very interested in what you come up with in that combination.  I'm
facing a similar problem (integrating LISP and a database) later this
year.

			Russell Almond			   
StatSci (a division of MathSoft)
1700 Westlake Ave., N Suite 500, Seattle, WA  98109		
(206) 283-8802 x234 FAX:  (206) 283-8691  Email: almond@statsci.com	


From 100140.1476@compuserve.com  Thu Nov 14 05:20:49 1993
Received: from dub-img-2.compuserve.com by umnstat.stat.umn.edu; Sun, 14 Nov 1993 09:24:56 -0600
Received: from localhost by dub-img-2.compuserve.com (8.6.4/5.930129sam)
	id KAA28710; Sun, 14 Nov 1993 10:24:55 -0500
Date: 14 Nov 93 10:20:49 EST
From: Jens Eickhoff <100140.1476@compuserve.com>
To: XLisp-Stat Mailing List <SL-news-list@umnstat>
Subject: XLisp-Stat, integration of own C-Code on Mac
Message-Id: <931114152049_100140.1476_BHB36-3@CompuServe.COM>

Hello,

I'm not quite shure whether this call goes to the right adress, but I try.

Currently I'm working on a technical thermodynamic program application for 
academic purpose on the Macintosh that needs some intelligent statistic result
evaluation. The XLisp-Stat system provides an ideal set of tools and features 
to perform such result processing. The problem is, that the thermodynamic 
numerics have to be implemented in C/C++ (I use the Think C/C++ 6.0 compiler).
The XLisp-Stat system on the Macintosh provides the feature of calling foreign
functions from within XLisp-Stat as I read in the book Lisp-Stat from L. 
Tierney.

My problem is that such XCMD or XCFN calls have the restriction that the 
modules may not exceed 32k size and may not use dynamic memory allocation 
functions. For the thermodynamic numerics to implement I need both, modules 
larger than 32k and dynamic allocation of memory for objects.

The idea now was to retrieve the XLisp-Stat system in sourcecode (somewhere I 
read that the Mac version is written in ThinkC 5.0) and to extend it with the 
thermodynamic C/C++ code. The question is:

Is it possible to define variables in the C-Code, to compute their numeric 
values and to postprocess these data directly with Lisp statements? The 
approach would be first to let the user arrive at the interactive Lisp level, 
to let him input file names etc., then to let him select from a XLisp-Stat 
pull down menu a numeric calculation function which reads input from the 
specified file and which computes results that are partly made available to 
the Lisp and partly are written to an output file. After the numeric 
calculation the user should return to the Lisp level and should be able to 
apply Lisp and statistical functions to the results.

I'm not an expert in Macintosh programming. Perhaps there are other solutions 
that are even better. Thanks for any hints and replies.


Jens Eickhoff
(100140.1476@compuserve.com)


From luke  Mon Nov 15 09:01:28 1993
Resent-Date: Mon, 15 Nov 1993 15:01:28 -0600
Resent-Message-Id: <199311152101.AA08399@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 15 Nov 1993 15:01:31 -0600
Date: Mon, 15 Nov 1993 15:01:28 -0600
From: "Luke Tierney" <luke>
Message-Id: <199311152101.AA08392@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 15 Nov 1993 15:01:28 -0600
To: stat-lisp-news@umnstat
Subject: test from nokomis
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

a test

From owner-SL-news  Mon Nov 15 11:09:04 1993
Resent-Date: Mon, 15 Nov 93 16:09:04 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199311152109.AA10348@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 15 Nov 1993 15:09:15 -0600
Received: from STUPID.STAT.CMU.EDU by umnstat.stat.umn.edu; Mon, 15 Nov 1993 15:09:08 -0600
Received: by stupid.stat.cmu.edu id AA06963
  (5.65a/IDA-1.4.2 for stat-lisp-news@stat.umn.edu); Mon, 15 Nov 93 16:09:04 -0500
Date: Mon, 15 Nov 93 16:09:04 -0500
From: Luke Tierney <luke@stat.cmu.edu>
Message-Id: <9311152109.AA06963@stupid.stat.cmu.edu>
To: stat-lisp-news@umnstat
Subject: a test from cmu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Luke Tierney <luke@stat.cmu.edu>

a test

From mwitten@chpc.utexas.edu  Mon Dec 20 05:28:06 1993
Received: from twilight.chpc.utexas.edu by umnstat.stat.umn.edu; Mon, 20 Dec 1993 11:28:44 -0600
Received: by twilight.chpc.utexas.edu (4.1/SMI-4.1)
	id AA13679; Mon, 20 Dec 93 11:28:06 CST
Date: Mon, 20 Dec 93 11:28:06 CST
From: mwitten@chpc.utexas.edu
Message-Id: <9312201728.AA13679@twilight.chpc.utexas.edu>
To: SL-news-list@umnstat
Subject: VIRTUAL REALITY IN MEDICINE

From 70530.1227@CompuServe.COM Mon Dec 20 11:18:23 1993
Return-Path: <70530.1227@CompuServe.COM>
Received: from dub-img-2.compuserve.com by hermes.chpc.utexas.edu (5.64/SMI-3.2)
	id AA23840; Mon, 20 Dec 93 11:18:21 -0600
Received: from localhost by dub-img-2.compuserve.com (8.6.4/5.930129sam)
	id MAA14210; Mon, 20 Dec 1993 12:18:20 -0500
Date: 20 Dec 93 12:12:07 EST
From: Karen Morgan <70530.1227@CompuServe.COM>
To: "Matthew Witten, Ph.D." <mwitten@hermes.chpc.utexas.edu>
Subject: MMVRII
Message-Id: <931220171206_70530.1227_CHV41-1@CompuServe.COM>
Status: RO

I hope the plans for your World Congress are going well.  We'd like to do an
announcement to be distributed via your electronic mailer system, as you offered
previously.  Please publish the following abbreviated program:

Medicine Meets Virtual Reality II:  INTERACTIVE TECHNOLOGY AND HEALTHCARE:
VISIONARY APPLICATIONS FOR SIMULATION, VISUALIZATION, ROBOTICS
January 27-30, 1994, San Diego Marriott Hotel & Marina
Sponsored by UCSD, 23 hours Category 1 CME credit, $390 until December 31, $450
after, call 619/751-8841, fax 751-8842, or E-mail 70530,1227@compuserve.com for
information

THURSDAY, January 27, three workshops offered simultaneously:
I.  BIOLOGICAL INFORMATICS, Hans B. Sieburg, Ph.D., Chair, Participants:
Sheldon Ball, Floyd Bloom, Michael Huerta, Ralph Martinez, Jack Park, Stella
Veretnik, W. Ziarko

II. MASSIVELY PARALLEL PROCESSING COMPUTERS FOR MEDICAL TECHNOLOGY DEVELOPMENT
Makoto Nonaka, M.D., Ph.D., Chair, Participants:  Adrian King, Patrick Chang,
Michael Gribskov, Russ Altman, Tom Brotherton

III.INTERACTIVE TECHNOLOGIES IN HEALTHCARE:  THE "BIG PICTURE"
Dave Warner, Chair

FRIDAY, January 28

TECHNOLOGY ASSESSMENT: Who Will Pay and Why?  Diane S. Millman, J.D., Paul
Radensky, M.D., J.D., John E. Abele, Steven T. Charles, M.D., Mark Wiederhold,
M.D., Ph.D., Faina Shtern, M.D., Melvyn Greberman, M.D., MPH

DATA FUSION:  More Than the Sum of the Parts.  Don Stredney, Hans B. Sieburg,
Ph.D., Mark Wiederhold, M.D., Ph.D.

APPLICATIONS: New Visions for New Technologies.  Col. Richard M. Satava, M.D.,
Joseph M. Rosen, M.D., Harvey Eisenberg, M.D., Michael D. Doyle, Ph.D., Walter
J. Greenleaf, Ph.D., John P. Brennan, M.D., Kenneth Kaplan, Beth A. Marcus,
Ph.D., Suzanne Weghorst, Christopher C. Gallen, M.D., Ph.D.

SURGERY:  Images of the New Paradigm.  Glenn M. Preminger, M.D., John Flynn,
Adrie C.M. Dumay, Ph.D., David Hon, Jonathan R. Merril, M.D., Zoltan Szabo,
Ph.D., Michael Truppe, M.D., Patrick J. Kelly, M.D., Robert B. Lufkin, M.D.,
Leon Kaufman, Ph.D., Karun Shimoga, Ph.D., William E. Lorensen, Volker Urban,
M.D., P. Mayer, N. M. Huewel, M.D.

SATURDAY, January 29

EDUCATION AND TRAINING:  The Best and Highest Use.  J.K. Udupa, Ph.D., Richard
A. Robb, Ph.D., Jonathan Prince, D.D.S., Helene M. Hoffman, Ph.D., Michael J.
Ackerman, Ph.D.

INTERFACE:  Speaking the Same Language.  Nathaniel I. Durlach, Dave Warner, Col.
Richard M. Satava, M.D., Myron Krueger, Ph.D., Walter J. Greenleaf, Ph.D., Paul
Cutt, Narender P. Reddy, Ph.D., Scott Hassan, Alan Barnum-Scrivener, John
Peifer, M.A.

TELEROBOTICS:  Reach Out and Touch Something.  Ian Hunter, Ph.D., Paul S.
Schenker, Ph.D., Elmar H. Holler, Steven T. Charles, M.D., Bela L. Musits, Hugh
Lusted, Ph.D., Janez Funda, Ph.D., Yulun Wang, Ph.D.

SUBMITTED PAPERS:
Gabriele Faulkner, Ph.D., Uwe G. Kuehnapfel, Ph.D., Matthias Wapler, R. Bowen
Loftin, Ph.D., Jaren Parikh, Kurt R. Smith, D.Sc., Bruce Kall, M.S., Donald W.
Kormos, Ph.D., David W. Cloyd, M.D., Penny Jennett, Ph.D., Lauren Gabelman,
M.S., Joshua Lateiner, Anthony M. DiGioia III, M.D., Joseph B. Petelin, M.D.,
Timothy Poston, Erik Viirre, M.D., Ph.D., Mark Bolas, A. David Johnson, Ph.D.,
Brian D. Athey, Ph.D.

SUNDAY, January 30

TELEMEDICINE:  The Global Health Community.  Dave Warner, Michael F. Burrow, Jay
H. Sanders, M.D., Ralph Martinez, Ph.D., William J. Dallas, Ph.D., John D.
Hestenes, Ph.D., Rudy Mattheus, M.Sc., Georges J.E. De Moor, M.D., Jens P.
Christensen, M.SE., MBA

SUMMARY DISCUSSION:  Improving Quality, Continuity, and Access to Healthcare
While Reducing Cost.  Faina Shtern, M.D., Col. Richard M. Satava, M.D., Makoto
Nonaka, M.D., Ph.D., Nathaniel I. Durlach, John D. Hestenes, Ph.D., Rudy
Mattheus, M.Sc., Melvyn Greberman, M.D., MPH

EXHIBITS:  Advanced Visual Systems, Inc., Artma Biomedical, Inc., BioControl
Systems, Inc., Computer Motion, Inc., Dimension Technologies, Inc., Engineering
Animation, Inc., XTensory, Inc., High Techsplanations, Inc., Image Technology
Associates, Inc., Immersion Corp., IVI Publishing, IXION, Kaiser Medical Optics,
Inc., Shooting Star Technology, Silicon Graphics, Inc., SONY Medical Systems,
Inc., Stealth Technologies, Inc., Pixys, Inc., Virtual Vision



From owner-SL-news  Sun Jan  2 06:20:59 1994
Resent-Date: Sun, 2 Jan 1994 11:20:59 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199401021521.AA29331@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 2 Jan 1994 09:21:16 -0600
Received: from Christie.Meakins.McGill.CA by umnstat.stat.umn.edu; Sun, 2 Jan 1994 09:21:13 -0600
Received: by christie.Meakins.McGill.CA (AIX 3.2/UCB 5.64/4.03)
          id AA13038; Sun, 2 Jan 1994 11:20:59 -0500
Date: Sun, 2 Jan 1994 11:20:59 -0500
From: heberto@christie.Meakins.McGill.CA (Heberto Ghezzo)
Message-Id: <9401021620.AA13038@christie.Meakins.McGill.CA>
To: lisp-stat-news@umnstat
Subject: R-6000
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: heberto@christie.Meakins.McGill.CA (Heberto Ghezzo)


I am trying to set up Xlisp-Stat in an IBM R-6000, if somebody already did it, can please send me a copy of the Makefile and of foreigns.h, because I can not get the dynamic loading to work.
Thanks.
Heberto Ghezzo
heberto@meakins.mcgill.ca

From owner-SL-news  Fri Jan  7 15:11:00 1994
Resent-Date: Fri, 7 Jan 1994 20:11-0500
Resent-From: owner-SL-news
Resent-Message-Id: <199401080205.AA23665@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 7 Jan 1994 20:05:43 -0600
Received: from newton.macsyma.com by umnstat.stat.umn.edu; Fri, 7 Jan 1994 20:05:37 -0600
Received: from RIEMANN.Macsyma.COM by NEWTON.Macsyma.COM via INTERNET with SMTP id 270164; 7 Jan 1994 20:19:34-0500
Date: Fri, 7 Jan 1994 20:11-0500
From: Richard Petti <petti@NEWTON.Macsyma.COM>
Subject: Macsyma and Maxima
To: common-lisp@ai.sri.com, alu@freud.arc.nasa.gov, stat-lisp-news@umnstat
Message-Id: <19940108011149.9.PETTI@RIEMANN.Macsyma.COM>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Richard Petti <petti@NEWTON.Macsyma.COM>


Recently it has come to the attention of Macsyma Inc. that various
mathematical software is being distributed under the name of "Maxima."  I
have been requested to clarify the various rights surrounding the software
and the trademarks.

1. Software copyrights to derivatives of M.I.T.'s Macsyma

Macsyma Inc. and several other companies (such as Paradigm and Fort Pond
Research) have licensed the original software from M.I.T.  The U.S.
Department of Energy has the right to license copies of its derivative of the
M.I.T. software.  To my knowledge, these are the only organizations which can
license softwarede derivatives of the M.I.T. Macsyma code.  These software
packages are definitively not public domain software.

Some parties distribute derivatives of M.I.T.'s Macsyma software by ftp.
Users of this software are required by law to first obtain a license from
D.O.E. or one of the commercial licensees, then use the ftp'able software as
enhancements.  While Macsyma Inc. reserves the right to enforce these
restrictions, we have not chosen to interfere with use of derivative sources
by researchers.

Historically, this situation arose from disputes in the U.S. over the
commercialization of partially-government-funded academic research.
Various U.S. governmental orders in the mid-1980's affirmed the rights of
universities to license such research results.

We feel that academic-government-commercial collaboration is essential to an
efficient technology development and diffusion, and we are eager to work with
qualified parties to develop and commercialize scientific software.  We have
incorporated numerous pieces of academic software in the past 1.7 years,
including ODELIN2 (Shunro Watanabe on ODE's), extended inverse Laplace
transforms (Michael Clarkson), PDELIE (Peter Vafeades on Lie symmetries and
solutions of PDE's), with more such enhancements in the pipeline.

2. The name "Macsyma"

The name "Macsyma" is a registered trademark of Macsyma Inc. in the U.S. and
other major countries.  Macsyma Inc. inherits an agreement from Symbolics
Inc. permitting the D.O.E. to use the name "D.O.E. Macsyma."  No other entity
has the right to use the name Macsyma or closely similar names in the
distribution of mathematical software.  Some parties who distribute
derivatives of M.I.T. Macsyma use names such as "Paramax" and "Aljabar;"
these names are not in conflict with the registered trademark "Macsyma."

The name "Maxima" is considered by Macsyma Inc. to be an infringement of the
Macsyma trademark, though we have refrained from legal action.  We request
that (1) distributors of such software alter the names of their software and
(2) information sources which list software packages not to list mathematical
software which uses this name.

Trademarks serves several useful purposes: (1) they help users easily and
reliably distinguish products and information, and (2) they help suppliers to
gain recognition by users with a minimum of confusion.

I hope this helps clarify the situation.


Richard Petti
President
Macsyma Inc.
20 Academy Street
Arlington, MA 02174-6436
tel: 617-646-4550
fax: 617-646-3161
email: petti@macsyma.com

From owner-SL-news  Fri Jan 14 04:18:18 1994
Resent-Date: Thu, 13 Jan 1994 17:18:18 +1100
Resent-From: owner-SL-news
Resent-Message-Id: <199401130618.AA14830@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Jan 1994 00:18:32 -0600
Received: from dmssyd.syd.dms.CSIRO.AU by umnstat.stat.umn.edu; Thu, 13 Jan 1994 00:18:26 -0600
Received: from dmsyip.syd.dms.CSIRO.AU 
 by dmssyd.syd.dms.CSIRO.AU (4.1/5.17)
 id AA18526; Thu, 13 Jan 94 17:18:20 EST
 (from heathera@syd.dms.csiro.au (Heather Atkinson (Vacation Student - Summer 93 cw- alokep)))
Message-Id: <9401130618.AA18526@dmssyd.syd.dms.CSIRO.AU>
To: stat-lisp-news@umnstat
Date: Thu, 13 Jan 1994 17:18:18 +1100
From: Heather Atkinson (Vacation Student - Summer 93 cw- alokep) <heathera@syd.dms.csiro.au>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Heather Atkinson (Vacation Student - Summer 93 cw- alokep) <heathera@syd.dms.csiro.au>





Hi,

I am an Xlispstat user using the windows version. I'm a student working at the 
CSIRO in Australia.

I have two questions.

I'm wanting to modify the scatterplot-matrix function so that it will
display boxplots and tables of frequencies where appropriate,, instead
of scatterplots. There are a number of methods attached to the proto
scatmat-proto which aren''t documented in the on-line help, nor mentioned
in yur book. Could youpossibly direct me to where I might be able
to find out more about these, and the prototype itself.

Something else I've coded is a program that will produce a color-coded
matrix to represent a correlation matrix. When the user clicks on a cell
a menu pops up,, and they can select options which prompt others windows 
to appear. I have defined the redraw method for the proto I created
in such a way that the picture is redrawn. When a large matrix
 is involved this is time-consuming. What I was hoping to do was only perform
the drawing routine once, send this image to the buffer, and have the redraw
method simply load the buffer to the screen. I have been trying to use
the :start-bufering and :buffer-to-screen commands to accomplish this. 
I have had no success. Is it possible to drraw the imag to the buffer a
single time, and sendingg this buffer to the screen multiple times?

I appreciate that you are very busy. Guessing that you mightn't
have the time to attend to this mail, I've also forwarded it to
the stat-lisp-news group.

Thank you very much for your time,

Heather Atkinson
CSIRO
DMS
Sydney Australia
heathera@csiro.dms.edu.au 

From owner-SL-news  Fri Jan 14 19:55:56 1994
Resent-Date: Fri, 14 Jan 1994 08:55:56 +1100
Resent-From: owner-SL-news
Resent-Message-Id: <199401132156.AA18486@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 13 Jan 1994 15:56:06 -0600
Received: from dmssyd.syd.dms.CSIRO.AU by umnstat.stat.umn.edu; Thu, 13 Jan 1994 15:56:00 -0600
Received: from dmsyip.syd.dms.CSIRO.AU 
 by dmssyd.syd.dms.CSIRO.AU (4.1/5.17)
 id AA27805; Fri, 14 Jan 94 08:55:57 EST
 (from heathera@syd.dms.csiro.au (Heather Atkinson (Vacation Student - Summer 93 cw- alokep)))
Message-Id: <9401132155.AA27805@dmssyd.syd.dms.CSIRO.AU>
To: stat-lisp-news@umnstat
Date: Fri, 14 Jan 1994 08:55:56 +1100
From: Heather Atkinson (Vacation Student - Summer 93 cw- alokep) <heathera@syd.dms.csiro.au>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Heather Atkinson (Vacation Student - Summer 93 cw- alokep) <heathera@syd.dms.csiro.au>





Hi,

I am an Xlispstat user using the windows version. I'm a student working at the 
CSIRO in Australia.

I have two questions.

I'm wanting to modify the scatterplot-matrix function so that it will
display boxplots and tables of frequencies where appropriate,, instead
of scatterplots. There are a number of methods attached to the proto
scatmat-proto which aren''t documented in the on-line help, nor mentioned
in yur book. Could youpossibly direct me to where I might be able
to find out more about these, and the prototype itself.

Something else I've coded is a program that will produce a color-coded
matrix to represent a correlation matrix. When the user clicks on a cell
a menu pops up,, and they can select options which prompt others windows 
to appear. I have defined the redraw method for the proto I created
in such a way that the picture is redrawn. When a large matrix
 is involved this is time-consuming. What I was hoping to do was only perform
the drawing routine once, send this image to the buffer, and have the redraw
method simply load the buffer to the screen. I have been trying to use
the :start-bufering and :buffer-to-screen commands to accomplish this. 
I have had no success. Is it possible to drraw the imag to the buffer a
single time, and sendingg this buffer to the screen multiple times?

I appreciate that you are very busy. Guessing that you mightn't
have the time to attend to this mail, I've also forwarded it to
the stat-lisp-news group.

Thank you very much for your time,

Heather Atkinson
CSIRO
DMS
Sydney Australia
heathera@csiro.dms.edu.au 

From owner-SL-news  Wed Jan 19 10:00:02 1994
Resent-Date: Wed, 19 Jan 94 16:56:24 WET
Resent-From: owner-SL-news
Resent-Message-Id: <199401191600.AA11236@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 19 Jan 1994 10:00:02 -0600
Received: from io.upf.es by umnstat.stat.umn.edu; Wed, 19 Jan 1994 09:57:48 -0600
Received: from libiya.upf.es by io.upf.es (4.1/SMI-4.1)
	id AA14172; Wed, 19 Jan 94 16:58:24 GMT
Message-Id: <9401191658.AA14172@io.upf.es>
Received: by libiya.upf.es
	(16.7/15.6) id AA05313; Wed, 19 Jan 94 16:56:24 GMT
From: Frederic Udina <udina@upf.es>
Subject: dirty trick
To: stat-lisp-news@umnstat (lisp stat list)
Date: Wed, 19 Jan 94 16:56:24 WET
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>


Hello

For those of you that work with LISP-STAT on the mac:

In my statinit.lsp I have this lines of code

|-----------------------------------------------------------------
|  (defun insert-last-read-in-listener ()                        |
|    (send *listener* :paste-string (format nil "~a" -))         |
|    (send *listener* :show-window))                             |
|                                                                |
| ; this prevents error if calling the previous function before  |
| ; - is defined by the first read                               |
| (setq - nil)                                                   |
|                                                                |
| (send *command-menu*                                           |
|       :append-items                                            |
|       (send dash-item-proto :new)                              |
|       (send menu-item-proto                                    |
|             :new "Insert last read"                            |
|             :action 'insert-last-read-in-listener              |
|             :key #\I))                                         |
-----------------------------------------------------------------|

It results in having a dirty mechanism for re-eval'ing the last
expression read by lisp, of a re-edit version of it.

Does it works with the MS-Windows version?

Someone has a positive experience in working with the MS-Windows
version of LISP-STAT?


--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
       Balmes 132                   |            fax: 34 - 3 - 484 97 46
       08008 Barcelona              |         e-mail: udina@upf.es
       SPAIN                        |      appleLink: spa0172
___________________________________/_\_________________________________

From owner-SL-news  Wed Jan 26 09:08:06 1994
Resent-Date: Wed, 26 Jan 94 15:08:06 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <199401262108.AA14026@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 26 Jan 1994 15:08:10 -0600
Received: from jupiter.stat.wisc.edu by umnstat.stat.umn.edu; Wed, 26 Jan 1994 15:08:07 -0600
Date: Wed, 26 Jan 94 15:08:06 -0600
From: bates@stat.wisc.edu (Douglas Bates)
Message-Id: <9401262108.AA09078@jupiter.stat.wisc.edu>
Received: by jupiter.stat.wisc.edu; Wed, 26 Jan 94 15:08:06 -0600
To: stat-lisp-news@umnstat
Subject: Extended oneway ANOVA prototype
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: bates@stat.wisc.edu (Douglas Bates)

In the interests of learning xlisp-stat programming, I decided to
implement a slider dialog for the reference distribution comparison
method described in section 6.7 of Box, Hunter and Hunter.  I enclose
my extended prototype including the ref-plot method and a couple of
methods to add some slots and create an ANOVA table.  I welcome
comments because I am trying to learn the language.  A sample usage is
given after the code.

;;;;##########################################################################
;;;;  $Id: Ext-oneway.lsp,v 1.2 1994/01/26 20:59:43 bates Exp $
;;;;  File            : Ext-oneway.lsp
;;;;  Author          : Douglas Bates (bates@stat.wisc.edu)
  
;;;;  PURPOSE
;;;;  	Extended one-way analysis of variance prototype
  
;;;;######################################################################### 

;;;; GENERAL DISCLAIMER
 
;;;; This program 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 1, or (at your option) any later version.
 
;;;; This program 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 along with this program; if not, write to the Free
;;;; Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
;;;; 02139, USA.
 
;;;; In short: you may use this code any way you like, as long as you
;;;; don't charge money for it, remove this notice, or hold anyone liable
;;;; for its results.

(provide "Ext-oneway")

(require "oneway")

;;;;
;;;;
;;;; Extended One Way ANOVA Model Prototype
;;;;
;;;;

(defproto Ext-oneway-model-proto '(f-ratio p-value) ()
  oneway-model-proto
  "Extended one-way analysis of variance model")

(defun Ext-oneway-model (data &key (print t) group-names)
"Args: ( data &key (print t) group-names)
DATA: list of compound-data
PRINT: whether to print the fit
GROUP-NAMES: Names for the groups"
(let ((data (mapcar #'(lambda (x) (coerce x 'list)) data))
      (m (send Ext-oneway-model-proto :new)))
    (send m :grouped-data data)
    (send m :group-names group-names)
    (if print (send m :display))
    m))

(defmeth Ext-oneway-model-proto  :save ()
"Message args: ()
Returns an expression that will reconstruct the model."
  `(Ext-oneway-model ',(send self :grouped-data) 
                 :group-names ',(send self :group-names)))
                       
(defmeth Ext-oneway-model-proto :anova-table ()
"Message args: ()
Prints the ANOVA table for the one-way analysis of variance."
  (let* ((group-mean-square (send self :group-mean-square))
	(error-mean-square (send self :error-mean-square))
	(f-ratio (send self :f-ratio))
	(p-value (send self :p-value)))
    (format t "                           Degrees~%")
    (format t "Source of          Sum of     of    Mean   F-ratio p-value~%")
    (format t "Variation         Squares  Freedom Square~%~%")
    (format t "  Group       ~10g     ~4,0g ~8g ~10g ~6,4g~%"
	    (send self :group-sum-of-squares) (send self :group-df)
	    group-mean-square f-ratio p-value)
    (format t "  Error       ~10g     ~4,0g ~8g~%"
	    (send self :sum-of-squares) (send self :error-df)
	    error-mean-square)
    (format t "  Total       ~10g     ~4,0g~%"
	    (+ (send self :group-sum-of-squares) (send self :sum-of-squares))
	    (+ (send self :group-df) (send self :error-df))
	    )
    )
  )

(defmeth Ext-oneway-model-proto :ref-plot (&optional (npts 51))
"Message args: (&optional (npts 51))
Create a plot of the group means with a reference distribution
connected to a slider.  The argument npts specifies the number of
points to be used in the plot of the reference distribution.
Based on the method described in section 6.7 of \"Statistics for
Experimenters\" by Box, Hunter, and Hunter (Wiley, 1979)"
  (let* ((scale-factor (sqrt (/ (send self :error-mean-square)
				(mean (mapcar
				       #'length
				       (send self :grouped-data))))))
	 (coefs (send self :coef-estimates))
	 (txvals (rseq -4 4 npts))
	 (yvals (t-dens txvals (send self :error-df)))
	 (xvals (+ (mean coefs) (* scale-factor txvals)))
	 (rp (plot-lines xvals yvals :title "Ref. dist'n" :show nil))
	 (rp-size (send rp :size)))
    (send rp :hide-window)
    (let ((range (get-nice-range (- (min coefs) (* 2 scale-factor))
	                  (+ (max coefs) (* 2 scale-factor)) 6)))
      (send rp :range 0 (nth 0 range) (nth 1 range))
      (send rp :x-axis t nil (nth 2 range)))
    (send rp :range 1 -0.15 (select (send rp :range 1) 1))
    (send rp :add-points (list coefs (+ -0.1 (* 0.05 (uniform-rand (length coefs))))))
    (send rp :point-symbol (iseq (length coefs)) 'dot4)
    (send rp :abline 0 0)
    (send rp :y-axis nil nil 0)
    (send rp :size (select rp-size 0) (round (/ (select rp-size 1) 3)))
    (send rp :show-window)
    (interval-slider-dialog
     (list (min coefs) (max coefs))
     :points npts
     :title "Ref. center"
     :action #'(lambda (x)
		 (send rp :clear-lines)
		 (send rp :add-lines (+ x (* scale-factor txvals)) yvals)
		 (send rp :abline 0 0)))
    rp))
  
;;;
;;; Slot Accessors and Mutators
;;;

(defmeth Ext-oneway-model-proto  :f-ratio ()
"Message args: ()
Returns the F-ratio for the one-way analysis of variance model"
  (cond ((slot-value 'f-ratio) (slot-value 'f-ratio))
	(t (setf (slot-value 'f-ratio)
		 (/ (send self :group-mean-square)
		    (send self :error-mean-square)))
	   (slot-value 'f-ratio))))

(defmeth Ext-oneway-model-proto  :p-value ()
"Message args: ()
Returns the p-value for the one-way analysis of variance model"
  (cond ((slot-value 'p-value) (slot-value 'p-value))
	(t (setf (slot-value 'p-value)
		 (- 1 (f-cdf (send self :f-ratio)
			     (send self :group-df)
			     (send self :error-df))))
	   (slot-value 'p-value))))

;;; $Id: oneway-test.lsp,v 1.1 1994/01/26 20:57:50 bates Exp $
;;;
;;; Data set from Table 6.1 (p. 166) of Box, Hunter, and Hunter
;;; "Statistics for Experimenters" (Wiley, 1979).  Blood coagulation
;;; times for four different diets.

(def coag-fit (Ext-ONEWAY-MODEL
	       '((62 60 63 59)
		 (63 67 71 64 65 66)
		 (68 66 71 67 68 68)
		 (56 62 60 61 63 64 63 59))
	       :GROUP-NAMES '("A" "B" "C" "D")))

(def coag-ref-plot (send coag-fit :ref-plot))


From owner-SL-news  Fri Jan 28 15:17:22 1994
Resent-Date: Fri, 28 Jan 1994 15:17:22 +0000
Resent-From: owner-SL-news
Resent-Message-Id: <199401281517.AA23077@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 28 Jan 1994 09:17:53 -0600
Received: from oxdsa.ox.ac.uk by umnstat.stat.umn.edu; Fri, 28 Jan 1994 09:17:46 -0600
Received: from vax.ox.ac.uk by oxdsa.ox.ac.uk with SMTP (PP) 
          id <09834-0@oxdsa.ox.ac.uk>; Fri, 28 Jan 1994 15:17:33 +0000
Received: by vax.ox.ac.uk (MX V3.3 VAX) id 28798;
          Fri, 28 Jan 1994 15:17:27 +0000
Sender: halpin@vax.ox.ac.uk
Date: Fri, 28 Jan 1994 15:17:22 +0000
From: Brendan Halpin <halpin@vax.ox.ac.uk>
To: STAT-LISP-NEWS@umnstat
Cc: halpin@vax.ox.ac.uk
Message-Id: <00979379.3E1C1266.28798@vax.ox.ac.uk>
Subject: Font in XLisp-stat for Windows
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Brendan Halpin <halpin@vax.ox.ac.uk>

I hope this isn't a FAQ, but I can't find any way to change
the font or the font size in XLisp-stat under MS-Windows. 
I'm using XLISP-STAT version 2.1 Release 3 Alpha 6.

The default size is too small to read comfortably on my screen
which makes it a bit of a chore to use the program.

Any suggestions will be appreciated,

Brendan Halpin
Department of Applied Social Studies
University of Oxford

From owner-SL-news  Sat Jan 29 10:52:25 1994
Resent-Date: Sat, 29 Jan 1994 18:52:25 -0800 (PST)
Resent-From: owner-SL-news
Resent-Message-Id: <199401300250.AA29829@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 29 Jan 1994 20:50:51 -0600
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 29 Jan 1994 20:50:46 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.09) id AA17259; Sat, 29 Jan 94 18:52:26 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.09) id AA14101; Sat, 29 Jan 94 18:52:26 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9401300252.AA14101@galton.math.ucla.edu>
Subject: none
To: stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 29 Jan 1994 18:52:25 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 199       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

recipients stat-lisp-news
-- 
Jan de Leeuw; Dept Math UCLA; phone (310)-825-9550; fax (310)-206-6673      
mail: 405 Hilgard Ave, Los Angeles, CA 90024-1555
INTERNET: deleeuw@laplace.stat.ucla.edu  

From owner-SL-news  Wed Feb  2 08:11:16 1994
Resent-Date: Wed, 2 Feb 94 16:11:16 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199402030011.AA01516@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 2 Feb 1994 18:11:09 -0600
Received: from heart.cor.epa.gov by umnstat.stat.umn.edu; Wed, 2 Feb 1994 18:11:04 -0600
Received: from splish.cor3.epa.gov by heart.cor.epa.gov (5.4R2.01T/5.40/1.0)
	id AA10987; Wed, 2 Feb 1994 16:10:55 -0500
Received: from anonimo.cor3.epa.gov by splish.cor3.epa.gov. (4.1/SMI-4.1)
	id AA09240; Wed, 2 Feb 94 16:11:16 PST
Date: Wed, 2 Feb 94 16:11:16 PST
From: dkugler@splish.cor3.epa.gov (Dan Kugler)
Message-Id: <9402030011.AA09240@splish.cor3.epa.gov.>
To: stat-lisp-news@umnstat
Subject: Bootstrap using Xlisp
Cc: dkugler@heart.cor.epa.gov
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: dkugler@splish.cor3.epa.gov (Dan Kugler)

Anyone out there attempted to use the bootstrap methodology
in the Xlisp language?

Willing to share your insight into pitfalls, ideas, etc?

thanks, dkugler@heart.cor.epa.gov

From sdm7g@elvis.med.virginia.edu  Thu Feb  3 04:48:02 1994
Received: from virginia.edu (uvaarpa.Virginia.EDU) by umnstat.stat.umn.edu; Thu, 3 Feb 1994 09:21:45 -0600
Received: from elvis.med.virginia.edu by uvaarpa.virginia.edu id aa12576;
          3 Feb 94 9:48 EST
Received: by elvis.med.Virginia.EDU (5.65c/1.34)
	id AA17598; Thu, 3 Feb 1994 09:48:02 -0500
Date: Thu, 3 Feb 1994 09:48:02 -0500
From: "Steven D. Majewski" <sdm7g@elvis.med.virginia.edu>
Message-Id: <199402031448.AA17598@elvis.med.Virginia.EDU>
X-Mailer: Mail User's Shell (7.2.3 5/22/91)
To: Dan Kugler <dkugler@splish.cor3.epa.gov>, SL-news-list@umnstat,
        stat-lisp-news@umnstat
Subject: Re: Bootstrap using Xlisp

On Feb 2, 16:11, Dan Kugler wrote:
> 
> Anyone out there attempted to use the bootstrap methodology
> in the Xlisp language?
> 
> Willing to share your insight into pitfalls, ideas, etc?
> 

What *IS* the "bootstrap methodology" ? 

Also: 
 * Has the XLISP-STAT book been published yet ? 
 * Are there any other sources of documentation to the plot and 
 graph class methods available ? Through a lot of "( send obj :help
 :method )"-'s , I've been able to figure out how to do some basic
 stuff like setting my colors on a multi-line plot, and rescale 
 the plots - now I would like to figure out how to link lines 
 in different plots, and otherwise make the objects in the plots 
 more "responsive" . 


- Steve Majewski       (804-982-0831)      <sdm7g@Virginia.EDU>
- UVA Department of Molecular Physiology and Biological Physics


From billh@lsid.hp.com  Thu Feb  3 00:39:50 1994
Received: from hp.com by umnstat.stat.umn.edu; Thu, 3 Feb 1994 10:39:57 -0600
Received: from labmdv.lsid.hp.com by hp.com with SMTP
	(1.36.108.7/15.5+IOS 3.13) id AA07171; Thu, 3 Feb 1994 08:39:55 -0800
Received: by labmdv.lsid.hp.com
	(1.37.109.4/15.5+ECS 3.3) id AA04185; Thu, 3 Feb 94 08:39:51 -0800
From: Bill Harris <billh@lsid.hp.com>
Message-Id: <9402031639.AA04185@labmdv.lsid.hp.com>
Subject: Re: Bootstrap using Xlisp (fwd)
To: SL-news-list@umnstat (XLISP-STAT Mailing List)
Date: Thu, 3 Feb 94 8:39:50 PST
Mailer: Elm [revision: 70.85]

>
>
>Also: 
> * Has the XLISP-STAT book been published yet ? 

Yes.  It's called "LISP-STAT", written by Luke Tierney, and published by
John Wiley & Sons (1990).

>
>- Steve Majewski       (804-982-0831)      <sdm7g@Virginia.EDU>
>- UVA Department of Molecular Physiology and Biological Physics
>
>


--
Bill Harris                             Hewlett-Packard Co. 
R&D Productivity Department             Lake Stevens Instrument Division 
domain: billh@lsid.hp.com               M/S 90
hpdesk: Bill Harris / HPA100            8600 Soper Hill Road
phone: (206) 335-2200                   Everett, WA 98205-1298 
                    

From owner-SL-news  Thu Feb  3 04:48:02 1994
Resent-Date: Thu, 3 Feb 1994 09:48:02 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199402031702.AA04877@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 3 Feb 1994 11:02:17 -0600
Received: from virginia.edu (uvaarpa.Virginia.EDU) by umnstat.stat.umn.edu; Thu, 3 Feb 1994 09:21:45 -0600
Received: from elvis.med.virginia.edu by uvaarpa.virginia.edu id aa12576;
          3 Feb 94 9:48 EST
Received: by elvis.med.Virginia.EDU (5.65c/1.34)
	id AA17598; Thu, 3 Feb 1994 09:48:02 -0500
Date: Thu, 3 Feb 1994 09:48:02 -0500
From: "Steven D. Majewski" <sdm7g@elvis.med.virginia.edu>
Message-Id: <199402031448.AA17598@elvis.med.Virginia.EDU>
X-Mailer: Mail User's Shell (7.2.3 5/22/91)
To: Dan Kugler <dkugler@splish.cor3.epa.gov>, SL-news-list@umnstat,
        stat-lisp-news@umnstat
Subject: Re: Bootstrap using Xlisp
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Steven D. Majewski" <sdm7g@elvis.med.virginia.edu>

On Feb 2, 16:11, Dan Kugler wrote:
> 
> Anyone out there attempted to use the bootstrap methodology
> in the Xlisp language?
> 
> Willing to share your insight into pitfalls, ideas, etc?
> 

What *IS* the "bootstrap methodology" ? 

Also: 
 * Has the XLISP-STAT book been published yet ? 
 * Are there any other sources of documentation to the plot and 
 graph class methods available ? Through a lot of "( send obj :help
 :method )"-'s , I've been able to figure out how to do some basic
 stuff like setting my colors on a multi-line plot, and rescale 
 the plots - now I would like to figure out how to link lines 
 in different plots, and otherwise make the objects in the plots 
 more "responsive" . 


- Steve Majewski       (804-982-0831)      <sdm7g@Virginia.EDU>
- UVA Department of Molecular Physiology and Biological Physics


From owner-SL-news  Thu Feb  3 06:04:00 1994
Resent-Date: 3 Feb 94 12:04:00 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199402031804.AA05277@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 3 Feb 1994 12:04:29 -0600
Message-Id: <199402031804.AA05270@umnstat.stat.umn.edu>
Received: from orion (orion.depaul.edu) by umnstat.stat.umn.edu; Thu, 3 Feb 1994 12:04:25 -0600
Date: 3 Feb 94 12:04:00 CST
From: "Adam Gehr" <FINAKG@orion.depaul.edu>
Subject: bug in windows Xlisp-stat
To: "stat-lisp-news" <stat-lisp-news@umnstat>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Adam Gehr" <FINAKG@orion.depaul.edu>

I've found the most interesting bug in the windows version of xlisp-stat.

 In windows you can associate a file extension (e.g. .lsp) with an exe
file so when you click on a file with the proper extension it is handed
to the exe file when it loads. This only works sometimes in xlisp-stat. 
 Sometimes the file loads as requested, but sometimes you get an
error message from xlisp-stat saying that the file can't be loaded.

 The interesting thing is that the error message seems to be associated
with the file name! In other words, changing the file name will change
it from a loading file to a non-loading file. On my computer at home
a file will load as he.lsp or as hel.lsp, but not as hell.lsp or hello.lsp.
Note that this is the same file--I just rename it. 

 Furthermore names which load on my home computer don't load on the 
machine in my office. Op-graph.lsp works fine at home, but won't 
work on my office machine (without a change of name). 

  Both machines are 486DX machines. The office machine is running DOS 6.0 and 
my machine at home is running DOS 6.2. Both run under Norton Desktop and
the machine at work runs an AT&T network which is basically Microsoft's
network software.


            Adam Gehr
             Department of Finance
              DePaul University
              FINAKG@DEPAUL (BITNET)
              FINAKG@ORION.DEPAUL.EDU (Internet)    
   


From billh@lsid.hp.com  Thu Feb  3 04:30:50 1994
Received: from hp.com by umnstat.stat.umn.edu; Thu, 3 Feb 1994 14:30:55 -0600
Received: from labmdv.lsid.hp.com by hp.com with SMTP
	(1.36.108.7/15.5+IOS 3.13) id AA21558; Thu, 3 Feb 1994 12:30:52 -0800
Received: by labmdv.lsid.hp.com
	(1.37.109.4/15.5+ECS 3.3) id AA04588; Thu, 3 Feb 94 12:30:51 -0800
From: Bill Harris <billh@lsid.hp.com>
Message-Id: <9402032030.AA04588@labmdv.lsid.hp.com>
Subject: What is bootstrapping, anyway?
To: SL-news-list@umnstat (XLISP-STAT Mailing List)
Date: Thu, 3 Feb 94 12:30:50 PST
Mailer: Elm [revision: 70.85]

I did find a reference on sci.stat.math some time ago to a book that I
haven't read yet; it may answer someone's earlier question as to what
bootstrapping is.

Regards,

Bill 

>>
>>BOOK TITLE__An Introduction to the Bootstrap____________________
>>
>>________________________________________________________________
>>
>>AUTHOR'S NAME__B. Efron & R. J. Tibshirani______________________
>>
>>DATE OF PUBLICATION___Chapman and Hall, 1993____________________


--
Bill Harris                             Hewlett-Packard Co. 
R&D Productivity Department             Lake Stevens Instrument Division 
domain: billh@lsid.hp.com               M/S 90
hpdesk: Bill Harris / HPA100            8600 Soper Hill Road
phone: (206) 335-2200                   Everett, WA 98205-1298 
                    

From owner-SL-news  Thu Feb  3 07:30:50 1994
Resent-Date: Thu, 3 Feb 94 15:30:50 PST
Resent-From: owner-SL-news
Resent-Message-Id: <199402032330.AA06882@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 3 Feb 1994 17:30:42 -0600
Received: from heart.cor.epa.gov by umnstat.stat.umn.edu; Thu, 3 Feb 1994 17:30:38 -0600
Received: from splish.cor3.epa.gov by heart.cor.epa.gov (5.4R2.01T/5.40/1.0)
	id AA20452; Thu, 3 Feb 1994 15:30:29 -0500
Received: from hammer.cor3.epa.gov by splish.cor3.epa.gov. (4.1/SMI-4.1)
	id AA27832; Thu, 3 Feb 94 15:30:50 PST
Date: Thu, 3 Feb 94 15:30:50 PST
From: mcdowell@splish.cor3.epa.gov (Mike McDowell)
Message-Id: <9402032330.AA27832@splish.cor3.epa.gov.>
To: stat-lisp-news@umnstat
Subject: xlispstat under Linux?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: mcdowell@splish.cor3.epa.gov (Mike McDowell)

Hi all -
I've been trying to build xlispstat (unsuccessfully) under Linux.
Has anyone done this, and would you mind sending me some pointers?
Thanks,
Mike 
-------------------------------------------------------------------------------
Mike McDowell                   ManTech Environmental Technology, Inc.
mcdowell@splish.cor3.epa.gov	USEPA Environmental Research Lab - Corvallis,OR
-------------------------------------------------------------------------------


From maechler@stat.math.ethz.ch  Fri Feb  4 12:49:05 1994
Received: from bernina.ethz.ch (bernina-ether.ethz.ch) by umnstat.stat.umn.edu; Fri, 4 Feb 1994 04:49:30 -0600
Received: from stat.math.ethz.ch (actually aryness.ethz.ch) by bernina.ethz.ch 
          with SMTP inbound; Fri, 4 Feb 1994 11:49:07 +0100
Received: by stat.math.ethz.ch; Fri, 4 Feb 94 11:49:05 +0100
From: maechler@stat.math.ethz.ch (Martin Maechler)
Date: Fri, 4 Feb 94 11:49:05 +0100
Message-Id: <9402041049.AA09961@stat.math.ethz.ch>
To: mcdowell@splish.cor3.epa.gov
Cc: SL-news-list@umnstat
In-Reply-To: <199402032330.AA06882@umnstat.stat.umn.edu> (mcdowell@splish.cor3.epa.gov)
Subject: Re: xlispstat under Linux?
Reply-To: Martin Maechler <maechler@stat.math.ethz.ch>

This was posted here not so long ago.
>>     To: swk@mlb.semi.harris.com (Song Koh)
>>     Cc: stat-lisp-news@umnstat.stat.umn.edu
>>     Subject: Re: xlispstat on Linux [repost] 
>>     Date: Tue, 26 Oct 93 06:39:07 -0500
>>     From: kademan@stat.wisc.edu
>> 
>>     > I am interested in porting xlispstat to Linux.
>> 
>>     There seems to be a port of xlispstat to linux on the machine
>>     sunsite.unc.edu in the file
>> 
>>     /pub/Linux/X11/xapps/math/xlispstat2.1R2.tar.gz
>> 
>>     I haven't tried it or anything.
Nor did I,
The file's still there. It does NOT contain the source [but the .lsp
files], so I wonder if it still runs with the newer shared libraries of Linux.

The only hint about it's origin [after untarring..] 
-- and hint on how to install --
is the file  /usr/src/xlispstat/README.linux,
which I here cite

Rd> OK, finaly some stats package for Linux community. This is xlispstat2.1R2 .
Rd> The package compiled without a hitch except for line 236 in X11BSDstuff.c:
Rd> It had:
Rd> if (file->_cnt > 0) return(TRUE);
Rd> which is BAD as it plays with FILE struct directly. Linux does not have 
Rd> '_cnt' field so I change it to eqally bad, but working thing:
Rd>  if (file->_gptr < file->_egptr ) return(TRUE);
Rd> This is in function :
Rd> static char_available()
Rd> so I guess it is used for terminal polling. I can already hear HJ Lu screaming
Rd> in justified way :-)  but I do not know how to correct in
Rd> more portable way. You can get a source code for it from:
Rd> umnstat.stat.umn.edu in pub/xlispstat or some-such. There are also some 
Rd> problems with Makefile but they are easy to solve.
>> 
Rd> There is one more thing to do: dynamic loading of user's object code.
Rd> I undefined it right now, but will try to look into it. Xlispstat has some
Rd> very long file which does loading by hand (striping symbol table, initializing
Rd> bbs, and other horrible stuff.) On the other hand Splus (other stats package)
Rd> on SGI at University, uses 'ld -A' to accomplish the same thing. If someone
Rd> could enlighten me on that, I would be delighted.
>> 
Rd> Please read README's and techreport.ps. Former contain copyright notices and
Rd> other info, latter has 100+ page manual in PostScript. There is also a book
Rd> on the system, by author called XlispStat or so.
Rd> 
Rd>			  Rafal

I am interested in hearing from experiences, too; since I will want to
install it in Linux..



Martin Maechler <maechler@stat.math.ethz.ch>				<><
Seminar fuer Statistik, SOL F5 \\ ETH (Federal Inst. Technology)
8092 Zurich  SWITZERLAND
phone: x-41-1-632-3408
fax  : x-41-1-252-3410



From pcolsen@super.org  Fri Feb  4 18:49:09 1994
Received: from super.super.org by umnstat.stat.umn.edu; Fri, 4 Feb 1994 22:49:10 -0600
Received: from descartes.super.org by super.super.org (4.1/SMI-4.1)
	id AA23628; Fri, 4 Feb 94 23:49:09 EST
Date: Fri, 4 Feb 94 23:49:09 EST
From: pcolsen@super.org (Peter C Olsen)
Message-Id: <9402050449.AA23628@super.super.org>
Received: by descartes.super.org (4.1/SMI-4.1)
	id AA10408; Fri, 4 Feb 94 23:49:07 EST
To: SL-news-list@umnstat
Subject: XlispStat on SGI

I'm running XlispStat on an SGI Indigo, but I can't seem to get
foreign function calls working.  Has anyone else done so?

Peter

   Peter Olsen, n2ell, pcolsen@super.super.org  ...!uunet!super!pcolsen
         P.O. Box 410, Simpsonville, MD 21150-0410; 410-997-8584
     "Engineering is the art of applying a professional knowledge of
   mathematics and the physical sciences to improve the quality of life"

From naras@euler.bd.psu.edu  Sat Feb  5 09:48:40 1994
Received: from euler.bd.psu.edu by umnstat.stat.umn.edu; Sat, 5 Feb 1994 13:47:20 -0600
Received: by euler.bd.psu.edu (930416.SGI/930416.SGI.AUTO)
	for SL-news-list@umnstat.stat.umn.edu id AA04295; Sat, 5 Feb 94 14:48:55 -0500
From: "Balasubramanian Narasimhan" <naras@euler.bd.psu.edu>
Message-Id: <9402051448.ZM4293@euler.bd.psu.edu>
Date: Sat, 5 Feb 1994 14:48:40 -0500
In-Reply-To: pcolsen@super.org (Peter C Olsen)
        "XlispStat on SGI" (Feb  4, 11:49pm)
References: <9402050449.AA23628@super.super.org>
X-Mailer: Z-Mail (3.0B.0 25aug93 MediaMail)
To: pcolsen@super.org (Peter C Olsen)
Subject: Re: XlispStat on SGI
Cc: SL-news-list@umnstat
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Feb 4, 11:49pm, Peter C Olsen wrote:
> Subject: XlispStat on SGI
> I'm running XlispStat on an SGI Indigo, but I can't seem to get
> foreign function calls working.  Has anyone else done so?

Do you have static versions of your libraries?

Luke Tierney has the necessary files for Xlisp-Stat on SGI IRIX,
provided one has the static libraries.  I enclose the shar files he sent me when
I made a similar request. SGI has made the decision not to supply static
versions of the libraries, at least with IRIX 5.x.x, and therefore you might be
stuck, like me, unless you can somehow compile the stuff on a machine that has
such libraries.

I have been looking into hacking some of the code to use DSO's (Dynamic Shared
Objects) via the dlxxx calls for incremental loading but I am afraid I do not
understand the complexities well enough. If anyone can give me a better idea of
the dynamic loading code, I will invest the time to do it.

************** Begin Include ******************
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  sgi4d sgi4d/README sgi4d/foreign.h
# Wrapped by luke@nokomis.stat.umn.edu on Tue Oct 27 11:57:37 1992
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test ! -d 'sgi4d' ; then
    echo shar: Creating directory \"'sgi4d'\"
    mkdir 'sgi4d'
fi
if test -f 'sgi4d/README' -a "${1}" != "-c" ; then
  echo shar: Will not clobber existing file \"'sgi4d/README'\"
else
echo shar: Extracting \"'sgi4d/README'\" \(438 characters\)
sed "s/^X//" >'sgi4d/README' <<'END_OF_FILE'
XTo compile, add -cckr to the UCFLAGS and -lmld to EXTRALIBS. Set the
XMACHINE variable to sgi4d. For the moment you also have to edit
Xddistribs.c to change the `rand' function to something like Rand,
Xsince cc complains about the redefinion of rand from math.h (I think).
X
XFinally, to make with X11 support use `make X11WINDOWS' followed by
X`make'.  (For some reason make seems to insist on recompiling xlisp.c
Xinto a standalone program.)
X
END_OF_FILE
if test 438 -ne `wc -c <'sgi4d/README'`; then
    echo shar: \"'sgi4d/README'\" unpacked with wrong size!
fi
# end of 'sgi4d/README'
fi
if test -f 'sgi4d/foreign.h' -a "${1}" != "-c" ; then
  echo shar: Will not clobber existing file \"'sgi4d/foreign.h'\"
else
echo shar: Extracting \"'sgi4d/foreign.h'\" \(1004 characters\)
sed "s/^X//" >'sgi4d/foreign.h' <<'END_OF_FILE'
X#include <a.out.h>
X#include <ldfcn.h>
X
X#define INTERNAL_CNAME_PATTERN "%s"
X#define INTERNAL_FNAME_PATTERN "%s_"
X#define COFF_FORMAT
X#define CLIBS "-lm -lc"
X#define FLIBS "-lm -lc -lF77 -lI77 -lU77"
X#define LDPATTERN "ld -d -N -x -A %s -G 0 -T %x %s %s %s -o %s"
X#define TMPPATTERN "/tmp/xlispdyn%d"
X#define TMPNAMESIZE 32
X#define PAGE_SIZE 4096
X#define MIN_ALLOC 10000 + PAGE_SIZE
X#define VERBDFLT TRUE
X
X#define SYMENT SYMR
X#define SYMVALUE(sym) ((char *) ((sym).value))
X#define N_SECTIONS(ldptr) HEADER(ldptr).f_nscns
X#define SCN_ADDR(ldptr,section_header) (section_header).s_vaddr
X#define SCN_LENGTH(ldptr,section_header) (section_header).s_size
X#define SCN_FILE_LOC(ldptr,section_header) ((section_header).s_scnptr)
X#define SCN_IS_BSS(ldptr,section_header) \
X        (strcmp(section_header.s_name, ".bss") == 0 \
X        || strcmp(section_header.s_name, ".sbss") == 0)
X
X#define SYM_IS_GLOBAL_FUNCTION(ldptr,symbol) \
X        ((symbol).sc == scText && (symbol).st == stProc)
X
Xextern char *ldgetname();
END_OF_FILE
if test 1004 -ne `wc -c <'sgi4d/foreign.h'`; then
    echo shar: \"'sgi4d/foreign.h'\" unpacked with wrong size!
fi
# end of 'sgi4d/foreign.h'
fi
echo shar: End of shell archive.
exit 0





From owner-SL-news  Wed Feb  9 05:54:09 1994
Resent-Date: Wed,  9 Feb 1994 10:54:09 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199402091555.AA04579@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 9 Feb 1994 09:55:29 -0600
Received: from PO3.ANDREW.CMU.EDU by umnstat.stat.umn.edu; Wed, 9 Feb 1994 09:55:25 -0600
Received: from localhost (postman@localhost) by po3.andrew.cmu.edu (8.6.4/8.6.4) id KAA10425 for stat-lisp-news@umnstat.stat.umn.edu; Wed, 9 Feb 1994 10:55:22 -0500
Received: via switchmail; Wed,  9 Feb 1994 10:55:21 -0500 (EST)
Received: from pcs18.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/service/mailqs/q002/QF.chKEQbG00iV4A0aHlM>;
          Wed,  9 Feb 1994 10:54:15 -0500 (EST)
Received: from pcs18.andrew.cmu.edu via qmail
          ID </afs/andrew.cmu.edu/usr20/dc6b/.Outgoing/QF.chKEQVy00iV44265dO>;
          Wed,  9 Feb 1994 10:54:10 -0500 (EST)
Received: from mms.4.170.Jan.10.1994.08.16.31.sun4c.411.MacMail.5.2.CUILIB.3.45.SNAP.NOT.LINKED.pcs18.andrew.cmu.edu.sun4c.411
          via MS.5.6.pcs18.andrew.cmu.edu.sun4c_411;
          Wed,  9 Feb 1994 10:54:09 -0500 (EST)
Message-Id: <chKEQVq00iV44265VC@andrew.cmu.edu>
Date: Wed,  9 Feb 1994 10:54:09 -0500 (EST)
From: David Chinn <chinn+@CMU.EDU>
To: stat-lisp-news@umnstat
Subject: lisp-stat CL
Cc: 
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: David Chinn <chinn+@CMU.EDU>

I am trying to get lisp-stat in Common Lisp up on my machine (Mac with
MCL 2.0.1). I am not having too much joy. Is there a compiled version
anywhere? Has anyone ported any of the graphical stuff to MCL? Where is
the home ftp site for CL lisp-stat?

Help will be much appreciated.

David

/=========================================================\
\    David Chinn                   E-mail: chinn+@cmu.edu /
/    Psychology Dept,                                     \
\    Carnegie Mellon University,                          /
/    Pittsburgh, PA 15213.         Tel (412) 268-8112     \
\=========================================================/

From owner-SL-news  Wed Feb  9 05:03:17 1994
Resent-Date: Wed, 9 Feb 94 11:03:17 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199402091703.AA04958@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 9 Feb 1994 11:03:26 -0600
Received: from vuse.vanderbilt.edu (vuse.vuse.vanderbilt.edu) by umnstat.stat.umn.edu; Wed, 9 Feb 1994 11:03:22 -0600
Received: from aim.vuse by vuse.vanderbilt.edu (8.6.5/SMI-4.1/VUSE-1.12)
	id LAA15104; Wed, 9 Feb 1994 11:03:19 -0600
Received: by aim.vuse (4.1/SMI-4.0/DRL-2a)
	id AA13963; Wed, 9 Feb 94 11:03:17 CST
Date: Wed, 9 Feb 94 11:03:17 CST
From: dfisher@vuse.vanderbilt.edu (Douglas H. Fisher)
Message-Id: <9402091703.AA13963@aim.vuse>
To: stat-lisp-news@umnstat
Subject: AI and Statistics Workshop
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: dfisher@vuse.vanderbilt.edu (Douglas H. Fisher)



                           Call For Papers
                    Fifth International Workshop on

                       Artificial Intelligence
                                and
                             Statistics

                          January 4-7, 1995
                       Ft. Lauderdale, Florida

PURPOSE:
This is the fifth in a series of workshops which has 
brought together researchers in Artificial Intelligence and in
Statistics to discuss problems of mutual interest. The exchange has 
broadened research in both fields and has strongly encouraged 
interdisciplinary work.

This workshop will have as its primary theme:

                   ``Learning from data''

Papers on other topics at the interface of AI & Statistics
are *strongly* encouraged as well (see TOPICS below).

FORMAT:
To encourage interaction and a broad exchange of ideas, the
presentations will be limited to about 20 discussion papers in single
session meetings over three days (Jan. 5-7). Focussed poster 
sessions will provide the means for presenting and discussing the 
remaining research papers. Papers for poster sessions will be treated 
equally with papers for presentation in publications.

Attendance at the workshop will *not* be limited.

The three days of research presentations will be preceded by a day
of tutorials (Jan. 4).  These are intended to expose researchers 
in each field to the methodology used in the other field. The Tutorial 
Chair is Prakash Shenoy. Suggestions on tutorial topics can be sent to
him at pshenoy@ukanvm.bitnet.

LANGUAGE:
The language will be English.

TOPICS OF INTEREST:

The fifth workshop has a primary theme of

          ``Learning from data''

At least one third of the workshop schedule will be set aside for 
papers with this theme. Other themes will be developed according
to the strength of the papers in other areas, including but not
limited to:

     - integrated man-machine modeling methods
     - empirical discovery and statistical methods for knowledge
       acquisition
     - probability and search
     - uncertainty propagation
     - combined statistical and qualitative reasoning
     - inferring causation
     - quantitative programming tools and integrated software for
       data analysis and modeling.
     - discovery in databases
     - meta data and design of statistical data bases
     - automated data analysis and knowledge representation for
       statistics
     - connectionist approaches
     - learning theory
     - cluster analysis


SUBMISSION REQUIREMENTS:
Three copies of an extended abstract (up to four pages) should be
sent to

  H. Lenz, Program Chair           or  D. Fisher, General Chair
  5th Int'l Workshop on AI & Stats     5th Int'l Workshop on AI & Stats
  Free University of Berlin            Box 1679, Station B
  Department of Economics              Department of Computer Science
  Institute for Statistics             Vanderbilt University
            and Econometrics           Nashville, Tennessee 37235
  14185 Berlin, Garystr 21             USA  
  Germany

or electronically (postscript or latex documents preferred) to

           ai-stats-95@vuse.vanderbilt.edu

Submissions for discussion papers (and poster presentations) will
be considered if *postmarked* by June 30, 1994. If the submission
is electronic (e-mail), then it must be *received* by midnight
June 30, 1994. Abstracts postmarked after this date but *before*
July 31, 1994, will be considered for poster presentation *only*.

Please indicate which topic(s) your abstract addresses and include
an electronic mail address for correspondence. Receipt of all 
submissions will be confirmed via electronic mail. Acceptance 
notices will be mailed by September 1, 1994. Preliminary papers (up 
to 20 pages) must be returned by November 1, 1994. These preliminary 
papers will be copied and distributed at the workshop.

PROGRAM COMMITTEE:

General Chair:    D. Fisher             Vanderbilt U., USA

Program Chair:    H. Lenz               Free U. Berlin, Germany

Members:
                  W. Buntine            NASA (Ames), USA
                  J. Catlett            AT&T Bell Labs, USA
                  P. Cheeseman          NASA (Ames), USA
                  P. Cohen              U. of Mass., USA 
                  D. Draper             U. of Bath, UK
                  Wm. Dumouchel         Columbia U., USA
                  A. Gammerman          U. of London, UK
                  D. J. Hand            Open U., UK
                  P. Hietala            U. Tampere, Finland
                  R. Kruse              TU Braunschweig, Germany
                  S. Lauritzen          Aalborg U., Denmark
                  W. Oldford            U. of Waterloo, Canada
                  J. Pearl              UCLA, USA
                  D. Pregibon           AT&T Bell Labs, USA
                  E. Roedel             Humboldt U., Germany
                  G. Shafer             Rutgers U., USA
                  P. Smyth              JPL, USA


MORE INFORMATION:
For more information write dfisher@vuse.vanderbilt.edu
or write to ai-stats-request@watstat.uwaterloo.ca to
subscribe to the AI and Statistics mailing list.


SPONSORS: Society for Artificial Intelligence and Statistics
          International Association for Statistical Computing

From owner-SL-news  Wed Feb  9 03:04:40 1994
Resent-Date: Wed, 9 Feb 1994 11:04:40 -0800 (PST)
Resent-From: owner-SL-news
Resent-Message-Id: <199402091903.AA05616@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 9 Feb 1994 13:03:14 -0600
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Wed, 9 Feb 1994 13:03:10 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.09) id AA00661; Wed, 9 Feb 94 11:04:41 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.09) id AA07109; Wed, 9 Feb 94 11:04:41 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9402091904.AA07109@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat (Xlisp List)
Date: Wed, 9 Feb 1994 11:04:40 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2820      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Update February 1, 1994

I am maintaining an archive of Xlisp and Xlisp-Stat code on
laplace.stat.ucla.edu, accessible by anonymous ftp in
pub/lisp/xlisp/xlisp-stat. At the higher levels you will
find xlisp21f, various xlisp extensions and additions,
PD or shareware Common Lisp systems, etc. This distinguishes
our collection from that of statlib: it is much more specialized
towards tex and lisp and gnu and friends, and it concentrates
on the Mac and Sun platforms.

My reasons for using Lisp-Stat are simple: I want quality free software
that can be used in all kinds of stat courses, that I can give
away to all my students to run on their own beloved machines at
home, and that runs on all the major platforms. I also want
excess to all the source code, and I want to be able to
extend the system, both at compile-time and at run-time. Also I
do not want to burden my budget with unnessary fees for
site-licenses, etc.

In order to be able to compete with commercial products, such
as MatLab or S-Plus, which are not that expensive for students
and/or universities either, and which are also quite 
extensible (at least at run-time),
it is necessary that good documentation and interesting
source code is available. The Xlisp(Stat) documentation at the
moment aims at a fairly high level of stat person, we need
simpler tutorials. There is quite a lot of code available that
can be used for extensions of the basic system (although only
a fraction of what there is for S-Plus and MatLab), but it is
quite difficult to get a hold of.

At UCLA we are developing Xlisp code for various research projects
(Slicing Inverse Regression, Multilevel Analysis), for
introductory statistics teaching (bootstrap, randomization tests),
for extending basic Xlisp-Stat functionality (formatted input,
interface with gnuplot for production quality plots, graphical
spreadsheet data editor). We are also writing documentation on
various levels and we are extending the interpreter in various
ways. One major projects is to translate all of Lisp-Stat in
Common Lisp, getting rid of the foreign function interfaces.
The graphical data editor is actually a WIMP interface on top
of Lisp-Stat, which makes it possible to mouse your way through
introductory statistics. 

Most of the code can be found in pub/lisp/xlisp/xlisp-stat on laplace,
in the homegrown subdirectory. Remember, however, that this
is work in progress. It changes frequently. 

It would be nice if persons who have xlisp code and/or documentation
to contribute would send this to me (deleeuw@laplace.stat.ucla.edu).
Even snippets are welcome -- as long as I can make sense out of them.
I'll organize it and describe it. Not right away, and not in great
detail, because I have other things to do (really !). Always remember:
the only real software is free software.

From owner-SL-news  Thu Feb 10 21:20:46 1994
Resent-Date: Thu, 10 Feb 1994 10:20:46 +1100 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199402092321.AA06786@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 9 Feb 1994 17:21:01 -0600
Received: from wraith.cs.uow.edu.au by umnstat.stat.umn.edu; Wed, 9 Feb 1994 17:20:50 -0600
Received: from localhost (kimh@localhost) by wraith.cs.uow.edu.au (8.6.5/8.6.5) id KAA27409 for stat-lisp-news@umnstat.stat.umn.edu; Thu, 10 Feb 1994 10:20:47 +1100
From: Kim Horn <kimh@cs.uow.edu.au>
Message-Id: <199402092320.KAA27409@wraith.cs.uow.edu.au>
Subject: Problem
To: stat-lisp-news@umnstat
Date: Thu, 10 Feb 1994 10:20:46 +1100 (EST)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1098      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Kim Horn <kimh@cs.uow.edu.au>


Hello,
I am not sure if this is the right forum for a
general stats problem but as I am looking for
a solution using Xlisp-Stat, so it may be......

The problem is that I have 35 variables that
I want to choose the best 20 (in some weighted
combination) as a substitute for another variable.

The data is collected across time so each day
I have the 35 measures plus the target measure.

Given say a number of months data we want to be 
able to use the 20 measures as a substitute for
the target measure. Note we actually do not
want to predict the target measure.

ALl the variables represent the cost of items
that change from day to day. We want to find an
optimal combination (integer weighted) that 
behaves like the target items cost and can be
used as a substitute.

Any help or refernces would be welcomed......

Initially I have considered linear regression
(over time..eeK !!) using some measure
to choose the 20 from the 35 variables that gives
the best correlation... But i am not happy with
this and am not sure of the best stats to
discard variables...

Thanks in advance
Kim Horn



From krey@gmdzi.gmd.de  Thu Feb 10 01:57:48 1994
Received: from gmdzi.gmd.de by umnstat.stat.umn.edu; Thu, 10 Feb 1994 01:00:59 -0600
Received: by gmdzi.gmd.de id AA29767
  (5.65c8/IDA-1.4.4 for SL-news-list@umnstat.stat.umn.edu); Thu, 10 Feb 1994 00:57:48 +0100
Date: Thu, 10 Feb 1994 00:57:48 +0100
From: Juergen Krey <Hans.Juergen.Krey@gmd.de>
Message-Id: <199402092357.AA29767@gmdzi.gmd.de>
To: SL-news-list@umnstat
Subject: unsubscribe me

unsubscribe me from your mailing list

From owner-SL-news  Fri Feb 11 07:27:33 1994
Resent-Date: Fri, 11 Feb 1994 12:27:33 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199402111730.AA15529@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 11 Feb 1994 11:30:36 -0600
Received: from mickey.stat.unc.edu by umnstat.stat.umn.edu; Fri, 11 Feb 1994 11:30:32 -0600
Received: from goofy.unc.edu (goofey.stat.unc.edu) by mickey.stat.unc.edu (4.1/TAS/11-16-88)
	id AA25815; Fri, 11 Feb 94 12:32:32 EST
Received: by goofy.unc.edu (4.1/SMI-4.1)
	id AA26192; Fri, 11 Feb 94 12:27:35 EST
Date: Fri, 11 Feb 1994 12:27:33 -0500 (EST)
From: "Frederic Udina @ unc" <udina@stat.unc.edu>
Subject: Building LISP-STAT on SUN ws.
To: stat-lisp-news@umnstat
Message-Id: <Pine.2.4.53.9402111235.B26180@goofy>
 
 hello:
 
 I use xlisp-stat in a X11 environment without problems. Now I am visiting
 a University that have SUN workstations. I have compiled XLISP-STAT
 without problems for running on a SUN. But I cannot run it form another
 SUN workstation connected. When I try to build the mixed version doing
 make X11sun
 I have error messages such as
 X11graph.c: 8: Can't find include file X11/Xlib.h
 X11graph.c: 9: Can't find include file X11/Xutil.h
 X11graph.c: 10: Can't find include file X11/Xos.h
 X11graph.c: 11: Can't find include file X11/cursorfont.h
 X11graph.c: 12: Can't find include file X11/keysym.h
 X11graph.c: 13: Can't find include file X11/Xatom.h
 
 Where can I look  for these files? I am using 
 SunOS 4.1.3 3 sun4c 
 
 Can someone help me?
 
 Thanks
 
 Frederic Udina
 
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Frederic Udina @ unc" <udina@stat.unc.edu>



From luke  Mon Feb 14 08:53:04 1994
Resent-Date: Mon, 14 Feb 1994 14:53:04 -0600
Resent-Message-Id: <199402142053.AA24393@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 14 Feb 1994 14:53:07 -0600
Date: Mon, 14 Feb 1994 14:53:04 -0600
From: "Luke Tierney" <luke>
Message-Id: <199402142053.AA24386@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 14 Feb 1994 14:53:04 -0600
To: stat-lisp-news@umnstat
Subject: porting help
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

I am currently preparing a beta release of a new UNIX version of
xlispstat that will hopefully be ready within a month. The most
important changes are to the basic Lisp system:

	The xlisp base has been changed to xlisp2.1f. This greatly
	improves Common Lisp compatibility. (Many more sequence
	functions that work on all sequence types, multiple values,
	packages, etc.)

	An experimental byte code compiler.

	A new generational garbage collector that should reduce GC
	pauses.

I am now trying to incorporate support in the machines directory for
as many platforms as possible, with dynamic loading wherever possible.
I have access to the following systems:

	DECstation with ULTRIX 4.2a
	HP Snake with HPUX
	DEC Alpha with OSF
	SGI with IRIX
	sun3 with SunOS 4.1

Dynamic loading is available on all these platforms. Please let me
know if you have another platform you would like to see supported AND
you are either willing to help with the port or provide me limited
access to your machine so I can try to do it myself.

I am particularly eager to add support for sparcs under SunOS 4.1 and
Solaris 2, for RS6000's and for Linux.

[Without dynamic loading, the main issue is to find the right
combination of compiler and linker flags to get the combination of C
code and system calls used in the sources to work. To get dynamic
loading to work on a new platform the basic questions are: Does your
OS have shared libraries and if so does it provide some sort of
programmer's interface to them.  If the answers to both are yes,
dynamic loading can probably be added fairly easily. If not, it
probably can't.]

luke

From owner-SL-news  Wed Mar  2 01:19:16 1994
Resent-Date: Wed, 2 Mar 1994 09:19:16 -0800 (PST)
Resent-From: owner-SL-news
Resent-Message-Id: <199403021717.AA28912@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 2 Mar 1994 11:17:53 -0600
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Wed, 2 Mar 1994 11:17:49 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.09) id AA16392; Wed, 2 Mar 94 09:19:17 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.09) id AA18679; Wed, 2 Mar 94 09:19:17 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9403021719.AA18679@galton.math.ucla.edu>
Subject: uclastat
To: stat-lisp-news@umnstat (Xlisp List)
Date: Wed, 2 Mar 1994 09:19:16 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1543      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

One of the things we are building is a WIMP interface to Xlisp-Stat,
at least to the parts of the system that are most useful for introductory
stat teaching. I am doing this with some students, actually. The thing
is changing each day, fortunately. You can ftp the latest version from
laplace.stat.ucla.edu in pub/lisp/xlisp/xlisp-stat/homegrown/data.

There are some data sets. It is easy to add your own. The two basic
prototypes driving the thing are data-variable-proto and
data-multivariable-proto. As a rule, you start in the multivariable
case, which has a scrollable list of variables and a scrollable list
of actions (techniques). If you double-click an action, something
statistical happens. If you double-click a variable, you get into
the variable-editor, which has its own bunch of (univariate)
statistical actions.

The purpose of the effort is to make a system that anybody can use
without actually having to learn any lisp. It is, I would say, about
20% done. It is about as stable as the earth below us. It changes
randomly, and sometimes radically. Some of the code is ugly as hell.
It is fairly modular, so additional stuff (data and methods) can be
plugged in rather easily. 

Use it as you like. Dont say I have not warned you. All suggestions,
additions, flames are more than welcome. Suggestions are more welcome
if they are accompanied by code.

-- 
Jan de Leeuw; Dept Math UCLA; phone (310)-825-9550; fax (310)-206-6673      
mail: 405 Hilgard Ave, Los Angeles, CA 90024-1555
INTERNET: deleeuw@laplace.stat.ucla.edu  

From owner-SL-news  Mon Mar  7 18:49:00 1994
Resent-Date:    Mon, 07 Mar 94 23:49 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199403080451.AA24840@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 7 Mar 1994 22:51:08 -0600
Message-Id: <199403080450.AA24833@umnstat.stat.umn.edu>
Received: from uncmvs.oit.unc.edu by umnstat.stat.umn.edu; Mon, 7 Mar 1994 22:50:57 -0600
Received: from UNCMVS.OIT.UNC.EDU by UNCMVS.OIT.UNC.EDU (IBM MVS SMTP V2R2.1)
   with BSMTP id 6675; Mon, 07 Mar 94 23:50:18 LCL
Date:    Mon, 07 Mar 94 23:49 EST
From: "Mary McFarlane"                            <MARYMC@UNCMVS.OIT.UNC.EDU>
To: stat-lisp-news@umnstat
Subject: backtracking in newtonmax
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Mary McFarlane"                            <MARYMC@UNCMVS.OIT.UNC.EDU>

Does anyone have the faintest idea what newtonmax is doing when
it backtracks?  Also, what is "lambda" (as in, "backtracking, lambda
= .324561"), and what method is used to compute it?

I'd appreciate any help.

Thanks in advance,

Mary

From owner-SL-news  Tue Mar  8 03:54:32 1994
Resent-Date: Tue, 8 Mar 94 08:54:32 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199403081357.AA26285@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 8 Mar 1994 07:57:31 -0600
Received: from apeiron.ufstat.ufl.edu (jackcraval.stat.ufl.edu) by umnstat.stat.umn.edu; Tue, 8 Mar 1994 07:57:27 -0600
Received:  by apeiron.ufstat.ufl.edu (NX5.67d/4.09)
	id AA01076; Tue, 8 Mar 94 08:54:32 -0500
Date: Tue, 8 Mar 94 08:54:32 -0500
From: "Charles D. Kincaid" <statman@apeiron.ufstat.ufl.edu>
Message-Id: <9403081354.AA01076@apeiron.ufstat.ufl.edu>
Received: by NeXT.Mailer (1.95)
Received: by NeXT Mailer (1.95)
To: "Mary McFarlane" <MARYMC@UNCMVS.OIT.UNC.EDU>
Subject: Re: backtracking in newtonmax
Cc: stat-lisp-news@umnstat
Reply-To: statman@stat.ufl.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Charles D. Kincaid" <statman@apeiron.ufstat.ufl.edu>


Hello,

>From: "Mary McFarlane"                            <MARYMC@UNCMVS.OIT.UNC.EDU>
>
>Does anyone have the faintest idea what newtonmax is doing when
>it backtracks?  Also, what is "lambda" (as in, "backtracking, lambda
>= .324561"), and what method is used to compute it?

	Well, the lisp code is in maximize.lsp which is probably in  
/usr/local/lib/xlispstat (if you're using the proper system of course. :-)   
Unfortunately, this doesn't help too much.

	Looking in a few books I came up with the following from "Numerical  
Recipes in C" page 384 (a very nice book.  I highly recommend it)

"Thus our strategy is quite simple:  We always first try the full Newton step  
[towards the root], because once we are close enough to the solution we will  
get quadratic convergence.  However, we check at each iteration that the  
propose step reduces $f$ [where $f = 1/2 F \cdot F$, where $F(x) = 0$ is the  
set of equations we are trying to solve.]  If not {\em bactrack} along the  
Newton direction until we have an acceptable step.  Because the Newton step is  
a descent direction for $f$, we are guaranteed to find an acceptable step by  
backtracking. "

	I don't know if the notation is the same, but we can hope that is.   
(Yea, right! :-)  In the non-backtracking mode the Newton step for the set of  
equations above is 

\[
x_{\rm new} = x_{\rm old} + \delta x
\]
where $\delta$ is the step size.  In the "new-and-improved!" backtracking  
version the "goal is to move to a new point $_{\rm new}$ along the {\em  
direction} of the Newton step $p = \delta x$, but not necessarily all the way:
\[
x_{\rm new} = x_{\rm old} + \lambda p,          0 \leq \lambda \leq 1."
\]

They go on to explain the criterion for accepting a step and then the general  
strategy for a practical backtracking routine.  


	I hope this helps.

---
Sincerely,

charles d. kincaid
--------------------------------------------------------------------
Dept. of Statistics              'Damn fine coffee...and hot, too!'
Univ. of Florida                  Pres: G-ville NeXT Users Group
statman@stat.ufl.edu              *****NeXTMail preferred******
(904) 392-1941x206                The Statistical Janitor
--------------------------------------------------------------------
	He has sounded forth the trumpet that shall never call retreat.
	He is sifting out the hearts of men before His judgment seat.
	Oh, be swift my soul to answer Him, be jubilant my feet!
	His Truth is marching on.
--------------------------------------------------------------------

From owner-SL-news  Fri Mar 18 12:24:07 1994
Resent-Date: Fri, 18 Mar 1994 16:24:07 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199403181641.AA14976@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 18 Mar 1994 10:41:14 -0600
Received: from VX.CIS.UMN.EDU (vx.acs.umn.edu) by umnstat.stat.umn.edu; Fri, 18 Mar 1994 10:41:11 -0600
Received: from VM.CISED.UNINA.IT (MAILER@INACISED) by VX.CIS.UMN.EDU (PMDF
 V4.2-13 #2574) id <01HA44H67BMO984O3L@VX.CIS.UMN.EDU>; Fri,
 18 Mar 1994 10:29:15 CDT
Received: from VM.CISED.UNINA.IT (DESPOSIT) by VM.CISED.UNINA.IT (Mailer R2.10
 ptf000) with BSMTP id 0685; Fri, 18 Mar 94 16:28:07 EDT
Date: Fri, 18 Mar 1994 16:24:07 -0400 (EDT)
From: Stefano Pagnotta <DESPOSIT@VM.CISED.UNINA.IT>
Subject: ViSta
To: lisp-stat-news@umnstat
Message-Id: <01HA44IQGIN6984O3L@VX.CIS.UMN.EDU>
Organization: CISED - University of Naples "Federico II"
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Stefano Pagnotta <DESPOSIT@VM.CISED.UNINA.IT>

Hi all,
does anyone know which are the  e-mail addresses of
Forrest W. Young and R.A. Faldowski, univesity of North Carolina.
These would the authors of ViSta, an xlisp-stat program for
multidimensional data exploring.
Where is ViSta?
Ciao, Stefano.

MARIA ROSARIA D'ESPOSITO           PHONE: +39 81 675117
UNIVERSITA' DI NAPOLI              FAX  : +39 81 675009
DIP. DI MATEMATICA E STATISTICA    E-MAIL: DESPOSIT@VM.CISED.UNINA.IT
VIA CINTHIA, M.TE S.ANGELO
80126 NAPOLI ITALY

From billh@lsid.hp.com  Mon Mar 21 05:43:30 1994
Received: from hp.com by umnstat.stat.umn.edu; Mon, 21 Mar 1994 15:43:42 -0600
Received: from labmdv.lsid.hp.com by hp.com with SMTP
	(1.36.108.7/15.5+IOS 3.13) id AA05197; Mon, 21 Mar 1994 13:43:36 -0800
Received: by labmdv.lsid.hp.com
	(1.37.109.4/15.5+ECS 3.3) id AA00992; Mon, 21 Mar 94 13:43:31 -0800
From: Bill Harris <billh@lsid.hp.com>
Message-Id: <9403212143.AA00992@labmdv.lsid.hp.com>
Subject: UCLA add-ons to xlisp-stat?
To: SL-news-list@umnstat (XLISP-STAT Mailing List)
Date: Mon, 21 Mar 94 13:43:30 PST
Mailer: Elm [revision: 70.85]

Earlier this month, someone from UCLA (as I recall) posted a note to this
mailing list describing some add-ons to xlisp-stat which provided more of a
WIMP interface for data analysis.  I pulled in a copy but neglected to keep
a copy of the posting saying where it came from.  Can whoever sent out that
original message write me and tell me the ftp site where it came from?  If
there have been any updates since March 4, I might like to pick them up.

Thanks,

Bill 

--
Bill Harris                             Hewlett-Packard Co. 
R&D Productivity Department             Lake Stevens Instrument Division 
domain: billh@lsid.hp.com               M/S 90
hpdesk: Bill Harris / HPA100            8600 Soper Hill Road
phone: (206) 335-2200                   Everett, WA 98205-1298 
                    

From owner-SL-news  Mon Mar 21 12:54:55 1994
Resent-Date: Mon, 21 Mar 94 17:54:55 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199403212255.AA28217@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 21 Mar 1994 16:55:02 -0600
Received: from dad.bgsu.edu by umnstat.stat.umn.edu; Mon, 21 Mar 1994 16:54:57 -0600
Received: by dad.bgsu.edu (4.1/SMI-4.0)
	id AA03668; Mon, 21 Mar 94 17:54:55 EST
Date: Mon, 21 Mar 94 17:54:55 EST
From: byeh@dad.bgsu.edu (Bai-Yau Yeh)
Message-Id: <9403212254.AA03668@dad.bgsu.edu>
To: stat-lisp-news@umnstat
Subject: R
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: byeh@dad.bgsu.edu (Bai-Yau Yeh)


Hi, my name is Arthur Yeh, could you put me on the mailing list?

I have one quick question, does anyone know how to install xlispstat
on a Sunworkstation running Solaris2.2? What are the things that need
to be modified in the Makefile or some other modifications that'll
make the installation work? I really appreciate if someone out there 
can walk me thru these steps!!

cheers,

Arthur 

From billh@lsid.hp.com  Mon Mar 21 08:02:48 1994
Received: from hp.com by umnstat.stat.umn.edu; Mon, 21 Mar 1994 18:02:53 -0600
Received: from labmdv.lsid.hp.com by hp.com with SMTP
	(1.36.108.7/15.5+IOS 3.13) id AA11373; Mon, 21 Mar 1994 16:02:51 -0800
Received: by labmdv.lsid.hp.com
	(1.37.109.4/15.5+ECS 3.3) id AA01109; Mon, 21 Mar 94 16:02:50 -0800
From: Bill Harris <billh@lsid.hp.com>
Message-Id: <9403220002.AA01109@labmdv.lsid.hp.com>
Subject: Thanks to all
To: SL-news-list@umnstat (XLISP-STAT Mailing List)
Date: Mon, 21 Mar 94 16:02:48 PST
Mailer: Elm [revision: 70.85]

Thanks to all for their quick replies.  The net works!  Indeed, the files
at UCLA are just what I was looking for.  I had an earlier version that
didn't quite work right (or so it seemed) with respect to getting visible
colors on the screen (probably my error), so I thought I would try the
latest to see if that was fixed.  If it isn't, I'll have to presume I have
some setup or at least some understanding to do.

Thanks again,

Bill

--
Bill Harris                             Hewlett-Packard Co. 
R&D Productivity Department             Lake Stevens Instrument Division 
domain: billh@lsid.hp.com               M/S 90
hpdesk: Bill Harris / HPA100            8600 Soper Hill Road
phone: (206) 335-2200                   Everett, WA 98205-1298 
                    

From owner-SL-news  Wed Mar 23 10:52:31 1994
Resent-Date: Wed, 23 Mar 1994 15:52:31 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199403232052.AA07446@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 23 Mar 1994 14:52:47 -0600
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu; Wed, 23 Mar 1994 14:52:44 -0600
Received: from laguna.psych.unc.edu by gibbs.oit.unc.edu (5.64/10.1)
	id AA06346; Wed, 23 Mar 94 15:52:41 -0500
Message-Id: <9403232052.AA06346@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Wed, 23 Mar 1994 15:52:31 -0500
To: stat-lisp-news@umnstat
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: multiple inheritance
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

has anyone out there gotten multiple inheritance to work?  or is it just me
that has problems with it...


=====================================================================
Forrest Young
UNC Psychometrics                 Internet:  uluru@gibbs.oit.unc.edu
CB-3270 Davie Hall                Telephone: 919-962-5038
Chapel Hill NC 27599-3270 USA     FAX:       919-962-2537
=====================================================================



From owner-SL-news  Mon Mar 28 08:39:13 1994
Resent-Date: Mon, 28 Mar 94 13:39:13 EST
Resent-From: owner-SL-news
Resent-Message-Id: <199403281839.AA27472@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 28 Mar 1994 12:39:25 -0600
Received: from dad.bgsu.edu by umnstat.stat.umn.edu; Mon, 28 Mar 1994 12:39:22 -0600
Received: by dad.bgsu.edu (4.1/SMI-4.0)
	id AA29464; Mon, 28 Mar 94 13:39:13 EST
Date: Mon, 28 Mar 94 13:39:13 EST
From: byeh@dad.bgsu.edu (Bai-Yau Yeh)
Message-Id: <9403281839.AA29464@dad.bgsu.edu>
To: stat-lisp-news@umnstat
Subject: Xlispstat on solaris2.2
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: byeh@dad.bgsu.edu (Bai-Yau Yeh)


I really appreciate if anyone can give me instructions on installing
xlispstat on SPARC LX running solaris2.2. What needs to be modified
in order to make xlispstat work?
I have the file "xlispstat2.1R2.tar.Z" on site. My machine is running
solaris2.2 with openwindow3.2.

THANKS IN ADVANCE!!!

Arthur

From owner-SL-news  Mon Mar 28 08:43:50 1994
Resent-Date: Mon, 28 Mar 94 14:43:50 CST
Resent-From: owner-SL-news
Resent-Message-Id: <199403282046.AA28108@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 28 Mar 1994 14:46:12 -0600
Received: from bru.mayo.edu by umnstat.stat.umn.edu; Mon, 28 Mar 1994 14:46:07 -0600
Received: from hsr. (hsr.mayo.edu) by bru.mayo.EDU (4.1/SMI-4.0)
	id AA13375; Mon, 28 Mar 94 14:46:05 CST
Received: from butch by hsr. (4.1/SMI-4.0)
	id AA20997; Mon, 28 Mar 94 14:43:50 CST
Date: Mon, 28 Mar 94 14:43:50 CST
From: wollan@mayo.EDU (Peter Wollan)
Message-Id: <9403282043.AA20997@hsr.>
To: stat-lisp-news@umnstat
Subject: native PowerPC Xlispstat?
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: wollan@mayo.EDU (Peter Wollan)


Is anyone developing a native PowerPC version of xlispstat?  It sounds like
these machines will be ideal for animated data displays.

Peter Wollan
wollan@mayo.edu

From owner-SL-news  Fri Apr  4 14:06:00 1994
Resent-Date: 04 Apr 1994 13:06:00 +0100 (MET)
Resent-From: owner-SL-news
Resent-Message-Id: <199404041214.AA29401@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 4 Apr 1994 07:14:48 -0500
Received: from relay.xlink.net (xlink5.xlink.net) by umnstat.stat.umn.edu; Mon, 4 Apr 1994 07:14:42 -0500
Received: from xlink2.xlink.net by relay.xlink.net id <14246-0@relay.xlink.net>;
          Mon, 4 Apr 1994 14:15:04 +0000
Received: from XLINK2.XLINK.NET (MBA3591) by XLINK2.XLINK.NET (PMDF #3198 ) 
          id <01HAS0XRKLLS000895@XLINK2.XLINK.NET>;
          Mon, 4 Apr 1994 13:06:00 MET
Date: 04 Apr 1994 13:06:00 +0100 (MET)
From: EICKHOFF@dornier.de
To: stat-lisp-news@umnstat
Message-Id: <01HAS0XRLO6Q000895@XLINK2.XLINK.NET>
X-Vms-To: PSI%UNIKA::IN%"stat-lisp-news@umnstat.stat.umn.edu"
Mime-Version: 1.0
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: EICKHOFF@dornier.de

Hello everybody,

I am currently integrating some own C functions to XLisp-Stat for external
communication via apple events. As a first approach I have taken the samplefun
of Jeff Prothero's XLisp Internals Document, distributed by Jan de Leeuw:

"XLisp-Stat, integration of own C-Code on the Mac"

My problem is that this paper just demonstrates how to access 
integers and float values
and lists, but not symbols. I can read symbols and their names from XLisp to C
( and then handle them with events) but I cannot write results back to XLisp
symbols and symbol values. Consider:

(setq a 'value_a)

Within a function (samplefun 'a) I can access a and its value via

        .
        .
        .
LVAL samplefun()
LVAL sym_arg;
        .
        .
char *symname, *symval . . .
        .
        .
    symname = getstring(getpname(sym_arg));            /* "a"  */
    symval  = getstring(getpname(getvalue(sym_arg)));  /* "value_a" */

The problems occur when trying to write results of the function back.
        .
        .

    LVAL sym1_return_ptr;
    char s1_return_name[9] = "retname\0";
        .
        .
    int_ptr = cvfixnum( ...);
    float_ptr   = cvflonum( ....);
    sym1_return_ptr = cvsymbol(s1_return_name));
        .
        .
    result = cons(
                  sym1_return_ptr,
                  cons(
                       int_ptr,
                       cons(
                            float_ptr,
                            NIL
                            )
                       )
                  );
     xlpopn(3);

    return result;
}

Instead of 
   >(samplefun a)
   (retname 4 7.6)

I receive 
   >(samplefun a)
   (#:|retname| 4 7.6)

What ist this "#:|retname|"? It looks like a closure or something like that.
Similar problems occur when trying to assert a value to a symbol using
"setvalue". Also defining a symbol via xlenter produces |retname| instead of
retname. The problem seems to be the cvsymbol function or my wrong application
of this function. Strings however interned from C to XLisp-Stat via cvstring
produce no problems.

Please give me hints,
      
Jens Eickhoff

eickhoff@dornier.de
100140.1476@compuserve.com



From owner-SL-news  Mon Apr  4 15:30:03 1994
Resent-Date: Mon, 4 Apr 1994 13:30:03 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <199404051427.AA05298@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 5 Apr 1994 09:27:53 -0500
Received: from relay.xlink.net (xlink5.xlink.net) by umnstat.stat.umn.edu; Tue, 5 Apr 1994 09:27:45 -0500
Received: from rgvx1b.spacediv.dofn.de by relay.xlink.net 
          id <16201-0@relay.xlink.net>; Tue, 5 Apr 1994 16:27:44 +0000
Date: Mon, 4 Apr 1994 13:30:03 +0200
Message-Id: <94040413300307@spacediv.dofn.de>
From: eickhoff@spacediv.dofn.de
To: stat-lisp-news@umnstat
Subject: programming xlisp and apple events
X-Vms-To: SMTP%"stat-lisp-news@umnstat.stat.umn.edu"
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: eickhoff@spacediv.dofn.de

Hello everybody,

I am currently integrating some own C functions to XLisp-Stat for external
communication via apple events. As a first approach I have taken the samplefun
of Jeff Prothero's XLisp Internals Document, distributed by Jan de Leeuw:

"XLisp-Stat, integration of own C-Code on the Mac"

My problem is that this paper just demonstrates how to access 
integers and float values
and lists, but not symbols. I can read symbols and their names from XLisp to C
( and then handle them with events) but I cannot write results back to XLisp
symbols and symbol values. Consider:

(setq a 'value_a)

Within a function (samplefun 'a) I can access a and its value via

        .
        .
        .
LVAL samplefun()
LVAL sym_arg;
        .
        .
char *symname, *symval . . .
        .
        .
    symname = getstring(getpname(sym_arg));            /* "a"  */
    symval  = getstring(getpname(getvalue(sym_arg)));  /* "value_a" */

The problems occur when trying to write results of the function back.
        .
        .

    LVAL sym1_return_ptr;
    char s1_return_name[9] = "retname\0";
        .
        .
    int_ptr = cvfixnum( ...);
    float_ptr   = cvflonum( ....);
    sym1_return_ptr = cvsymbol(s1_return_name));
        .
        .
    result = cons(
                  sym1_return_ptr,
                  cons(
                       int_ptr,
                       cons(
                            float_ptr,
                            NIL
                            )
                       )
                  );
     xlpopn(3);

    return result;
}

Instead of 
   >(samplefun a)
   (retname 4 7.6)

I receive 
   >(samplefun a)
   (#:|retname| 4 7.6)

What ist this "#:|retname|"? It looks like a closure or something like that.
Similar problems occur when trying to assert a value to a symbol using
"setvalue". Also defining a symbol via xlenter produces |retname| instead of
retname. The problem seems to be the cvsymbol function or my wrong application
of this function. Strings however interned from C to XLisp-Stat via cvstring
produce no problems.

Please give me hints,
      
Jens Eickhoff

eickhoff@dornier.de
100140.1476@compuserve.com



From mwitten@chpc.utexas.edu  Tue Apr  5 20:37:33 1994
Received: from morpheus (morpheus.chpc.utexas.edu) by umnstat.stat.umn.edu; Tue, 5 Apr 1994 14:37:38 -0500
Received: by morpheus (5.0/SMI-4.1)
	id AA08244; Tue, 5 Apr 1994 14:37:33 +0600
Date: Tue, 5 Apr 1994 14:37:33 +0600
From: mwitten@chpc.utexas.edu
Message-Id: <9404051937.AA08244@morpheus>
To: SL-news-list@umnstat
Subject: COMPMED 94 FINAL SCHEDULE
Content-Length: 1374

		   FINAL PROGRAM ANNOUNCEMENT

FIRST WORLD CONGRESS ON COMPUTATIONAL MEDICINE AND PUBLIC HEALTH
			24-28 April 1994
		Hyatt on the Lake, Austin, Texas

The final program for the First World Congress On Computational
Medicine and Public Health has now been set. Over 200 speakers
will be presenting work in a variety of applications areas
related to medicine and public health. Registration is still
open for attendees. Registration details and/or a copy of the
schedule at a glance, schedule-in-detail may be requested by
sending an email request to

	compmed94@chpc.utexas.edu

or by calling
	
	512-471-2472

or by faxing
	
	512-471-2445

There is no ftp form of the conference schedule due to the
size of the file. We will be happy to fax/send a copy to anyone
who requests it. The conference proceedings will appear as
a series of volumes published by World Scientific. If you are
interested in possibly submitting a paper for the proceedings,
please contact

	mwitten@chpc.utexas.edu

or call

	512-471-2457

The overwhelming response to this congress has already
justified having a second world congress in the future. The tentative
schedule is to have in in 3 years. If you are interested in
participating at the 2nd World Congress On Computational Medicine
and Public Health, please contact 

     Dr. Matthew Witten 
	Congress Chair
   mwitten@chpc.utexas.edu





From owner-SL-news  Thu Apr  7 13:33:09 1994
Resent-Date: Thu, 7 Apr 94 17:33:09 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199404072133.AA19415@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 7 Apr 1994 16:33:14 -0500
Received: from dad.bgsu.edu by umnstat.stat.umn.edu; Thu, 7 Apr 1994 16:33:11 -0500
Received: by dad.bgsu.edu (4.1/SMI-4.0)
	id AA04717; Thu, 7 Apr 94 17:33:09 EDT
Date: Thu, 7 Apr 94 17:33:09 EDT
From: byeh@dad.bgsu.edu (Bai-Yau Yeh)
Message-Id: <9404072133.AA04717@dad.bgsu.edu>
To: stat-lisp-news@umnstat
Subject: xlispstat on solaris2.2 with gcc
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: byeh@dad.bgsu.edu (Bai-Yau Yeh)


Has anyone compiled xlispstat on solaris2.2 with gcc? I've tried it few times and got 
bombed at the same place with the following message:

gcc -DUNIX -DX11WINDOWS -I/usr/openwin/include   -c  X11BSDstuff.c
X11BSDstuff.c: In function `osinit':
X11BSDstuff.c:32: warning: passing arg 2 of `signal' from incompatible pointer type
X11BSDstuff.c:33: warning: passing arg 2 of `signal' from incompatible pointer type
X11BSDstuff.c: In function `intercatch':
X11BSDstuff.c:143: warning: passing arg 2 of `signal' from incompatible pointer type
X11BSDstuff.c: In function `fpecatch':
X11BSDstuff.c:150: warning: passing arg 2 of `signal' from incompatible pointer type
X11BSDstuff.c: At top level:
X11BSDstuff.c:220: warning: `x11_get_char' was declared implicitly `extern' and later `static'
X11BSDstuff.c:232: warning: `char_available' was declared implicitly `extern' and later `static'
X11BSDstuff.c: In function `char_available':
X11BSDstuff.c:237: `FIONREAD' undeclared (first use this function)
X11BSDstuff.c:237: (Each undeclared identifier is reported only once
X11BSDstuff.c:237: for each function it appears in.)
*** Error code 1
make: Fatal error: Command failed for target `X11BSDstuff.o'

What has to be changed in Makefile in order to make the xlispstat running?

Thanks in advance!!

Arthur

From owner-SL-news  Fri Apr  8 08:55:10 1994
Resent-Date: Fri, 8 Apr 94 12:55:10 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199404081655.AA23671@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 8 Apr 1994 11:55:39 -0500
Received: from dad.bgsu.edu by umnstat.stat.umn.edu; Fri, 8 Apr 1994 11:55:28 -0500
Received: by dad.bgsu.edu (4.1/SMI-4.0)
	id AA01876; Fri, 8 Apr 94 12:55:10 EDT
Date: Fri, 8 Apr 94 12:55:10 EDT
From: byeh@dad.bgsu.edu (Bai-Yau Yeh)
Message-Id: <9404081655.AA01876@dad.bgsu.edu>
To: stat-lisp-news@umnstat
Subject: xlispstat on solaris2.2
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: byeh@dad.bgsu.edu (Bai-Yau Yeh)


Thanks for all the help, especially the one from Brett. The installation of xlispstat
on solaris2.2 with gcc seemed to be working until the very last step X11WINDOWSxlisp
with the folloring error message:

Undefined			first referenced
 symbol  			    in file
bzero                               stmem.o
ld: fatal: Symbol referencing errors. No output written to xlisp
*** Error code 1
make: Fatal error: Command failed for target `X11WINDOWSxlisp'


Can anyone tell me where the error might have occurred?

Thanks in advance!!

Arthur

From owner-SL-news  Wed Apr 13 10:43:00 1994
Resent-Date:    Wed, 13 Apr 94 14:43 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199404131921.AA17129@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 13 Apr 1994 14:21:12 -0500
Message-Id: <199404131920.AA17122@umnstat.stat.umn.edu>
Received: from uncmvs.oit.unc.edu by umnstat.stat.umn.edu; Wed, 13 Apr 1994 14:20:57 -0500
Received: from UNCMVS.OIT.UNC.EDU by UNCMVS.OIT.UNC.EDU (IBM MVS SMTP V2R2.1)
   with BSMTP id 6707; Wed, 13 Apr 94 15:19:48 LCL
Date:    Wed, 13 Apr 94 14:43 EDT
From: "Mary McFarlane"                            <MARYMC@UNCMVS.OIT.UNC.EDU>
To: stat-lisp-news@umnstat
Subject: newtonmax again
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Mary McFarlane"                            <MARYMC@UNCMVS.OIT.UNC.EDU>

Hi Folks,

In my never-ending quest to make newtonmax do things that it was not
meant to do, I have come up with another problem.

The problem is this: I want to maximize a likelihood function.  I
would like newtonmax to figure out the gradient numerically, but
I want to supply a fixed Hessian (second derivative matrix).  The
problem is, if the gradient is estimated numerically, newtonmax
seems to think it should *also* estimate the Hessian numerically -
which is NOT what I want it to do.

Does anyone know how to get around this problem?

Thanks in advance,

Mary

From owner-SL-news  Mon Apr 18 12:16:33 1994
Resent-Date: Mon, 18 Apr 1994 10:16:33 +0200 (WET)
Resent-From: owner-SL-news
Resent-Message-Id: <199404180817.AA07283@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 18 Apr 1994 03:17:06 -0500
Received: from pollux.edv.agrar.tu-muenchen.de by umnstat.stat.umn.edu; Mon, 18 Apr 1994 03:16:58 -0500
Received: by pollux.edv.agrar.tu-muenchen.de (AIX 3.2/UCB 5.64/4.03)
          id AA22456; Mon, 18 Apr 1994 10:16:33 +0200
From: walter@pollux.edv.agrar.tu-muenchen.de (Bernhard Walter (DVS))
Message-Id: <9404180816.AA22456@pollux.edv.agrar.tu-muenchen.de>
Subject: dynamic loading under AIX3.2 and Linux
To: stat-lisp-news@umnstat (stat-lisp)
Date: Mon, 18 Apr 1994 10:16:33 +0200 (WET)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1100      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: walter@pollux.edv.agrar.tu-muenchen.de (Bernhard Walter (DVS))

hi all,

I'm working with XLisp-Stat 2.1R2 under AIX3.2 on RS6000 and under Linux.
For both systems I compiled the program, but I haven't been able to
get dynamic loading working. So, is it possible at all ?

As a substitute I included the 'popen' and 'pclose' routines (I think from
Niels Mayer or so, I found them in Xlisp-Plus) to my version of Xlisp-Stat.
But this is a very private substitute, and applications using this feature,
won't run on any other platform than mine.

Is there a default possibility to start external programs (own ones or
Shell commands) from Xlisp-Stat ? 

thanks in advance
                  Bernhard

-- 
----------------------------------------------------------------------------
Bernhard     Walter                   walter@pollux.edv.agrar.tu-muenchen.de 
Techn. Univ. Munich    ######  #####            +49-(0)8161-71-5055  (phone)
DVS - Weihenstephan      #  #  # # #             +49-(0)8161-71-4409   (fax)
85350      Freising      #  #### # #                               (Germany)
----------------------------------------------------------------------------

From owner-SL-news  Mon Apr 18 06:53:01 1994
Resent-Date: Mon, 18 Apr 1994 10:53:01 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199404181453.AA08602@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 18 Apr 1994 09:53:20 -0500
Received: from Princeton.EDU by umnstat.stat.umn.edu; Mon, 18 Apr 1994 09:53:11 -0500
Received: from tsar.Princeton.EDU by Princeton.EDU (5.65b/2.108/princeton)
	id AA08523; Mon, 18 Apr 94 10:53:03 -0400
Received: by tsar.Princeton.EDU (NeXT-1.0 (From Sendmail 5.52)/1.113)
	id AA20477; Mon, 18 Apr 94 10:53:03 EDT
Date: Mon, 18 Apr 1994 10:53:01 -0400 (EDT)
From: "Ira H. Fuchs" <fuchs@tsar.Princeton.EDU>
Subject: LISPSTAT with MULISP
To: stat-lisp-news@umnstat
Message-Id: <Pine.3.89.9404181050.A20291-0100000@tsar.Princeton.EDU>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Ira H. Fuchs" <fuchs@tsar.Princeton.EDU>

Has anyone every ported LISPSTAT to MULISP (a very compact and speedy 
LISP for DOS)? MULISP is a product available from The Soft Warehouse.

From owner-SL-news  Sat Apr 23 07:07:16 1994
Resent-Date: Sat, 23 Apr 1994 12:07:16 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199404231609.AA28368@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 23 Apr 1994 11:09:10 -0500
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu; Sat, 23 Apr 1994 11:09:07 -0500
Received: from laguna.psych.unc.edu by gibbs.oit.unc.edu (5.64/10.1)
	id AA26167; Sat, 23 Apr 94 12:09:04 -0400
Message-Id: <9404231609.AA26167@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Sat, 23 Apr 1994 12:07:16 -0500
To: stat-lisp-news@umnstat
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

I have done some Lisp-Stat timing comparisons of a Quadra 800 versus a
PowerMac 8100.

First: The version of Lisp-Stat that requires the Math-Coprocessor does not
run on the PowerMac.  Only the non-Math-Coprocessor version does.  So, the
timings compare the Quadra 800 running the Math-Coprocessor version of
Lisp-Stat to the the PowerMac 8100 running the non-Math-Coprocessor version
of Lisp-Stat. For the comparison I used a suite of functions that my ViSta
software can perform.

BOTTOM LINE: The PowerMac took  34.07 seconds, the Quadra took 20.30 seconds.  

DETAILS: The ViSta functions can be categorized as being disk-intensive,
screen-intensive, or compute intensive. The detailed timing comparison, in
seconds, is:

Disk-Intensive functions (Quadra Faster):
  Q    PM  Function
0.53 0.80 Load-Data
0.65 1.00 Load-Data

Screen-Intensive (PowerMac Faster):
  Q    PM  Function
0.05 0.03 List-Variables
0.05 0.03 List-Observations
0.42 0.33 Close-SpreadPlot
0.37 0.35 Close-SpreadPlot
0.37 0.33 Close-SpreadPlot

Compute-Intensive (Quadra Faster):
  Q    PM  Function
1.25 3.05 Principal Components
3.25 6.85 Multiple Regression
1.63 3.05 Normalize
2.90 4.78 Visualize-Data
2.75 4.18 Visualize-Model
1.95 2.85 Visualize-Model
0.17 0.33 Select-Variables
0.83 1.38 Merge-Variables
1.07 1.57 Create-Data
1.55 2.47 Create-Data
0.18 0.28 Set-Current-Data

So... don't trade in your older Mac yet.  
Is there a native PowerMac Lisp-Stat out there anywhere? Or on the way?


=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Work Telephone: 919-962-5038
Chapel Hill NC 27599-3270 USA     FAX:            919-962-2537
=====================================================================



From owner-SL-news  Sun May  1 05:50:03 1994
Resent-Date: Sun, 1 May 1994 12:50:03 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199405011948.AA07572@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 1 May 1994 14:48:27 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sun, 1 May 1994 14:48:23 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA29948; Sun, 1 May 94 12:50:04 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA24658; Sun, 1 May 94 12:50:03 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9405011950.AA24658@galton.math.ucla.edu>
Subject: porting to PowerPC
To: kcli@math.ucla.edu (Ker-Chau Li), cchen@stat.sinica.edu.tw (Chung-Ho Chen),
        stat-lisp-news@umnstat (Xlisp List)
Date: Sun, 1 May 1994 12:50:03 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 645       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

ETO 14 comes with the Macintosh on RISC SDK. I am, as we speak,
building a fat binary (both 68K and PPC) of XlispStat. I will
also make a lean and mean PPC only binary, and put them in
the ftp directories of laplace.stat.ucla.edu (look in
pub/lisp/xlisp/xlisp-stat/ppc). Compiling gives no problems
(repair the #endif and the #ifdef MPWC, pull in some alternative
files), linking may be a bit more tricky. If nothing shows up
in a week, prompt me.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sun May  1 08:02:18 1994
Resent-Date: Sun, 1 May 1994 15:02:18 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199405012200.AA08158@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 1 May 1994 17:00:43 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sun, 1 May 1994 17:00:39 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA00762; Sun, 1 May 94 15:02:20 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA24749; Sun, 1 May 94 15:02:19 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9405012202.AA24749@galton.math.ucla.edu>
Subject: Xlisp-Stat for PowerPC
To: kcli@math.ucla.edu (Ker-Chau Li), cchen@stat.sinica.edu.tw (Chung-Ho Chen),
        stat-lisp-news@umnstat (Xlisp List)
Date: Sun, 1 May 1994 15:02:18 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 464       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

In pub/lisp/xlisp/xlisp-stat/ppc here are now binhexed versions of
XLSPPConly and XLSPPCfat. I HAVE NO IDEA IF THEY WORK ! ALL I KNOW
IS THAT THEY COMPILED AND LINKED ! DON'T SUE ME OR THE REGENTS 8-)

You still have to provide the foo.lsp files, these are just the binaries.
-- 
Jan de Leeuw; UCLA Statistics Program
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Tue May 17 17:21:00 1994
Resent-Date: Tue, 17 May 94 21:21 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199405181321.AA13935@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 18 May 1994 08:21:24 -0500
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu; Wed, 18 May 1994 08:21:18 -0500
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.5/UMIACS-0.9/04-05-88)
	id JAA08648; Wed, 18 May 1994 09:21:15 -0400
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0q3aKM-0005e1C; Tue, 17 May 94 21:21 EDT
Message-Id: <m0q3aKM-0005e1C@n2ell.uucp>
Date: Tue, 17 May 94 21:21 EDT
From: pcolsen@n2ell (Peter C. Olsen P.E.)
To: stat-lisp-news@umnstat
Subject: Fixing "lisp-send-defun" under Emacs 19
Reply-To: pcolsen@math.umbc.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pcolsen@n2ell (Peter C. Olsen P.E.)


This may be common knowledge to everyone else, but it stumped me for a
while.

I run xlispstat under Emacs, and when I upgraded to FSF Emacs-19,
suddenly the "lisp-send-defun" function in xlispstat.el broke.  After
poking around, it appears to me that Emacs-19 had changed the name of
it's inferior-lisp processes from "lisp" to "inferior-lisp".  All that
is really necessary is to change the name of the process whereever it
appears.  I went one (small) step further and defined a local variable
so that it would be easy to fix next time.  My code is attached...

Peter

Peter Olsen, P.E., pcolsen%n2ell.uucp@mimsy.umd.edu, ...!mimsy!n2ell.edu
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; modified to use .lsp suffix on temp file - xlisp gets upset without
;; it.
;; Modified for new lisp process name in Emacs-19

(defun lisp-send-defun (display-flag)
  "Send the current defun to the Lisp process made by M-x run-lisp.
With argument, force redisplay and scrolling of the *lisp* buffer.
Variable `inferior-lisp-load-command' controls formatting of
the `load' form that is set to the Lisp process."
  (interactive "P")
  (let ((process-name "inferior-lisp")) ; Here's the name hack
    (or (get-process process-name)
	(error "No current lisp process"))
    (save-excursion
      (end-of-defun)
      (let ((end (point))
	    (filename (format "/tmp/emlisp%d.lsp" (process-id
						   (get-process
						    process-name))))) 
	(beginning-of-defun)
	(write-region (point) end filename nil 'nomessage)
	(process-send-string process-name (format
					   inferior-lisp-load-command
					   filename))) 
      (if display-flag
	  (let* ((process (get-process process-name))
		 (buffer (process-buffer process))
		 (w (or (get-buffer-window buffer) (display-buffer buffer)))
		 (height (window-height w))
		 (end))
	    (save-excursion
	      (set-buffer buffer)
	      (setq end (point-max))
	      (while (progn
		       (accept-process-output process)
		       (goto-char (point-max))
		       (beginning-of-line)
		       (or (= (point-max) end)
			   (not (looking-at inferior-lisp-prompt)))))
	      (setq end (point-max))
	      (vertical-motion (- 4 height))
	      (set-window-start w (point)))
	    (set-window-point w end))))))

From owner-SL-news  Sat May 28 08:04:13 1994
Resent-Date: Sat, 28 May 1994 15:04:13 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199405282202.AA10082@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 28 May 1994 17:02:35 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 28 May 1994 17:02:30 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA09088; Sat, 28 May 94 15:04:14 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA10157; Sat, 28 May 94 15:04:13 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9405282204.AA10157@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 28 May 1994 15:04:13 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3032      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

In ~/pub/lisp/xlisp/xlisp-stat on laplace.stat.ucla.edu there
are various versions of xlispstat available. Here are the
subdirectories

brandnew:
xlispstat.tar.gz

contrib:
alr          eltoy        jflisp       shortcourse  times        young
axis         expsurvd     markov       simulator    tools
boxmat       glim         plottools    sir          xlisp-book
cw           hasse        puranen      surv         xlisp-to-s

dist:
xlispstat2.1R2

docs:
asacourse.ps        xlispstat.doc.ps.1  xlispstat.doc.ps.3
shortcourse.tar.Z   xlispstat.doc.ps.2

dos:
WXLSZIP.EXE      msdos_src.tar.Z  readme.src       wxls.ps
XLSZIP.EXE       readme.dos       readme.win       wxls.tex

homegrown:
IO          data        niceties    scaling
bootstrap   gifi        regression

mac:
ppc    r3a26  r3a7

runtime:
Data            dialogs.lsp     init.lsp        oneway.lsp      xlisp.help
Examples        graphics.lsp    maximize.lsp    regression.lsp
autoload.lsp    graphics2.lsp   menubar.lsp     statistics.lsp
bayes.lsp       graphics3.lsp   nonlin.lsp      step.lsp
common.lsp      help.lsp        objects.lsp     xlisp

students:
corres-anal.lsp        repeated-measures.lsp  teach-readme
exer9-5.lsp            robust-btstrap.lsp     teach-sample.lsp
regres-add.lsp         teach-density.lsp      weibull-mle.lsp

brandnew is a version of release 3 alpha 26, packed with tar and gzip,
that has all the source code and the startup files. r3a26 is based
on xlisp-2.1f, and comes with workspaces, packages, and a byte-compiler.

contrib has contributed code from various sources.

dist is the r2 for all systems (unix, mac, msw, dos).

docs are tutorials and courses.

dos is the r2 version for msdos and mswindows.

homegrown is contributed code from ucla.

mac has three subdirectories. ppc contains (or should contain) both
lean and fat binaries for the PowerMac. The current version does not
work yet, but it is in progress. r3a7 contains two binhex files with
the runtime, source code, and binaries for macs with or without a
6888x coprocessor. It is, obviously, release 3 alpha 7. Then r3a26
has the xlisp-2.1f based version (with compiler, packages, workspace).
It contains the lisp support files, plus a version for macs with
coprocessor, plus one (XLISP-STAT20) for PowerMacs in emulation mode.
There is no version yet for 68000 based Macs. To give you an
idea, we have a benchmark of 100 eigen-decompositions of random
symmetric matrices of order 20. On the Quadra 800 this takes 16.83
secs in native mac mode, it takes 72.65 secs in native mac mode
without using the coprocessor, and it takes 125.92 secs in emulation
mode on a PowerMac (using an upgrade card in the Quadra).

runtime is a complete Unix runtime system, release 2.

students is contributed code from Nancy Reid's class at the University of
Toronto.

For those of you with laplace accounts: all this can be found in
/m/ftp/pub/lisp/xlisp/xlisp-stat. You can run release 2 by saying
"xlispstat" at the shell prompt and release 3 alpha 26 by saying
"newxlisp".

From owner-SL-news  Wed Jun  1 05:59:06 1994
Resent-Date:          Wed, 1 Jun 1994 10:59:06 EST5EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199406011605.AA28849@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 1 Jun 1994 11:05:27 -0500
Received: from sifon.CC.McGill.CA by umnstat.stat.umn.edu; Wed, 1 Jun 1994 11:05:19 -0500
Received: from langate.cc.mcgill.ca ([132.206.37.3]) by sifon.CC.McGill.CA (8.6.8/8.6.6) with SMTP id MAA16225 for <lisp-stat-news@umnstat.stat.umn.edu>; Wed, 1 Jun 1994 12:05:06 -0400
Message-Id: <199406011605.MAA16225@sifon.CC.McGill.CA>
Received: by MicroMailer 3.20a (.Lan.McGill.CA)
          on Wednesday, 01 June 1994, 11:53:15 EDT
From: <HEBERTO@meakins.lan.mcgill.ca>
Organization:  McGill University - Medicine
To: lisp-stat-news@umnstat
Date:          Wed, 1 Jun 1994 10:59:06 EST5EDT
Subject:       
Priority: normal
X-Mailer:     PMail v3.0 (R1a)
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: <HEBERTO@meakins.lan.mcgill.ca>

subscribe lisp-stat-news R.Heberto Ghezzo

From owner-SL-news  Wed Jun  1 22:16:08 1994
Resent-Date: Wed, 1 Jun 94 21:46:08+030
Resent-From: owner-SL-news
Resent-Message-Id: <199406011843.AA29636@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 1 Jun 1994 13:43:19 -0500
Received: from relay2.UU.NET by umnstat.stat.umn.edu; Wed, 1 Jun 1994 13:43:04 -0500
Received: from cairo.eng.kuniv.edu.kw by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AAwsle29953; Wed, 1 Jun 94 14:42:45 -0400
Received: from newyork.eng.kuniv.edu.kw by cairo.eng.kuniv.edu.kw (4.1/SMI-4.1)
	id AA18509; Wed, 1 Jun 94 21:46:08+030
Date: Wed, 1 Jun 94 21:46:08+030
From: walid@eng.kuniv.edu.kw (Walid Taha)
Message-Id: <9406011846.AA18509@cairo.eng.kuniv.edu.kw>
To: lisp-stat-news@umnstat
Subject: Anything About A Compiler For LISP-STAT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: walid@eng.kuniv.edu.kw (Walid Taha)


Hello Everybody,

	Any one with any info on a compiler for LISP-STAT?
Does something like that exist?

Regards,

Walid.

From owner-SL-news  Thu Jun  2 14:06:28 1994
Resent-Date: Thu, 2 Jun 94 12:06:28 +0200
Resent-From: owner-SL-news
Resent-Message-Id: <199406021007.AA03557@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 2 Jun 1994 05:07:29 -0500
Message-Id: <199406021007.AA03549@umnstat.stat.umn.edu>
Received: from tamara.utia.cas.cz by umnstat.stat.umn.edu; Thu, 2 Jun 1994 05:07:03 -0500
Received: by tamara.utia.cas.cz
	(16.7/16.2) id AA11977; Thu, 2 Jun 94 12:06:28 +0200
Date: Thu, 2 Jun 94 12:06:28 +0200
From: Rudolf Kulhavy <kulhavy@utia.cas.cz>
To: stat-lisp-news@umnstat
Subject: Trouble with `newtonmax'
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Rudolf Kulhavy <kulhavy@utia.cas.cz>


Hi everybody,

I tried 

	(newtonmax #'(lambda (x) (- (** x 2))) #(1))

and the program exploded. Is this that NEWTONMAX cannot work with scalar
functions, a bug in code, bad call of the function or problem in installation?
I use the program on HP 9000/720 which I considered a 'generic' machine in
installation.

Sorry for my ignorance, I started playing with xlisp-stat just a couple of
days ago.

Ruda

----------------------------------------------------------------------------
Rudolf KULHAVY              | Department of Adaptive Systems 
Email: kulhavy@utia.cas.cz  | Institute of Information Theory and Automation 
Tel: +42-2-66052313         | Academy of Sciences of the Czech Republic  
Fax: +42-2-66414903         | PO Box 18, 18208 Prague, Czech Republic 
----------------------------------------------------------------------------

From owner-SL-news  Fri Jun  3 11:31:43 1994
Resent-Date: Fri, 3 Jun 94 18:27:21 WETDST
Resent-From: owner-SL-news
Resent-Message-Id: <199406031631.AA10787@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 3 Jun 1994 11:31:43 -0500
Message-Id: <199406031627.AA10723@umnstat.stat.umn.edu>
Received: from halley.upf.es by umnstat.stat.umn.edu; Fri, 3 Jun 1994 11:27:13 -0500
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA27348; Fri, 3 Jun 94 18:27:58 +0200
Received: by libiya.upf.es
	(16.7/15.6) id AA08544; Fri, 3 Jun 94 18:27:22 +0100
From: Frederic Udina <udina@upf.es>
Subject: R3a26
To: stat-lisp-news@umnstat (lisp stat list)
Date: Fri, 3 Jun 94 18:27:21 WETDST
Mailer: Elm [revision: 66.33]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

hi there:

I am trying to upgrade my xlisp-stat programs to release 3a26, and
I'am having some problems. Do someone has experienced similar
troubles? 

But let me also tell you the good news. Release 3 looks very faster
than the previous one, the loading files ...... is almost
instantaneous and getting loading help also is fast.
It has a compiler also, but I have had no time to try it.

Please note that my complains must be preceeded by a big

THANKS LUKE!!! for making so good software and making it freeware!


By the way: I work on a HP unix workstation and got the code from the
(thanks Jan) big laplace statistics server.

Here follow my surprises:

1) the strcat function is not bound. You can get the (help 'strcat)
but you get error if try to use it.
> (strcat "new " "xlispstat")
Error: The function STRCAT is unbound.

2) With release 2, *features* were:
> *features*
(WINDOWS DIALOGS COLOR UNIX X11 XLISP)
now, in release 3a26
> *features*
(:BACKQUOTE :COLOR :DIALOGS :WINDOWS :UNIX :X11 :XLISP)

Do you see the difference? My programs really see it and they works as
if I have no WINDOWS, no UNIX, ...

3) Some things change their names and this confuse my programs:
In release 2: 
 (send sequence-scroll-item-proto :own-slots)
(DIALOG ACTION SIZE LOCATION TEXT WINDOW-ID VALUE PAGE-INCREMENT
MAX-VALUE MIN-VALUE VALUE-TEXT-ITEM DISPLAY-SEQUENCE SEQUENCE
PROTO-NAME INSTANCE-SLOTS)

In release 3:
(send sequence-scroll-item-proto :own-slots)
(DIALOG ACTION SIZE LOCATION TEXT WINDOW-ID VALUE PAGE-INCREMENT
MAX-VALUE MIN-VALUE XLISP::VALUE-TEXT-ITEM XLISP::DISPLAY-SEQUENCE
SEQUENCE PROTO-NAME INSTANCE-SLOTS)

So when a program tries to send the :value message to 'VALUE-TEXT-ITEM
... 

4) I like the new long printing style for numbers, but I have some
aritmetical problems also. My rounding function do behave differently
now... 

There are probably other changes, but I have no more time to explore it.

Thanks again to Luke, but if they were no so much changes, life will
be easier for XLISP-STAT aficionados!


--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
       Balmes 132                   |            fax: 34 - 3 - 484 97 46
       08008 Barcelona              |         e-mail: udina@upf.es      
       SPAIN                        |      appleLink: spa0172           
___________________________________/_\_________________________________

From owner-SL-news  Fri Jun  3 03:31:25 1994
Resent-Date: Fri, 3 Jun 1994 10:31:25 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406031732.AA11134@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 3 Jun 1994 12:32:03 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Fri, 3 Jun 1994 12:29:52 -0500
Received: from laplace.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA10225; Fri, 3 Jun 94 10:31:26 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by laplace.math.ucla.edu 
	(Sendmail 5.0/1.10) id AA11922; Fri, 3 Jun 1994 10:31:26 +0800
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406031731.AA11922@laplace.math.ucla.edu>
Subject: PowerMac version
To: stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Fri, 3 Jun 1994 10:31:25 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 778       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

There is a better PowerMac version in ~/pub/lisp/xlisp/xlisp-stat/mac/ppc
in laplace.stat.ucla.edu. It does not do mouseclicks and only some
parts of dialogs, but it does the computations blindingly fast. Just
unhook your mouse.

For laplace account holders: the path is /m/ftp/pub/lisp and so on.

On my PowerMac 800 I have execution speeds on my benchmarks which are
about 30% of those on a Quadra 800 (three times as fast). The PowerMac
version is compiled without any optimization and it runs on the
PowerMac card within the Quadra. Thus it could be quite a bit faster
still. 

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Fri Jun  3 17:32:27 1994
Resent-Date: Sat, 4 Jun 1994 00:32:27 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406040730.AA14602@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 4 Jun 1994 02:30:45 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 4 Jun 1994 02:30:42 -0500
Received: from laplace.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA24629; Sat, 4 Jun 94 00:32:27 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by laplace.math.ucla.edu 
	(Sendmail 5.0/1.10) id AA15822; Sat, 4 Jun 1994 00:32:27 +0800
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406040732.AA15822@laplace.math.ucla.edu>
Subject: PowerMac version -- slight update
To: stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 4 Jun 1994 00:32:27 -0700 (PDT)
Cc: jimc@math.ucla.edu (Jim Carter)
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 586       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

I compiled a version with optimization turned on, and mac68k alignment
of structures. It is twice as fast as the previous one, i.e. twice
as fast as my Sparc Station 10 on the benchmark (100 eigenvalue
eigenvector problems of size 20 for a random symmetric matrix). It
is in the usual place, and it still does not like mouse activity.
I, for one, am amazed. This chip is really something.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sat Jun  4 18:06:00 1994
Resent-Date: Sat, 4 Jun 94 22:06 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199406050238.AA17517@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 4 Jun 1994 21:38:28 -0500
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu; Sat, 4 Jun 1994 21:38:24 -0500
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.9/UMIACS-0.9/04-05-88)
	id WAA28784; Sat, 4 Jun 1994 22:38:23 -0400
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0qA7by-0005CcC; Sat, 4 Jun 94 22:06 EDT
Message-Id: <m0qA7by-0005CcC@n2ell.uucp>
Date: Sat, 4 Jun 94 22:06 EDT
From: pcolsen@n2ell (Peter C. Olsen P.E.)
To: stat-lisp-news@umnstat
Subject: XlispStat 2.1R3 won't byte-compile under Linux
Reply-To: pcolsen@math.umbc.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pcolsen@n2ell (Peter C. Olsen P.E.)



I've snarfed XlispStat 2.1R3 from laplace and tried to compile it
under Linux.  The C part seems to compile well, but not the lisp.
It's probably a case of CUF ("Catastrophic User Failure"), so I'll
grovel and ask for help.

Here's what I get at the end of my "make"  

... lots of other stuff deleted ...

> make[1]: Leaving directory `/mnt/sdd1/tmp/xlispstat'
> make  xlisp.wks
> make[1]: Entering directory `/mnt/sdd1/tmp/xlispstat'
> cp compiler/backquot.lsp fsltmp.lsp
> echo '(compile-file "fsltmp.lsp" :output-file "fsltmp.fsl") (exit)' \
>   | ./xlisp
> XLISP-PLUS version 2.1f
> Portions Copyright (c) 1988, by David Betz.
> Modified by Thomas Almy and others.
> XLISP-STAT version 2.1 Release 3 Alpha 26.
> Copyright (c) 1989-1993, by Luke Tierney.
> Initialization may take a few minutes.
> 
> make[1]: *** [compiler/backquot.fsl] Error 139
> make[1]: Leaving directory `/mnt/sdd1/tmp/xlispstat'
> make: *** [all] Error 1
> $   

In fact, although the C code compiles, I'm not sure it's working.
Here's what happens if I try to run xlisp by itself.

> $ ./xlisp '(compile-file "fsltmp.lsp" :output-file "fsltmp.fsl") (exit)'
> XLISP-PLUS version 2.1f
> Portions Copyright (c) 1988, by David Betz.
> Modified by Thomas Almy and others.
> XLISP-STAT version 2.1 Release 3 Alpha 26.
> Copyright (c) 1989-1993, by Luke Tierney.
> Initialization may take a few minutes.
> 
> Segmentation fault
> $ ./xlisp
> XLISP-PLUS version 2.1f
> Portions Copyright (c) 1988, by David Betz.
> Modified by Thomas Almy and others.
> XLISP-STAT version 2.1 Release 3 Alpha 26.
> Copyright (c) 1989-1993, by Luke Tierney.
> Initialization may take a few minutes.
> 
> Segmentation fault
> $
> $       
> 

As I use XLS 2.1R2 frequently for both work and school, I've been
looking forward to this upgrade for some time.  If anyone can offer
suggestions, I will be grateful.

Peter

- -- 
Peter Olsen, P.E., pcolsen%n2ell.uucp@mimsy.umd.edu, ...!mimsy!n2ell.edu
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."


From owner-SL-news  Sun Jun  5 08:17:47 1994
Resent-Date: Sun, 05 Jun 94 12:17:47 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199406051619.AA19616@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 5 Jun 1994 11:19:32 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Sun, 5 Jun 1994 11:19:29 -0500
Received: from mercury.stat.fsu.edu by stat.fsu.edu (4.1/25-eef)
	id AA25207; Sun, 5 Jun 94 12:16:22 EDT
Message-Id: <9406051616.AA25207@stat.fsu.edu>
To: Frederic Udina <udina@upf.es>
Cc: stat-lisp-news@umnstat (lisp stat list)
Subject: Re: R3a26 
In-Reply-To: Your message of "Fri, 03 Jun 94 18:27:21 +0700."
             <199406031627.AA10723@umnstat.stat.umn.edu> 
Date: Sun, 05 Jun 94 12:17:47 -0400
From: naras@stat.fsu.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: naras@stat.fsu.edu

In message <199406031627.AA10723@umnstat.stat.umn.edu> Frederic Udina writes:
...
|> 
|> 3) Some things change their names and this confuse my programs:
|> In release 2: 
|>  (send sequence-scroll-item-proto :own-slots)
|> (DIALOG ACTION SIZE LOCATION TEXT WINDOW-ID VALUE PAGE-INCREMENT
|> MAX-VALUE MIN-VALUE VALUE-TEXT-ITEM DISPLAY-SEQUENCE SEQUENCE
|> PROTO-NAME INSTANCE-SLOTS)
|> 
|> In release 3:
|> (send sequence-scroll-item-proto :own-slots)
|> (DIALOG ACTION SIZE LOCATION TEXT WINDOW-ID VALUE PAGE-INCREMENT
|> MAX-VALUE MIN-VALUE XLISP::VALUE-TEXT-ITEM XLISP::DISPLAY-SEQUENCE
|> SEQUENCE PROTO-NAME INSTANCE-SLOTS)
|> 
|> So when a program tries to send the :value message to 'VALUE-TEXT-ITEM
|> ... 

Perhaps it is time to add "*release2*" "*release3*" to the features for 
conditional code.  Or is there already a mechanism that I am unaware of?

________________________________________________________________
B. Narasimhan                             naras@euler.bd.psu.edu

From owner-SL-news  Fri Jun 10 04:34:59 1994
Resent-Date: Fri, 10 Jun 1994 11:34:59 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406101835.AA17310@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 10 Jun 1994 13:35:14 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Fri, 10 Jun 1994 13:35:04 -0500
Received: from laplace.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA06207; Fri, 10 Jun 94 11:35:01 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by laplace.math.ucla.edu 
	(Sendmail 5.0/1.10) id AA13942; Fri, 10 Jun 1994 11:34:59 +0800
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406101834.AA13942@laplace.math.ucla.edu>
Subject: xlispstuff on laplace.stat.ucla.edu (aka laplace.math.ucla.edu)
To: stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Fri, 10 Jun 1994 11:34:59 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 4386      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Here are some interesting Xlisp-Stat related 
additions to the laplace ftp server.

~/pub/lisp/xlisp has the new 2.1g version of Tom Almy's xlisp

~/pub/lisp/xlisp/xlisp-stat/students has projects from Nancy Reid's
class at U Toronto. They are
-rw-r--r--   1 553      51          15522 May 28 13:30 corres-anal.lsp
-rw-r--r--   1 553      51           3431 May 28 13:30 exer9-5.lsp
-rw-r--r--   1 553      51          39212 May 28 13:31 regres-add.lsp
-rw-r--r--   1 553      51          13778 May 28 13:31 repeated-measures.lsp
-rw-r--r--   1 553      51           2990 May 28 13:32 robust-btstrap.lsp
-rw-r--r--   1 553      51          17952 May 28 13:32 teach-density.lsp
-rw-r--r--   1 553      51           3845 May 28 13:32 teach-readme
-rw-r--r--   1 553      51          26482 May 28 13:33 teach-sample.lsp
-rw-r--r--   1 553      51           4590 May 28 13:33 weibull-mle.lsp

~/pub/lisp/xlisp/xlisp-stat/contrib/udina has a subdirectory kde with
a nicely developed kernel-density estimation package, plus documentation,
by Frederic Udina, UPF, Barcelona, and a subdirectory gnuplot with
code to make publication quality plots from xlisp-stat to gnuplot to
any device. This last code is still under construction.

~/pub/lisp/xlisp/xlisp-stat/contrib/naras has some new packages from
B. Narasimham, notable kde (another kernel-density package, with
some suppport in C), and call-lfun (demos to call C from xlisp).

~/pub/lisp/xlisp/xlisp-stat/contrib/axis is a statistics teaching package
on top of xlisp-stat by Robert Stine (Wharton).

~/pub/lisp/xlisp/xlisp-stat/homegrown/regression/terrace contains the
current version of the hierarchical linear modeling software by 
James Hilden-Minton (UCLA). It is about to be upgraded, look for
versions with a june 1994 date.

~/pub/lisp/xlisp/winterp-1.13 is the recent upgrade of Niels Mayer's
interface construction kit linking xlisp-stat and the Motif toolkit. 

~/pub/lisp/xlisp/xlisp-stat/brandnew is an alpha of a new version
of Xlisp-Stat (based on 2.1f, with byte-compiler, packages, workspaces).

~/pub/lisp/xlisp/xlisp-stat/mac/ppc has a powermac version of the
above. careful, it bombs ! Only use the mouse for menus and scrollbars.
It is blazingly fast, though. About twice the speed of a Sparc 10.

~/pub/lisp/xlisp/xlisp-stat/mac/r3a26 has two versions of the above
for the mac. one that uses a coprocessor, and one that doesn't. The
one that doesn't still has 68020 instructions, which means it can
be used on a PowerMac in emulation mode (on my benchmarks it is about
100 times slower than the native version), but it cannot be used on
68000 macs.

~/pub/lisp/common/powerlisp has version 1.1 of a very nice shareware
Common Lisp system by Roger Corman.

~/pub/lisp/xlisp/xlisp-plus/mac has version 2.1e3 of Brian Kendig's
adaptation of Tom Almy's xlisp-2.1x.

~/pub/lisp/common has version 1.0 of gcl, GNU Common Lisp, a repackaging
of KCL/AKCL for Unix systems.

Other supporting software for the mac, helpful for statistics teaching
and for program development, is in ~/pub/apps/mac. It has

drwxr-xr-x   2 553      51            512 May 26 10:50 alpha
drwxr-xr-x   2 553      51            512 Jun  5 18:00 emacs
drwxr-xr-x   2 553      51            512 Jun 10 11:22 f2c
drwxr-xr-x   2 553      51            512 Jun  5 22:51 gcc
drwxr-xr-x   2 553      51            512 May 27 21:27 ghostscript
drwxr-xr-x   2 553      51            512 Jun  3 15:49 glmstat
drwxr-xr-x   2 553      51            512 May 25 09:18 gnuplot
lrwxrwxrwx   1 553      51             14 May 18 10:02 hedeker -> ../hedeker/mac
drwxr-xr-x   4 553      51            512 May 24 09:58 lisp
drwxr-xr-x   2 553      51            512 Jun 10 11:22 p2c
drwxr-xr-x   2 553      51            512 May 31 20:49 rlab
drwxr-xr-x   2 553      51            512 May 27 10:24 schoolstat
drwxr-xr-x   2 553      51            512 Jun  3 15:51 system
lrwxrwxrwx   1 553      51             13 May 18 09:59 tex -> ../../tex/mac

The general idea is to store mac versions of the most useful unix
utilities and programs (emacs, gnuplot, ghostscript, f2c, gcc, pearl).
Some of them are not there yet, some of them require MPW. None of
them are PowerMac.

--- Jan



-- 
Jan de Leeuw; UCLA Statistics Program
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sat Jun 11 06:36:11 1994
Resent-Date: Sat, 11 Jun 94 13:36:11 -0700
Resent-From: owner-SL-news
Resent-Message-Id: <199406112036.AA22613@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 11 Jun 1994 15:36:05 -0500
Received: from netcom.com (netcom5.netcom.com) by umnstat.stat.umn.edu; Sat, 11 Jun 1994 15:36:02 -0500
Received: from localhost by netcom.com (8.6.8.1/SMI-4.1/Netcom)
	id NAA11955; Sat, 11 Jun 1994 13:36:12 -0700
Message-Id: <199406112036.NAA11955@netcom.com>
To: stat-lisp-news@umnstat
Subject: Announcing WINTERP 2.0 - Motif Widget INTERPreter w/Graphics/Animation
Summary: high-level object-oriented environment for rapid prototyping GUI apps
Keywords: X11/Motif, rapid-prototyping, dynamic/interactive/object-oriented user-interface-language, resolution-independent graphics, path-transition animation, automatic memory management, automatic resource conversion, xtango, XmGraph, XLISP-PLUS
Date: Sat, 11 Jun 94 13:36:11 -0700
From: "Niels P. Mayer" <mayer@netcom.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Niels P. Mayer" <mayer@netcom.com>


Please excuse the cross-posting to stat-lisp-news, but I figured you all
might be interested in yet another XLISP-PLUS based environment:

------------------------------------------------------------------------------

I just released WINTERP 2.0 for the X Consortium X11r6 "contrib"
distribution.  Previous releases of WINTERP were distributed on the X11r4
and X11r5 distributions -- 2.0 is a significant update over previously
released versions (1.0-1.13). This software is now available for free via
anonymous ftp from ftp.x.org:/contrib/devel_tools/winterp-2.01.tar.gz

			--------------------

WINTERP: An object-oriented rapid prototyping, development and delivery
environment for building extensible applications with the OSF/Motif UI
Toolkit and Xtango-based graphics/animation.

			by Niels Mayer
			WINTERP Version 2.01
			June 6, 1994
------------------------------------------------------------------------------
WINTERP is a Widget INTERPreter, an application development environment
enabling rapid prototyping of graphical user-interfaces (GUI) through the
interactive programmatic manipulation of user interface objects and their
attached actions. The interpreter, based on David Betz, Tom Almy, et al's
XLISP-PLUS, provides an interface to the X11 toolkit Intrinsics, the
OSF/Motif widget set, primitives for collecting data from UN*X processes,
and facilities for interacting with other UN*X processes. WINTERP thus
supports rapid prototyping of GUI-based applications by allowing the user
to interactively change both the UI appearance and application
functionality. These features make WINTERP a good tool for learning and
experimenting with the capabilities of the OSF/Motif UI toolkit, allowing
UI designers to more easily play "what if" games with different interface
styles.

WINTERP is also an excellent platform for delivering extensible or
customizable applications. By embedding a small, efficient language
interpreter with UI primitives within the delivered application, users and
system integrators can tailor the static and dynamic layout of the UI,
UI-to-application dialogue, and application functionality. WINTERP's use of
a real programming language for customization allows WINTERP-based
applications to be much more flexible than applications using customization
schemes provided by the X resource database, OSF/Motif's UIL (user
interface language), and resource-based languages such as WCL.

An environment similar to WINTERP's already exists in the Gnu-Emacs text
editor -- WINTERP was strongly influenced by Gnu-Emacs' successful design.
In Gnu-Emacs, a mini-Lisp interpreter is used to extend the editor to
provide text-browser style interfaces to a number of UN*X applications
(e.g. e-mail user agents, directory browsers, debuggers, etc). Whereas
Emacs-Lisp enables the creation of new applications by tying together
C-implemented primitives operating on text-buffer UI objects, WINTERP-Lisp
ties together operations on graphical UI objects implemented by the Motif
widgets. Both achieve a high degree of customizability that is common for
systems implemented in Lisp, while still attaining the speed of execution
and (relatively) small size associated with C-implemented applications.

Other features:
	* WINTERP is free software -- available via anonymous ftp from
	  ftp.x.org.
	* Portable -- runs without porting on many Unix systems.	
	* Interface to GNU Emacs' lisp-mode allows code to be developed
	  and tested without leaving the editor.
	* Interactive programing also available in the "WINTERP Control Panel",
	  with editing taking place in a Motif text widget controlled by
	  WINTERP.
	* Built-in RPC mechanism for inter-application communications.
	* XLISP provides a simple Smalltalk-like object system.
	* OSF/Motif widgets are real XLISP objects -- widgets can be
	  specialized via subclassing, methods added or altered, etc.
	* Automatic storage management of all Motif/Xt/X data.
	* Contains facilities for "direct manipulation" of UI components.

The WINTERP 2.0 release includes the following new features:
	* High-level, object-oriented 2.5D graphics/animation package featuring
          pixel-independent/resizeable/scalable rendering, path-transition
	  animation, and high-level animation operators. This is based on
	  Stasko&Hayes' Xtango system.
	* Using Xtango, the ability to easily create new widget classes
	  employing arbitary graphical behavior without the tedium of
	  programming in the Xt instrinsics and Xlib.
	* Asynchronous subprocess facility enables non-blocking GUI interfaces
	  to existing interactive unix commands and interactive network
	  services. Enables use of multiple asynchronous subprocesses.
	* XmGraph widget for creating directed acyclic graphs, trees, and
          direct-manipulation displays.
	* Table widget allows constraint-based GUI static layout
          using tbl(1)-style specifications.
	* Uses XLISP-PLUS version 2.1c -- more functionality, better subset of
	  Common Lisp, e.g. good support for sequence operators.
	* Support for OSF/Motif 1.2.*
	* GIF Image Support.
	* Many new examples, improved example WINTERP applications.
	* Major code cleanups, bugfixes, etc.

You may obtain the latest released version of the WINTERP source,
documentation, and examples via anonymous ftp from internet host ftp.x.org
in directory /contrib/devel_tools, file winterp-2.xx.tar.gz, where 'xx'
represents the revision number. Directory /contrib/devel_tools/winterp
contains slides, papers, further documentation, contributed code, etc.

An automated reply indicating the locations and status of the latest
WINTERP source may be obtained by sending an e-mail message to
winterp-source@netcom.com.

winterp@netcom.com is the mailing list for WINTERP-related announcements
and discussions. To get added/removed from the list, send mail to
winterp-request@netcom.com. Please do not send junk mail or subscribe/
unsubscribe messages to the mailing list winterp@netcom.com.

For discussions about XLISP, see the USENET newsgroup comp.lang.lisp.x.

------------------------------------------------------------------------------

AUTHOR:
		Niels P. Mayer
		Enterprise Integration Technologies
		800 El Camino Real, Fourth Floor
		Menlo Park, CA 94025
		mayer@eit.com or mayer@netcom.com
		URL: http://www.eit.com/people/mayer.html

------------------------------------------------------------------------------

DEPENDENCIES and PLATFORMS:

	WINTERP is portable software, and should run on any machine that
	supports Motif versions 1.0, 1.1, or 1.2 and Berkeley
	sockets. WINTERP will not build directly from the X11r6 distribution.
	YOU MUST HAVE MOTIF INSTALLED ON YOUR SYSTEM.

	WINTERP 2.0 has been tested on the following platforms:
		* Sun SunOS 4.1.3 and OSF Motif 1.2.3
		* Sun Solaris 2.3 with Motif/X11/cc provided by Sun's 2.3 SDK
		* HPUX 9.0 on HP9000s300 HP9000s400, HP9000s700
		* HPUX 8.0. on HP9000s300 and HP9000s800
		* SGI Irix 5.1 and 5.2 w/ Motif/X11/cc from Irix IDO.
		* DEC Ultrix 4.3 and its built-in Motif 1.1
		* DEC OSF1, v2.0 and its built-in Motif 1.2
		* NeXT NeXT-Step 3.0 with Pencom Co-Xist X/Motif

	The WINTERP distribution contains Makefiles specific to the above
	machines and OSs, and also provides Imakefiles for compiling WINTERP
	on other systems.

-------------------------------------------------------------------------------

OBTAINING WINTERP:

Here's how to ftp WINTERP 2.01: (your input denoted by ^^^^^^^^^^)

jhvh-1-16-~> cd /tmp
jhvh-1-17-/tmp> ftp ftp.x.org
                ^^^^^^^^^^^^^
        [...]
Name (jhvh-1.eit.com:mayer): anonymous
                             ^^^^^^^^^
Password (jhvh-1.eit.com:anonymous): <anypassword you want here>
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
331 Guest login ok, send ident as password.
230 Guest login ok, access restrictions apply.
ftp> cd contrib/devel_tools
     ^^^^^^^^^^^^^^^^^^^^^^
200 CWD command okay.

ftp> binary
     ^^^^^^
200 Type set to I.

ftp> get winterp-2.01.tar.gz
     ^^^^^^^^^^^^^^^^^^^^^^^
200 PORT command okay.
150 Opening data connection for winterp-2.01.tar.gz (192.100.58.37,3988) (2303809 bytes).
226 Transfer complete.
2303809 bytes received in 690.63 seconds (1.96 Kbytes/sec)

ftp> quit
     ^^^^
221 Goodbye.

jhvh-1-18-/tmp> su     ## become superuser to install in /usr/local/winterp
	        ^^
jhvh-1-ROOT-1-/tmp> cd /usr/local/
                    ^^^^^^^^^^^^^^

jhvh-1-ROOT-2-/usr/local> gunzip -c /tmp/winterp-2.01.tar.gz | tar xvf -
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        [... lengthy list of files output by tar ...]

jhvh-1-ROOT-3-/usr/local/> rm /tmp/winterp-2.01.tar.gz
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^

<< If you don't have GNU zip (gzip(1) gunzip(1), retrieve the               >>
<< winterp-2.01.tar.Z instead of the winterp-2.01.tar.gz file and use "zcat">>
<< in place of "gunzip -c" above....                                        >>

------------------------------------------------------------------------------

COMPILING and RUNNING:

   * For compilation tips, see winterp/doc/winterp.doc sections:
     <<Compiling and installing WINTERP via Imakefile and 'xmkmf':>>
     or <<Compiling and installing WINTERP via Makefile.* and 'make':>>.

   * For configuration and running hints, see winterp/doc/winterp.doc
     sections: <<Set up X resources and application defaults files:>>,
     <<~/.winterp -- WINTERP session startup file:>>, 
     <<~/.winterpapp -- WINTERP development session startup file.>>,
     and finally, <<Run WINTERP!:>>

   * For known bugs, see winterp/doc/BUGS

From owner-SL-news  Sat Jun 11 08:49:19 1994
Resent-Date: Sat, 11 Jun 1994 15:49:19 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406112249.AA23046@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 11 Jun 1994 17:49:26 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 11 Jun 1994 17:49:23 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA21996; Sat, 11 Jun 94 15:49:20 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA17908; Sat, 11 Jun 94 15:49:20 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406112249.AA17908@galton.math.ucla.edu>
Subject: winterp
To: stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 11 Jun 1994 15:49:19 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 280       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Winterp, the widget interpreter in xlisp, is upgraded on laplace
to version 2.01.

--- Jan

-- 
Jan de Leeuw; UCLA Statistics Program
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sat Jun 11 09:44:14 1994
Resent-Date: Sat, 11 Jun 1994 16:44:14 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406112344.AA23249@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 11 Jun 1994 18:44:24 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 11 Jun 1994 18:44:20 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA22375; Sat, 11 Jun 94 16:44:18 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA17990; Sat, 11 Jun 94 16:44:15 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406112344.AA17990@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 11 Jun 1994 16:44:14 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3247      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

#| This is for former APL addicts such as myself. Although
Xlisp-Stat has some of the basic multidimensional array
operators, is is not as complete as APL (and certainly not
as complete as APL-2 or J). Here are the basic slicing,
subscripting, compression, and expansion operators for
Xlisp-Stat. They make it much easier to write programs
for multiway scaling, for analysis of multidimensional
contingency tables, and so on. I guess it brings us closer
to MatLab and the new S. |#




(defun array-marginal (x y &optional (f (function +)))
"Args: array list
Computes the marginals of dimensions LIST from the array
ARRAY. Thus if x is a 10 x 3 x 7 array, then 
(array-marginal x '(0 2)) returns a a 10 x 7 matrix,
and (array-marginal x '(1)) returns a vector with 3 elements."
(let* (
       (nx (array-total-size x))
       (mx (array-dimensions x))
       (mz (select mx y))
       (un (if (eq f #'*) 1 0))
       (zz (make-array mz :initial-element un))
       )
(dotimes (i nx zz)
(let* (
       (s (row-major-aref x i))
       (k (array-subscript x i))
       (l (select k y))
       (r (apply #'aref (adjoin zz l)))
       (m (apply #'array-row-major-index (adjoin zz l)))
       )
(setf (row-major-aref zz m) (funcall f r s))))
))

(defun array-outer-product (x y &optional (f (function *)))
"Args: array array
If X is an array of array-dimension nx and Y
is an array of array-dimension ny, then we
return an array of dimension nx x ny, with
elements (f x y)."
(let* (
       (dx (array-dimensions x))
       (dy (array-dimensions y))
       (nx (array-total-size x))
       (ny (array-total-size y))
       (zz (make-array (concatenate 'list dx dy)))
       )
(dotimes (i nx zz)
         (let (
               (xi (row-major-aref x i))
               (ii (array-subscript x i))
               )
           (dotimes (j ny)
                    (let* (
                          (yj (row-major-aref y j))
                          (jj (array-subscript y j))
                          (kk (concatenate 'list ii jj))
                          (mm (apply #'array-row-major-index (adjoin zz kk)))
                          )
(setf (row-major-aref zz mm) (funcall f xi yj))
))))
))

(defun array-slice (x y)
"Args: array list
Elements of Y are either integers or nil. List is
of order array-rank of X. The array gets sliced
along the non-nil elements of Y. Thus if X is
10 x 3 x 7, then (array-slice x '(5 nil 2))
produces a vector with three elements." 
(let* (
       (mx (array-dimensions x))
       (my (if-else y (mapcar 'list y) (mapcar #'iseq mx)))
       (zy (apply #'select (adjoin x my)))
       (dy (remove-if #'(lambda (x) (= x 1)) (array-dimensions zy)))
       )
(make-array dy :displaced-to zy)
))

(defun array-subscript (x k)
"Args: array integer
Returns the subscript of the element of ARAAY
having row-major-index INTEGER. Inverse of
array-row-major-index."
(let* (
       (mx (array-dimensions x))
       (dx (array-rank x))
       (ss (make-list dx))
       )
(dotimes (i dx ss)
         (let* (
                (ex (1- (- dx i)))
                (ux (elt mx ex))
                (kx (mod k ux))
                (rx (/ (- k kx) ux))
                )
           (setf (elt ss ex) kx)
           (setf k rx)
           ))
))


From owner-SL-news  Sat Jun 11 16:47:57 1994
Resent-Date: Sat, 11 Jun 1994 23:47:57 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406120648.AA24424@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 12 Jun 1994 01:48:06 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sun, 12 Jun 1994 01:48:01 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA23590; Sat, 11 Jun 94 23:47:58 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA18168; Sat, 11 Jun 94 23:47:58 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406120647.AA18168@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 11 Jun 1994 23:47:57 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 7390      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

#| 
Product of a lazy Saturday. 
Version 0.1 -- June 11, 1994. 
I really should have been doing something useful instead. 
|# 


#| 
This is for former APL addicts such as myself. Although
Xlisp-Stat has some of the basic multidimensional array
operators, is is not as complete as APL (and certainly not
as complete as APL-2 or J). Here are the basic slicing,
subscripting, compression, and expansion operators for
Xlisp-Stat. They make it much easier to write programs
for multiway scaling, for analysis of multidimensional
contingency tables, and so on. I guess it brings us closer
to MatLab, Mathematica, and the new S. With these
operators (and the existing ones, such as array-permute)
iteratiuve proportional fitting for general log-linear
models is a breeze. 
|#

#| 
(Much) later in the day. Added pretty-printer for
arrays. Made apl-outer-product work for an arbitrary
number of arrays, and for arbitrary vector-reducing
functions. This generalizes APL's outer-product o.f, with f binary.
Defined generalized inner product (i.e.
APL's inner product f.g), with g an arbitrary binary operator
and f an vector-reducing function. Rewrote apl-reduce
to be more efficient, and use an arbitrary vector-reducing
function. This makes it equivalent to APL's reduction f/.
|#

#| 
The four basic APL operators (see, for example,
Garry Helzel, An Encyclopedia of APL, 2e edition, 1989,
I-APL, 6611 Linville Drive, Weed., CA) are inner-product,
outer-product, reduce, and scan. They can be used to
produce new binary and unary functions from existing
ones. We give Xlisp-Stat implementations below, together
with some helpers.
|#

(defun apl-reduction (x l &optional (f #'sum))
"Args: array list
Computes reductions for dimensions l from the array
x along remaining dimensions, using general vector-reducing
functions. Thus if x is a 10 x 3 x 7 array, then 
(array-marginal x '(0 2)) returns a a 10 x 7 matrix,
and (array-marginal x '(1)) returns a vector with 3 elements.
Same for (array-marginal x '(1) #'median)"
(let* (
       (rx (array-rank x))
       (mx (array-dimensions x))
       (mz (select mx y))
       (zz (make-array mz))
       (nz (array-total-size zz))
       )
  (dotimes (i nz zz)
           (let* (
                  (nn (repeat nil rx))
                  (kk (array-subscript zz i))
                  )
             (setf (select nn y) kk)
             (setf (row-major-aref zz i) (funcall f (array-slice x nn)))
             ))
))

(defun apl-scan (x k &optional (f #'+))
"Args: array index
Computes cumulative scans of dimension k from array x
along remaining dimensions. Thus the result has the same
dimensions as x, but successive slices are summed."
(let* (
       (rx (array-rank x))
       (mx (array-dimensions x))
       (mk (elt mx k))
       (nx (array-total-size x))
       (zz (make-array mx))
       )
  (dotimes (i nx zz)
           (let* (
                  (si (array-subscript zz i))
                  (mi (mapcar #'list si))
                  (ti (elt si k))
                 )
             (setf (elt si k) nil)
             (setf (elt mi k) (iseq mk))
             (setf (row-major-aref zz i) (elt (accumulate f (array-slice x si)) ti))
            ))
))

(defun apl-outer-product (x &optional (f #'*))
"Args: list-of-arrays &optional function 
If X_1,...,X_m are arrays of array-dimension nx_1,...,nx_m, then we
return an array of dimension nx_i x ... x nx_m, with
elements (f x_1 ... x_m)."
(let* (
       (d (mapcar #'array-dimensions x))
       (r (mapcar #'array-rank x))
       (s (map-elements #'+ (mapcar #'iseq r) 
              (select (cumsum (adjoin 0 r)) (iseq (length r)))))
       (z (make-array (apply #'concatenate (adjoin 'list d))))
       (n (array-total-size z))
       )
(dotimes (i n z)
(let* (
      (si (array-subscript z i))
      (ti (mapcar #'(lambda (x) (select si x)) s))
      (ui (map-elements #'(lambda (a b) (apply #'select (adjoin a b))) x ti))
      )
(setf (row-major-aref z i) (apply f ui))
))))

(defun apl-inner-product (x y &optional (f #'*) (g #'+))
"Args: array array &optional binary-function reducing-function
The arrays have to be conforming, i.e. the last dimension
of the first one must be equal to the first dimension of the second
one. Then an n_1 x ... x n_a x t array and a t x m_1 x ... x m_b
array produce a n_1 x ... x n_a x m_1 x ... x m_b array, reduced
along the common dimension by (g (f x y))."
(let* (
       (mx (array-dimensions x))
       (my (array-dimensions y))
       (rx (array-rank x))
       (ry (array-rank y))
       (z1 (reverse (rest (reverse mx))))
       (z2 (rest my))
       (mz (combine z1 z2))
       (zz (make-array mz))
       (nz (array-total-size zz))
       )
  (if (/= (first (reverse mx)) (first my)) (error "Non-conforming arrays"))
  (dotimes (i nz zz)
           (let* (
                  (si (array-subscript zz i))
                  (xi (combine (select si (iseq (1- rx))) nil))
                  (yi (combine nil (select si (+ (1- rx) (iseq (1- ry))))))
                  (xx (coerce (array-slice x xi) 'list))
                  (yy (coerce (array-slice y yi) 'list))
                  )
             (setf (row-major-aref zz i) (apply g (funcall f xx yy)))
             ))
))

#| 
Some auxilary functions 
|#

(defun array-slice (x y)
"Args: array list
Elements of Y are either integers or nil. List is
of order array-rank of X. The array gets sliced
along the non-nil elements of Y. Thus if X is
10 x 3 x 7, then (array-slice x '(5 nil 2))
produces a vector with three elements." 
(let* (
       (mx (array-dimensions x))
       (my (if-else y (mapcar 'list y) (mapcar #'iseq mx)))
       (zy (apply #'select (adjoin x my)))
       (dy (remove-if #'(lambda (x) (= x 1)) (array-dimensions zy)))
       )
(make-array dy :displaced-to zy)
))

(defun array-inflate (x)
"Args: array
Takes any array, check if some of the dimensions have only 
one element, then reduce to an array of lower dimension."
(let* (
      (mx (array-dimensions x))
      (nx (remove-if #'(lambda (x) (= x 1)) mx))
      )
(make-array nx :displaced-to x)
))

(defun array-subscript (x k)
"Args: array integer
Returns the subscript of the element of X
having row-major-index K. Inverse of
array-row-major-index."
(let* (
       (mx (array-dimensions x))
       (dx (array-rank x))
       (ss (make-list dx))
       )
(dotimes (i dx ss)
         (let* (
                (ex (1- (- dx i)))
                (ux (elt mx ex))
                (kx (mod k ux))
                (rx (/ (- k kx) ux))
                )
           (setf (elt ss ex) kx)
           (setf k rx)
           ))
))

#| 
Last but not least: an array pretty printer 
|#

(defun array-print (x i j)
"Args: array
Sort of pretty-prints any array X. Makes slices
along dimensions I and J. If X is 10 x 3 x 7,
then (array-print x 0 1) prints 7 matrices of
dimensions 10 x 3, while (array-print x 2 0)
prints 3 matrices of dimensions 7 x 10."
(let* (
      (mx (array-dimensions x))
      (nx (array-total-size x))
      )
(dotimes (k nx) 
(let* (
       (sk (array-subscript x k))
       (si (elt sk i))
       (sj (elt sk j)) 
       )
(if (and (= 0 si) (= 0 sj))
(progn
 (setf (elt sk i) "row")
 (setf (elt sk j) "column")
 (print (coerce sk 'vector))
 (terpri)
 (setf (elt sk i) nil)
 (setf (elt sk j) nil)
 (if (< i j)
     (print-matrix (array-slice x sk))
     (print-matrix (transpose (array-slice x sk))))
))))
))   


From owner-SL-news  Sun Jun 12 16:03:59 1994
Resent-Date: Sun, 12 Jun 1994 23:03:59 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406130604.AA28256@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 13 Jun 1994 01:04:24 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Mon, 13 Jun 1994 01:04:15 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA03501; Sun, 12 Jun 94 23:04:10 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA25678; Sun, 12 Jun 94 23:03:59 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406130603.AA25678@galton.math.ucla.edu>
Subject: array, loglin
To: vartania@math.ucla.edu (Sona Vartanian),
        ibdpmhs@mvs.oac.ucla.edu (Mike Seltzer),
        abraverm@math.ucla.edu (Amy Braverman),
        biestera@math.ucla.edu (Amy Biesterfeld),
        wangd@math.ucla.edu (Deborah Wang),
        jhilden@math.ucla.edu (James Hilden-Minton),
        mcfarlan@soc.sscnet.ucla.edu (David McFarland),
        berk@playfair.sscnet.ucla.edu (Dick Berk),
        mason@arcana.sscnet.ucla.edu (Bill Mason),
        gliu@math.ucla.edu (GuangHan Liu),
        stockdal@math.ucla.edu (Susan Stockdale),
        kcli@math.ucla.edu (Ker-Chau Li), lchen@math.ucla.edu (Li-Sue Chen),
        jbond@math.ucla.edu (Jason Bond),
        cchen@stat.sinica.edu.tw (Chung-Ho Chen),
        iamsjdd@mvs.oac.ucla.edu (Jim de Nardo),
        dbetz@math.ucla.edu (David Betz), novakj@math.ucla.edu (John Novak),
        stat-lisp-news@umnstat (Xlisp List)
Date: Sun, 12 Jun 1994 23:03:59 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1145      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

The new and final version of array.lsp with the four basic apl-operators
is on laplace in
~/pub/lisp/xlisp/xlisp-stat/homegrown/tables
There is also a loglin.lsp, which requires the array operators. It
now has a two-dimensional version of quasi-symmetry, a very imcomplete
version of the RC-model, and a fairly satisfactory (although barebones)
version of no-second-order-interaction for multivariate tables. I will
update RC and QS to multivariate tables as well. Ultimately, of
course, this belongs in an object-oriented framework similar to
the glm package (and perhaps even similar to the CoCo program).

One of the major problems with using Xlisp-Stat in teaching is
the lack of a nice help facility. I have started the contruction
of a hierarchical help widget (inspired by GNU info), but I am
uncertain about the interface. Suggestions welcome. My current 
junk is in 
~/pub/lisp/xlisp/xlisp-stat/homegrown/help

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sun Jun 12 17:32:07 1994
Resent-Date: Mon, 13 Jun 94 00:32:07 -0700
Resent-From: owner-SL-news
Resent-Message-Id: <199406130732.AA28544@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 13 Jun 1994 02:32:51 -0500
Received: from netcom.com (netcom5.netcom.com) by umnstat.stat.umn.edu; Mon, 13 Jun 1994 02:32:46 -0500
Received: from localhost by netcom.com (8.6.8.1/SMI-4.1/Netcom)
	id AAA03710; Mon, 13 Jun 1994 00:32:22 -0700
Message-Id: <199406130732.AAA03710@netcom.com>
To: Jan Deleeuw <deleeuw@math.ucla.edu>
Cc: vartania@math.ucla.edu (Sona Vartanian),
        ibdpmhs@mvs.oac.ucla.edu (Mike Seltzer),
        abraverm@math.ucla.edu (Amy Braverman),
        biestera@math.ucla.edu (Amy Biesterfeld),
        wangd@math.ucla.edu (Deborah Wang),
        jhilden@math.ucla.edu (James Hilden-Minton),
        mcfarlan@soc.sscnet.ucla.edu (David McFarland),
        berk@playfair.sscnet.ucla.edu (Dick Berk),
        mason@arcana.sscnet.ucla.edu (Bill Mason),
        gliu@math.ucla.edu (GuangHan Liu),
        stockdal@math.ucla.edu (Susan Stockdale),
        kcli@math.ucla.edu (Ker-Chau Li), lchen@math.ucla.edu (Li-Sue Chen),
        jbond@math.ucla.edu (Jason Bond),
        cchen@stat.sinica.edu.tw (Chung-Ho Chen),
        iamsjdd@mvs.oac.ucla.edu (Jim de Nardo),
        dbetz@math.ucla.edu (David Betz), novakj@math.ucla.edu (John Novak),
        stat-lisp-news@umnstat (Xlisp List)
Subject: Help Facility (was Re: array, loglin )
In-Reply-To: Your message of "Sun, 12 Jun 94 23:03:59 PDT."
             <9406130603.AA25678@galton.math.ucla.edu> 
Date: Mon, 13 Jun 94 00:32:07 -0700
From: "Niels P. Mayer" <mayer@netcom.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Niels P. Mayer" <mayer@netcom.com>

From: Jan Deleeuw <deleeuw@math.ucla.edu>
> One of the major problems with using Xlisp-Stat in teaching is
> the lack of a nice help facility. I have started the contruction
> of a hierarchical help widget (inspired by GNU info), but I am
> uncertain about the interface. Suggestions welcome.


I would suggest writing your documentation in HTML and using a World
Wide Web browser such as NCSA mosaic (free, available w/ static-linked
motif, or build your own and use dynamic motif libs). Basically, one
may use mosaic to browse local HTML files, giving you a very capable
hierarchical or hypertextual help widget -- it just happens to live in
a different process.

We (EIT) are prototyping/developing a multimedia authoring environment
for the world wide web using WINTERP 2.0. We have a function that
allows us to preview the document we're editing in Mosaic. This is done
via a very simple interface using WINTERP's subprocess package. Once
we've created a "mosaic subprocess" we can send arbitrary requests to
that process to display a page of hypermedia. 

The mosaic-side interface for this is a horrible hack, but it works!
(Blame the NCSA for that one, folks...)...

; -*-Lisp-*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; File:         mosaic.lsp
; RCS:          $Header: $
; Description:  Mosaic_Subprocess_Class -- interface to xmosaic as subprocess
;		allowing WINTERP to force loads of of URLs into xmosaic.
;		Example use:
;		  (setq mosaic-process (send Mosaic_Subprocess_Class :new))
;		    (send mosaic-process :load-url
;		      "file:/users/mayer/EIT/MECE/html/lockheed2/entry10.html")
;                   (send mosaic-process :load-url
;                       "file:/users/mayer/EIT/MECE/html/lockheed2/.test.html")
;		    (send mosaic-process :show)
;		    (send mosaic-process :kill)
;		    (send mosaic-process :show)
; Author:       Niels P. Mayer
; Created:      Mon Jan 24 00:54:33 1994
; Modified:     Sat May 14 17:57:05 1994 (Niels Mayer) npm@indeed
; Language:     Lisp
; Package:      N/A
; Status:       Experimental (Do Not Distribute)
;
; (C) Copyright 1994, Enterprise Integration Technologies Corporation.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(require "xlisp-2.1d/common")		;define WITH-OPEN-FILE macro

(defconstant *mosaic-proc* "mosaic")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Class definition
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq Mosaic_Subprocess_Class
      (send Class :new 
	    '(				;instance variables
	      mosaic_pid
	      mosaic_pty
	      mosaic_icb
	      mosaic_ecb
	      error_w
	      error_str
	      )
	    ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Initialization method.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(send Mosaic_Subprocess_Class :answer :ISNEW
      '()
      '(
	(setq error_w nil)
	(setq error_str nil)

	(setq mosaic_pty
	      (exp_spawn
	       *mosaic-proc* *mosaic-proc*
	       "/dev/null"		;don't load any file by default
	       ))
	(setq mosaic_pid
	      (exp_get_pid)
	      )

	;; pop up a dialog box displaying any error output from mosaic
	(setq mosaic_icb
	      (xt_add_input
	       mosaic_pty :read_line_to_string
	       '(                       ;fire callback once per line of output
		 ;; (format T "mosaic :read_line_to_string icb called \n")		 
		 (if (null error_w)
		     (progn
		       (setq error_str FDINPUTCB_STRING)
		       (setq error_w
			     (send XM_MESSAGE_BOX_WIDGET_CLASS :new :unmanaged :error_dialog
				   "mosaic_error" *TOPLEVEL_WIDGET*
				   :XMN_MESSAGE_STRING  FDINPUTCB_STRING
				   :XMN_DIALOG_TITLE	"Mosaic output: (stderr/stdout)"
				   :XMN_AUTO_UNMANAGE	nil
				   ))
		       (send (send error_w :get_child :DIALOG_HELP_BUTTON) :unmanage)
		       (send (send error_w :get_child :DIALOG_CANCEL_BUTTON) :unmanage)
		       (send error_w :add_callback :XMN_OK_CALLBACK '()
			     '(
			       (send error_w :destroy)
			       (setq error_w nil)
			       (setq error_str nil)
			       ))
		       (send error_w :manage)
		       )
		   (progn
		     (send error_w :manage)
		     (setq error_str (concatenate 'string error_str "\n" FDINPUTCB_STRING))
		     (send error_w :set_values :XMN_MESSAGE_STRING error_str)
		     ))
		 )))
	;; When 'mosaic' is finished, an exception condition is raised by this callback.
	;; At that point, we can shut down the pty...
	(setq mosaic_ecb
	      (xt_add_input
	       mosaic_pty :except
	       '(
		 ;; (format T "mosaic :except icb called \n")
		 (xt_remove_input mosaic_icb)
		 (xt_remove_input mosaic_ecb)
		 (close mosaic_pty)
		 (exp_wait)
		 (setq
		  mosaic_pid	NIL
		  mosaic_pty	NIL
		  mosaic_icb	NIL
		  mosaic_ecb	NIL
		  )
		 )))
	))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(send Mosaic_Subprocess_Class :answer :LOAD-URL '(url-name)
      '(
	(if mosaic_pid
	    (progn
	      (with-open-file
	       (fp (format nil "/tmp/Mosaic.~A" mosaic_pid)
		   :direction :output :if-exists :supersede)
	       (format fp "goto\n")
	       (format fp "~A" url-name)
	       )
	      (exp_kill "USR1" mosaic_pid)
	      )
	  (error "Mosaic_Subprocess_Class/:LOAD-URL -- mosaic process doesn't exist")
	  )
	))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(send Mosaic_Subprocess_Class :answer :KILL '()
      '(
	(if mosaic_pid
	    (exp_kill "TERM" mosaic_pid)
	  (error "Mosaic_Subprocess_Class/:KILL -- mosaic process doesn't exist")
	  )
	))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(send Mosaic_Subprocess_Class :answer :EXISTS_P '()
      '(
	(if mosaic_pid
	    T
	  NIL
	  )
	))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(provide (concatenate 'string *winweb-base-dir* "mosaic"))

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
==           Niels Mayer -- netcom!mayer -- mayer@netcom.com               ==
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

From mwitten@chpc.utexas.edu  Mon Jun 13 18:11:44 1994
Received: from morpheus (morpheus.chpc.utexas.edu) by umnstat.stat.umn.edu; Mon, 13 Jun 1994 12:11:50 -0500
Received: by morpheus (5.0/SMI-4.1)
	id AA17406; Mon, 13 Jun 1994 12:11:44 +0600
Date: Mon, 13 Jun 1994 12:11:44 +0600
From: mwitten@chpc.utexas.edu
Message-Id: <9406131711.AA17406@morpheus>
To: SL-news-list@umnstat
Subject: URGENT QUESTION
Content-Length: 1208

Question:

I am interested in any help from anyone out there on the
following subject. 

We have become an information gathering
society. One of the areas of interest is the gathering of
large databases of information. I was wondering if
anyone out there might know of databases of biomedical
information and how to access them. For example,
GenBank, census data, databases of medical images,
databases of population statistics, environmental
toxicity data, dental data, etc. If you know of such data,
would you please send me the following information: 


Name of Database:
Is the database public or private:
How to contact database or database owner.


I will summarize the responses for the list. This is a
rather urgent request so, rapid answers would be
appreciated. Do not worry about duplicating others.


Feel free to cross post this note to any other lists that
might be appropriate.


Thanks,
Matthew Witten, Ph.D.
Head, Department of Applications Research and Development
Associate Director
UT System Center For High Performance Computing
Balcones Research Center, 1.154 CMS
10100 Burnet Road, Austin, TX 78758-4497 USA
Phone: (512) 471-2472  FAX: (512) 471-2445  
E-MAIL  MWITTEN@CHPC.UTEXAS.EDU

From owner-SL-news  Tue Jun 21 04:29:18 1994
Resent-Date: Tue, 21 Jun 1994 11:29:18 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199406211829.AA08435@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 21 Jun 1994 13:29:32 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Tue, 21 Jun 1994 13:29:28 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA03247; Tue, 21 Jun 94 11:29:20 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA04979; Tue, 21 Jun 94 11:29:18 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9406211829.AA04979@galton.math.ucla.edu>
Subject: plea
To: stat-lisp-news@umnstat (Xlisp List)
Date: Tue, 21 Jun 1994 11:29:18 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1614      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

If we want to support Xlisp-Stat on different platforms (and one of the
great things about it is exactly that it does exist for X11, Mac. MSW)
the it is a major nuisance that the three main versions are not 
equivalent. There is a clear order Mac > X11 > MSW, and while I 
think that if you have an order, this is the best one, it still is 
very undesirable. No matter how much we detest MSW, for instance,
it is self-defeating and undemocratic not to have a fully functional
MSW version.

Of course it is a hassle to maintain three separate version, and
consequently I have always had, in the back of my mind, the
possibility of using something like XVT for the Xlisp front end.
XVT makes it possible to write interfaces which are source-code
identical on all supported platforms.
This will require quite a lot of programming, but I guess I could
find the resources to do it. It also requires XVT, which costs
a lot of money for each implementation, it has non-disclosures,
no source code, and so on. 

I recently became aware of the ncbi toolkit, including the corelib
and vibrant. This is a protable implementation of C memory
management and string handling etc, as well as a portable (Mac,
MSW, X11/Motif) interface building toolkit. It comes with all
the source etc, and it's free !

It can be ftp-ed from  ncbi.nlm.nih.gov, and also from laplace.stat.ucla.edu
in ~/pub/code/ncbi. 


--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From luke  Thu Jun 23 00:30:30 1994
Resent-Date: Thu, 23 Jun 1994 05:30:30 -0500
Resent-Message-Id: <199406231030.AA11446@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 23 Jun 1994 05:30:32 -0500
Date: Thu, 23 Jun 1994 05:30:30 -0500
From: "Luke Tierney" <luke>
Message-Id: <199406231030.AA11439@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 23 Jun 1994 05:30:30 -0500
To: stat-lisp-news@umnstat
Subject: New beta release of xlispstat
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

XLISP-STAT Release 3.37 for UNIX systems is now available for
anonymous ftp from umnstat.stat.umn.edu (128.101.51.1) in

	pub/xlispstat/xlispstat-3-37.tar.gz

This a tar archive compressed with the GNU gzip compression utility.
Once you have retrieved the file you can extract the sources with

	gzip -cd | tar xvf - 

This is a beta realease -- some things are still in flux, others have
not been extensively tested. Please let me know if you run into any
problems.

There are a large number of minor changes, mostly in the basic XLISP
system. These chages move the basic XLISP closer to Common Lisp, and
include

	- Common Lisp package system for name space management

	- multiple return values

	- other improvements from XLISP-PLUS 2.1g

	- a byte code compiler

	- saving workspaces (useful for simplifying startup, not yet
	  for saving data -- workspaces from the current version will
	  not yet work with future versions)

	- support for dynamic loading in more systems (based on shared
	  libraries).

Wherever possible, changes have been made in such a way as to maintain
backward compatiblility, but a few incompatibilities were unavoidable.
The file doc/changes.tex gives a rough overview of the changes.

I have changed the release numbering system to have a major number and
a minor number. The major release number is now 3. The minor number is
37; it continues on from the Alpha numberings. Thus the 3 Alpha 26
release that was made available recently corresponds to 3.26 in the
new scheme. At least one of these numbers will change whenever a new
version is made available publically; this should help in identifying
problems.

Please read the INSTALL file before installing this version. There is
now a configure script that attempts to set up the Makefile
appropriately. The configuration script has been tested on the
following systems:

	Machine			Operating System
	=======			================
	CRAY Y-MP		Cray OS 7.C.3
	EPIX			UMIPS 1.4.3
	DECstation 3100		ULTRIX 4.2
	DEC Alpha		OSF1 V1.3
	HP 9000/715		HP-UX A.09.01
	IBM RS6000		AIX 2.3 (?)
	SGI IndyPC		IRIX 5.2
	Sun Sparc		SunOs 4.1
	Sun Sparc		SunOA 5.3

I believe the configure script will also work for Linux but can't test
that myself. The script may work on other systems or may need
modifications. If you have trouble getting it to run on another
system, or get it to run with some changes, please let me know so I
can make appropriate modifications to the configure script.

Luke Tierney
School of Statistics
University of Minnesota
Minneapolis, MN 55455
luke@stat.umn.edu

From owner-SL-news  Sun Jul 10 16:51:35 1994
Resent-Date: Sun, 10 Jul 1994 23:51:35 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199407110651.AA08521@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 11 Jul 1994 01:51:43 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Mon, 11 Jul 1994 01:51:40 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA11833; Sun, 10 Jul 94 23:51:37 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA08851; Sun, 10 Jul 94 23:51:35 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9407110651.AA08851@galton.math.ucla.edu>
Subject: address
To: stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Sun, 10 Jul 1994 23:51:35 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 340       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

In case you did not notice, the files can be ftp-ed from
ftp.stat.ucla.edu, no longer from laplace.stat.ucla.edu.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sun Jul 10 16:49:33 1994
Resent-Date: Sun, 10 Jul 1994 23:49:33 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199407110650.AA08503@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 11 Jul 1994 01:50:01 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Mon, 11 Jul 1994 01:49:57 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA11727; Sun, 10 Jul 94 23:49:39 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA08835; Sun, 10 Jul 94 23:49:34 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9407110649.AA08835@galton.math.ucla.edu>
Subject: Mac 3.37 binary
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat (Xlisp List)
Date: Sun, 10 Jul 1994 23:49:33 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 763       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

There is a binary of XLISP-STAT version 3.37 beta in 
~pub/lisp/xlisp/xlisp-stat/mac/3b37. It was compiled
with MPW 3.2, since MPW 3.3.x has problems with #define's
that are nested to deeply. Also, Think C 7.0 uses the
new Universal Headers, which gives some problems with
ProcPtrs.

This one seems fine. The binary is xlisp-stat.hqx, which
must be un-binhexed, and I have added the foo.fsl files
you need for startup (i.e. the compiled ones). I'll
probably add a 68000 version in the next few hours, for
those of us with PowerMac's 8-)

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From bjm  Mon Jul 11 05:01:45 1994
Resent-Date: Mon, 11 Jul 1994 10:01:45 -0500
Resent-Message-Id: <199407111501.AA01897@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 11 Jul 1994 10:01:48 -0500
Date: Mon, 11 Jul 1994 10:01:45 -0500
From: "Bret J. Musser" <bjm>
Message-Id: <199407111501.AA01890@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 11 Jul 1994 10:01:45 -0500
To: stat-lisp-news@umnstat
Subject: Dynamic loading on a Sun
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Bret J. Musser" <bjm>


I have a few questions about dynamic loading on a Sun workstation.
If you have experience with d.l. for xls 2.1R2 or 3-37 please send me email;
I'm trying to get a program linked for an associate and my lack of 
familiarity with Suns is a hindrance.

If you reply, you will get my vacation notice, but I will reply (probably 
tomorrow).

Thanks,

Bret Musser
bjm@stat.umn.edu




From owner-SL-news  Mon Jul 11 01:56:41 1994
Resent-Date: Mon, 11 Jul 1994 08:56:41 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199407111601.AA10171@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 11 Jul 1994 11:01:11 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Mon, 11 Jul 1994 10:58:03 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA20568; Mon, 11 Jul 94 08:56:44 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA12781; Mon, 11 Jul 94 08:56:42 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9407111556.AA12781@galton.math.ucla.edu>
Subject: sorry about that
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat (Xlisp List)
Date: Mon, 11 Jul 1994 08:56:41 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 326       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Permissions on
~pub/lisp/xlisp/xlisp-stat/mac/r3b37
on ftp.stat.ucla.edu were off. They are OK now.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Wed Jul 13 08:45:45 1994
Resent-Date: Wed, 13 Jul 1994 12:45:45 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199407131645.AA21793@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 13 Jul 1994 11:45:01 -0500
Received: from euler.bd.psu.edu by umnstat.stat.umn.edu; Wed, 13 Jul 1994 11:44:38 -0500
Received: by euler.bd.psu.edu via SMTP (930416.SGI/930416.SGI.AUTO)
	for stat-lisp-news@umnstat.stat.umn.edu id AA07754; Wed, 13 Jul 94 12:45:58 -0400
Message-Id: <9407131645.AA07754@euler.bd.psu.edu>
To: stat-lisp-news@umnstat
Subject: Lisp-Stat Projects List
Date: Wed, 13 Jul 1994 12:45:45 -0400
From: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>

  Many of us would like to know of completed, or ongoing, or contemplated 
  projects using Lisp-Stat. I am going to maintain a list of such projects 
  and update the list periodically.

  Please use the example below as a template and mail it back to me. Feel
  free to use more headings if you need them.   Also, if you wish to maintain
  your own Web page, send me a brief description along with a URL and I will
  add a link to your page.  I have deliberately not used any fancy HTML stuff.

  IMPORTANT NOTE: Please preserve the structure; it saves me time. Also,
                don't forget the <p> at the end of each para as well as
                the delimeters shown in the example.  I will put your
                stuff up AS I RECEIVE IT, WITH NO CHANGES.
 
  I will announce a permanent Web page for this later. Right now, 
           http://euler.bd.psu.edu/lispstat/lispstat.html 
  may be used.  

  Thanks.

********************* Cut Here for a template ****************
 <title> KDE: Lisp-Stat objects for interactive kernel estimation </title>

  <h1> Description</h1>
KDE objects are able to compute and display kernel density estimates
from a univariate data set. Using Lisp-Stat graphical interface tools,
a non-lisper user can control some estimation aspects as the bandwidth
and the kernel function, and also superimpose in the window other
graphic information, histograms, ... Some automatic bandwidth
selectors are provided, and full documentiation is available. <p>

Several extensions are on the way: regression kernel estimation,
hazard rate function kernel estimates, multivariate versions...<p>


  <h1> Project Investigators</h1>

Frederic Udina, UPF. <p>

  <h1> Contact person </h1>

Frederic Udina, Universitat Pompeu Fabra, Barcelona. <p>

  udina@upf.es <p>

********* End of Template *************
________________________________________________________________
B. Narasimhan                             naras@euler.bd.psu.edu


From luke  Wed Jul 20 06:23:27 1994
Resent-Date: Wed, 20 Jul 1994 11:23:27 -0500
Resent-Message-Id: <199407201623.AA04854@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 11:23:30 -0500
Date: Wed, 20 Jul 1994 11:23:27 -0500
From: "Luke Tierney" <luke>
Message-Id: <199407201623.AA04846@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 11:23:27 -0500
To: stat-lisp-news@umnstat
Subject: test
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>



From luke  Wed Jul 20 06:25:24 1994
Resent-Date: Wed, 20 Jul 1994 11:25:24 -0500
Resent-Message-Id: <199407201625.AA04899@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 11:25:26 -0500
Date: Wed, 20 Jul 1994 11:25:24 -0500
From: "Luke Tierney" <luke>
Message-Id: <199407201625.AA04892@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 11:25:24 -0500
To: stat-lisp-news@umnstat
Subject: a test
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>



From luke  Wed Jul 20 06:47:19 1994
Resent-Date: Wed, 20 Jul 1994 11:47:19 -0500
Resent-Message-Id: <199407201647.AA05046@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 11:47:21 -0500
Date: Wed, 20 Jul 1994 11:47:19 -0500
From: "Luke Tierney" <luke>
Message-Id: <199407201647.AA05039@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 11:47:19 -0500
To: stat-lisp-news@umnstat
Subject: a test -- please ignore
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

There may be a glitch in the handling of this mailing list. This is a test
message; I may need to send a few more to iron it out. I will try to keep
testing to a minimum -- I apologize for the inconvenience.

luke

From owner-SL-news  Wed Jul 20 10:55:59 1994
Resent-Date: Wed, 20 Jul 1994 14:55:59 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199407201856.AA05886@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 20 Jul 1994 13:56:15 -0500
Received: from TEMPER.STAT.CMU.EDU by umnstat.stat.umn.edu; Wed, 20 Jul 1994 13:56:01 -0500
Received: from localhost (luke@localhost) by temper.stat.cmu.edu (8.6.4/8.6.4) id OAA02186 for stat-lisp-news@umnstat.stat.umn.edu; Wed, 20 Jul 1994 14:55:59 -0400
Date: Wed, 20 Jul 1994 14:55:59 -0400
From: Luke Tierney <luke@stat.cmu.edu>
Message-Id: <199407201855.OAA02186@temper.stat.cmu.edu>
To: stat-lisp-news@umnstat
Subject: another test -- please ignore
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Luke Tierney <luke@stat.cmu.edu>

a second test

From bjm  Fri Aug  5 08:16:20 1994
Resent-Date: Fri, 5 Aug 1994 14:16:20 -0600
Resent-Message-Id: <199408051916.AA27848@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 5 Aug 1994 14:16:22 -0500
Message-Id: <199408051916.AA27841@umnstat.stat.umn.edu>
Received: from [128.101.51.34] (kinetics-34.stat.umn.edu) by umnstat.stat.umn.edu; Fri, 5 Aug 1994 14:16:18 -0500
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Fri, 5 Aug 1994 14:16:20 -0600
To: lisp-stat-news@umnstat
From: bjm@umnstat (Bret J. Musser)
Subject: Neural networks in Xlisp?
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: bjm@umnstat (Bret J. Musser)


Has anyone implemented any sort of  neural network in Xlisp? Jeff Weiner
(JeffWeiner@aol.edu) is going to be developing and implementing a neural
net in Xlisp and would like to speak with those who have already worked on
this in Xlispstat.

Many thanks,

Bret Musser
bjm@stat.umn.edu
(reply to JeffWeiner@aol.com)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Bret J. Musser ~~~ School of Statistics, University of Minnesota
 bjm@stat.umn.edu +++ PGP key available === http://stat.umn.edu/~bjm
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



From owner-SL-news  Sun Aug  7 12:13:22 1994
Resent-Date: Sun, 07 Aug 94 16:13:22 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199408072013.AA10063@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sun, 7 Aug 1994 15:13:29 -0500
Received: from stat.fsu.edu by umnstat.stat.umn.edu; Sun, 7 Aug 1994 15:13:25 -0500
Received: from rahu.stat.fsu.edu by stat.fsu.edu (4.1/25-eef)
	id AA05797; Sun, 7 Aug 94 16:13:19 EDT
Message-Id: <9408072013.AA05797@stat.fsu.edu>
To: stat-lisp-news@umnstat
Subject: New software.
Date: Sun, 07 Aug 94 16:13:22 -0400
From: naras@stat.fsu.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: naras@stat.fsu.edu

Hani Doss and I have submitted some software to Statlib for
performing Bayesian Sensitivity Analysis. Until it arrives
there, you can get the technical report and software by
anonymous ftp at stat.fsu.edu in the directory pub/bpois.
The shar file contains the technical report also.

Mosaic users can get it from 
   http://euler.bd.psu.edu/lispstat/bpois.html
A snapshot of some of the capabilities is provided in this
hypertext document.


________________________________________________________________
B. Narasimhan                             naras@euler.bd.psu.edu

From owner-SL-news  Mon Aug  8 13:06:30 1994
Resent-Date: Mon, 8 Aug 94 20:03:40 METDST
Resent-From: owner-SL-news
Resent-Message-Id: <199408081806.AA14521@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 8 Aug 1994 13:06:30 -0500
Message-Id: <199408081805.AA14513@umnstat.stat.umn.edu>
Received: from halley.upf.es by umnstat.stat.umn.edu; Mon, 8 Aug 1994 13:05:36 -0500
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA10633; Mon, 8 Aug 94 20:10:04 +0200
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA02055; Mon, 8 Aug 94 20:03:40 +0200
From: Frederic Udina <udina@upf.es>
Subject: please ignore, this is a test
To: stat-lisp-news@umnstat (lisp stat list)
Date: Mon, 8 Aug 94 20:03:40 METDST
Mailer: Elm [revision: 70.85]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>


sorry, I'm trying to send a mail to lisp-stat people. 
Does this one reach all the people?


--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 484 97 56
       Balmes 132                   |            fax: 34 - 3 - 484 97 46
       08008 Barcelona              |         e-mail: udina@upf.es      
       SPAIN                        |      appleLink: spa0172           
___________________________________/_\_________________________________

From owner-SL-news  Mon Aug  8 11:58:08 1994
Resent-Date: Mon, 8 Aug 1994 18:58:08 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199408090158.AA16684@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 8 Aug 1994 20:58:16 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Mon, 8 Aug 1994 20:58:12 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA03670; Mon, 8 Aug 94 18:58:10 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA14677; Mon, 8 Aug 94 18:58:08 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9408090158.AA14677@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat (Xlisp List)
Date: Mon, 8 Aug 1994 18:58:08 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 5344      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Q: Name a statistical package which is
      -- extensible
      -- open
      -- fast
      -- garbage-collecting
      -- equipped with a byte-code compiler
      -- interactive
      -- graphical
      -- dynamic
      -- using the native window system on Mac, MSW, X11 
      -- portable
      -- object-oriented
      -- equipped with an elegant extension language
      -- free
*******************************************************************
Xlisp-Stat code on ftp.stat.ucla.edu in ~/pub/lisp/xlisp/xlisp-stat

We try to keep a collection of everything connected with Xlisp-Stat
in these directories. There is always a version of the source code,
there are some binaries for selected systems. As the path to the
directory shows, there are other lisp systems besides xlisp,
and other xlisp extensions besides xlisp-stat.

The most interesting sub-directories are contrib and homegrown.
In homegrown we have Xlisp-Stat code written at UCLA. This includes 

- the SIR package by Ker-Chau Li and his students, 
  for Slicing Inverse Regression.
- the Terrace package by James Hilden-Minton for Hierarchical Linear
  Modelling with diagnostics.
- the Gifi-gardens package by James Hilden-Minton for MVA with
  optimal scaling.
- many utilities by Jan de Leeuw for monotone regression, b-splines,
  the basic APL array operators, multidimensional scaling, nonlinear
  MVA, FORTRAN-type formatted input, log-linear modeling.cd
- stem-and-leaf-plots by (our) David Betz.
- bootstrap/jackknife algorithms by Jan de Leeuw. This includes
  bootstrap-t, percentile, abc, bca confidence intervals, bootstrap
  and jackknife standard error, bootstrap and jackknife bias estimation,
  bootstrap prediction error estimation. The bootstrap algorithms
  for regression are written as methods for regression-model-proto.
  There is also a graphical bootstrap demo. And there is code
  for permutation and bootstrap hypothesis testing. There are also
  versions of Randy Sitter's algorithms for bootstrapping in
  survey situations with clustered and stratified random samples
  (without replacement).
- Didactic Modules by Jan de Leeuw. Moving the regression line,
  moving points in regression scatterplots, the central limit theorem.
- UCLAData. Evolving package for Introductory Data Analysis teaching
  by Jan de Leeuw.
- Help. Evolving graphical help system for Xlisp programmers and Users
  by Jan de Leeuw and Jason Bond.

* Note **************************************************************
I write my Xlisp-Stat code in planes, on airports, and in hotel rooms.
If you want more useful utilities, you'll have to invite me over (or, 
if you prefer that, send me somewhere else).
*********************************************************************

In contrib we have xlisp-stat code written by other. This includes 
everything on statlib, and then some. We mention

- axis: Introductory statistics package by Robert Stine (Wharton).
- bpois: Baysian Poisson Regression using the Gibbs Sampler by
  Hani Doss (OSU) and B. Narasimhan (PSU).
- cw: Dynamic Graphics for Regression, by Dennis Cook and Sande
  Weisberg (U Minn). Called dyndiag on statlib.
- eltoy: Introductory Statistics and Bayesian Elicitation, by
  Russel Almond (U Wash).
- expsurv: Exploratory Survival Analysis by K. Neely Atkinson
  (U Texas).
- hasse: F tests and ANOVA tables for factorial designs by
  Philip Iversen (Iowa State).
- jflisp: Three packages for Model Selection in Regression Analysis
  by Julian Faraway (Univ. Michigan).
- naras: Code contributed by B. Narasimhan (see also Bpois). This
  includes utilitity code for sliders and boxplots, as well as
  packages to demonstrate Markov chains, and to fit kernel density
  estimates. There is also a package for programmers who want to
  dynamically link arbitrary C functions at runtime.
- plottools: Don't know who wrote it. It provides nice graphical
  windows to selects symbols and colors.
- puranen: Some demos by Juha Puranen (Univ Helsinki). Demoes
  Box-Cox and some of the common densities.
- simulation. General purpose simulation tool by Robert Stine (Wharton).
- students: Projects by students in Nancy Reid's course at the
  U Toronto. Code for repeated measures with missing data, teaching
  demos, correspondence analysis, Weibull MLE, the general linear
  hypothesis.
- surv: Code for survival analysis by E. Neely Atkinson and Meg Gelder.
- times: Digital filtering code by Bill Hatch (Coleman Research Corp).
- udina: gnuplot interface to produce beautiful plots from Xlisp-Stat
  by Jan de Leeuw and Frederic Udina. kde kernel density estimation
  system by Frederic Udina.
- xlisp-to-s: Interface from Xlisp-Stat to something called S or S-plus
  or something. By Steve McKinney (U Wash)
- young. Vista: Visual Statistics System by Forrest Young (UNC).

Some of these packages are just snippets, some are major research
efforts. Some have been abandoned in mid-stream, others are still
being developed. I know of quite a few projects that are going on
that we can hopefully add in the near future. By the way, ftp.stat.ucla.edu
is no competitor of statlib, it is simply more specialized and
it can thus be more complete in the areas in which it specializes.

If you have code to contribute, no matter how incomplete, imperfect,
tentative, send it to deleeuw@stat.ucla.edu.


--- Jan





From owner-SL-news  Wed Aug 10 07:11:38 1994
Resent-Date: Wed, 10 Aug 94 11:11:38 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199408101531.AA24935@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Aug 1994 10:31:45 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Wed, 10 Aug 1994 10:31:20 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA28583; Wed, 10 Aug 94 11:34:50 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA20821; Wed, 10 Aug 94 11:11:43 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA10950; Wed, 10 Aug 94 11:11:38 EDT
Date: Wed, 10 Aug 94 11:11:38 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9408101511.AA10950@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: EXCEL-to-XLISP-STAT
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I am writing small applications on a Macintosh where the primary
user interface is Microsoft Excel.  I would like to be able to write
an Excel macro that would go outside of Excel to XLisp-Stat, do some
model fitting, and return parameter estimates to cells withing Excel.
Does anyone have any idea how to do this?  Reading the Excel manual it
appears that it might be possible if working on PC's but I think that
with Mac's there might be a real problem.  

Any ideas at all would be greatly appreciated!!


From owner-SL-news  Wed Aug 10 16:19:52 1994
Resent-Date: Wed, 10 Aug 1994 20:19:52 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199408110019.AA27919@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Aug 1994 19:19:12 -0500
Received: from crew.umich.edu (geneva.crew.umich.edu) by umnstat.stat.umn.edu; Wed, 10 Aug 1994 19:19:08 -0500
Received: from localhost by crew.umich.edu (8.6.4/2.2)
	id UAA03618; Wed, 10 Aug 1994 20:19:53 -0400
Date: Wed, 10 Aug 1994 20:19:52 -0400 (EDT)
From: Michael Cohen <mdc@crew.umich.edu>
Subject: request for Sun Makefile help
To: stat-lisp-news@umnstat
Cc: Scott Yelich <scott@santafe.edu>
Message-Id: <Pine.3.89.9408102054.A3581-0100000@geneva.crew.umich.edu>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Michael Cohen <mdc@crew.umich.edu>

We are trying to install 2.1R2 for X11 under Sun OS version 4.1.3.  We're  
having a number of problems doing the make with the file provided in the
 2.1R2.tar.Z  . 

Has anyone out there conquered these problems?  Could you mail me, or 
make available to ftp, a Makefile that does the job? (Or quickly describe
what fix you worked out?) 

Remember that this is a boring problem. So don't copy umnstat  when/if 
you respond...

	--michael cohen
          mdc@umich.edu
	  u. of michigan


From root@celeste.ucsf.EDU  Wed Aug 10 16:19:52 1994
Received: from celeste.ucsf.EDU by umnstat.stat.umn.edu; Mon, 15 Aug 1994 11:32:14 -0500
Received: from localhost by celeste.ucsf.EDU (8.6.4/GSC4.24)
	id JAA21924; Mon, 15 Aug 1994 09:31:56 -0700
Resent-To: bic@cgl.ucsf.edu
Resent-Comment: lost mail for bic found on celeste
Received: from mail.unet.umn.edu by celeste.ucsf.EDU (8.6.4/GSC4.24)
	id SAA13053; Wed, 10 Aug 1994 18:09:53 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA10480; Wed, 10 Aug 1994 20:07:11 -0500
Resent-Date: Wed, 10 Aug 1994 20:19:52 -0400 (EDT)
Resent-Message-Id: <199408110019.AA27919@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Aug 1994 19:19:12 -0500
Received: from crew.umich.edu (geneva.crew.umich.edu) by umnstat.stat.umn.edu; Wed, 10 Aug 1994 19:19:08 -0500
Received: from localhost by crew.umich.edu (8.6.4/2.2)
	id UAA03618; Wed, 10 Aug 1994 20:19:53 -0400
Date: Wed, 10 Aug 1994 20:19:52 -0400 (EDT)
From: Michael Cohen <mdc@crew.umich.edu>
Subject: request for Sun Makefile help
To: stat-lisp-news@umnstat
Cc: Scott Yelich <scott@santafe.edu>
Message-Id: <Pine.3.89.9408102054.A3581-0100000@geneva.crew.umich.edu>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Michael Cohen <mdc@crew.umich.edu>

We are trying to install 2.1R2 for X11 under Sun OS version 4.1.3.  We're  
having a number of problems doing the make with the file provided in the
 2.1R2.tar.Z  . 

Has anyone out there conquered these problems?  Could you mail me, or 
make available to ftp, a Makefile that does the job? (Or quickly describe
what fix you worked out?) 

Remember that this is a boring problem. So don't copy umnstat  when/if 
you respond...

	--michael cohen
          mdc@umich.edu
	  u. of michigan

From root@celeste.ucsf.EDU  Wed Aug 10 07:11:38 1994
Received: from celeste.ucsf.EDU by umnstat.stat.umn.edu; Mon, 15 Aug 1994 11:32:04 -0500
Received: from localhost by celeste.ucsf.EDU (8.6.4/GSC4.24)
	id JAA21909; Mon, 15 Aug 1994 09:31:49 -0700
Resent-To: bic@cgl.ucsf.edu
Resent-Comment: lost mail for bic found on celeste
Received: from mail.unet.umn.edu by celeste.ucsf.EDU (8.6.4/GSC4.24)
	id JAA09834; Wed, 10 Aug 1994 09:43:18 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA01438; Wed, 10 Aug 1994 11:38:49 -0500
Resent-Date: Wed, 10 Aug 94 11:11:38 EDT
Resent-Message-Id: <199408101531.AA24935@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 10 Aug 1994 10:31:45 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Wed, 10 Aug 1994 10:31:20 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA28583; Wed, 10 Aug 94 11:34:50 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA20821; Wed, 10 Aug 94 11:11:43 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA10950; Wed, 10 Aug 94 11:11:38 EDT
Date: Wed, 10 Aug 94 11:11:38 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9408101511.AA10950@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: EXCEL-to-XLISP-STAT
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I am writing small applications on a Macintosh where the primary
user interface is Microsoft Excel.  I would like to be able to write
an Excel macro that would go outside of Excel to XLisp-Stat, do some
model fitting, and return parameter estimates to cells withing Excel.
Does anyone have any idea how to do this?  Reading the Excel manual it
appears that it might be possible if working on PC's but I think that
with Mac's there might be a real problem.  

Any ideas at all would be greatly appreciated!!

From owner-SL-news  Tue Aug 16 18:17:34 1994
Resent-Date: Tue, 16 Aug 1994 23:17:34 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199408170318.AA25260@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 16 Aug 1994 22:18:43 -0500
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu; Tue, 16 Aug 1994 22:18:39 -0500
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id XAA05181; Tue, 16 Aug 1994 23:18:36 -0400
Message-Id: <199408170318.XAA05181@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Tue, 16 Aug 1994 23:17:34 -0500
To: stat-lisp-news@umnstat
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: ViSta, a Visual Statistics System
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

ViSta, a Lisp-Stat based Visual Statistics System, is available from Jan de
Leeuw's ftp.stat.ucla.edu statistics software server, in
pub/lisp/xlisp/xlisp-stat/contrib/young

ViSta is an open and extensible system for research and development in
visual and computational statistics; for teaching computational statistics
to graduate students; and (eventually) for teaching introductory statistics
to undergraduate students.

ViSta features state-of-the art statistical visualization techniques for
visually guiding students and other novice data analysts; for visualizing
the overall structure of the data analysis session; for visualizing the
results of analyses; and for visually exploring the effects of
re-estimating model parameters. 

ViSta is designed for an audience of users having a very wide range of data
analysis sophistication, ranging from novice to expert. ViSta provides
seamlessly integrated data analysis environments specifically tailored to
the user's level of expertise. Guidance is available for students and
novices, and tools are available for teachers and other experts to create
guidance for these novices. A structured graphical user interface is
available for competent users, and a command line interface is available
for sophisticated users. The complete Lisp-Stat (Tierney, 1990) programming
environment is available to researchers and graduate students who wish to
extend ViSta's capabilities.

=============================================================================
COMPATIBILITY
=============================================================================

ViSta runs on:
* IBM compatibles with Microsoft Windows
* APPLE Macintosh microcomputers
* UNIX workstations under X-Windows
ViSta works with XLisp-Stat 2.1 r3.37 or earlier, under either XLISP or
XLISP-PLUS.

=============================================================================
FEATURES
=============================================================================

* ViSta features:
* A structured visual interface
* A visual guidance system for naive users
* Command line and script access to the underlying Lisp-Stat/ViSta language
* Spreadplots for high-dimensional data and model visualization
* Graphical tools for re-estimating model parameters

=============================================================================
DATA ANALYSIS CAPABILITIES
=============================================================================

ViSta's data analysis capabilities include:
* EXPLORATORY Graphics including 
        Histograms, Boxplots, Diamond Plots, Dotplots,
        Scatterplots, Biplots, Spinplots, Scatterplot Matrices.
* DESCRIPTIVE Statistics including 
        Means, Standard Deviations, Variances, Ranges, 
        Quartiles, Medians, Correlations, Covariances, Distances
* ANOVA - Univariate Analysis of Variance.
        Orthogonal one- or multi-way data. Model may or may not include 
        two-way (but not higher-way) interactions.  The model 
        visualization is a spreadplot comprised of a boxplot, 
        diamond plot,   quantile plot, quantile-quantile plot and effects plot.
* REGRESSION - Simple and Multiple Regression Analysis. 
        The model visualization is a spreadplot comprised of a biplot,
        spinplot, histogram and scatterplot-matrix.
* PRINCIPAL COMPONENTS - Analyzes Correlations or Covariances.
        The model visualization is a spreadplot comprised of a biplot,
        spin-plot, scree-plot and scatterplot-matrix.
* MULTIDIMENSIONAL SCALING - 
        Analyzes one or more symmetric or asymmetric matrices. 
        The model visualization is a spreadplot comprised of a 
        scatterplot, spin-plot, scree-plot and scatterplot-matrix.  
        The spreadplot supports graphical re-estimation of 
        model parameters.
* CORRESPONDENCE ANALYSIS of two-way contingency tables.
        The model visualization is a spreadplot comprised of a biplot,
        spinplot, residuals plot and scree-plot.  The spreadplot supports 
        graphical re-estimation of model parameters.

=============================================================================
DOCUMENTATION
=============================================================================

"ViSta, The Visual Statistics System", is available from the server
mentioned above. A nicely bound and printed version is also available for
$5.00 from the address below. 

=============================================================================
COPYING VISTA
=============================================================================

Permission to use and copy ViSta for any purpose other than modifying,
distributing, or selling the software or its documentation is granted
without fee. 



=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From owner-SL-news  Tue Aug 16 14:51:02 1994
Resent-Date: Tue, 16 Aug 1994 21:51:02 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199408170451.AA25577@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 16 Aug 1994 23:51:11 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Tue, 16 Aug 1994 23:51:08 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA01535; Tue, 16 Aug 94 21:51:04 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA13686; Tue, 16 Aug 94 21:51:02 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9408170451.AA13686@galton.math.ucla.edu>
Subject: code on ftp.stat.ucla.edu
To: stat-lisp-news@umnstat (Xlisp List)
Date: Tue, 16 Aug 1994 21:51:02 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2250      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Only a short trip to ASA, so not much more new code on ftp.stat.ucla.edu
in ~/pub/lisp/xlisp/xlisp-stat/homegrown

subdirectory niceties has compile-menu.lsp, which adds a compile item
to the file menu (under the load item).

subdirectory tables has a new loglin.lsp, which now has code to fit
hierarchical log-linear models by IPF (similar to the Haberman
routine is ApStat), and a routine to fit models with all kth-order
interactions zero, with k=1,2,...

subdirectory smoothers contains smoothers.lsp. This will have
(eventually) the code from Haerdle's book (Smoothing with S),
plus the Friedman supersmoother used in GAM, ACE, MDRACE. For
the time being it only has the histogram and frequency polygon
from Chapter 1 of Haerdle. Warping is on its way.

I have also created the subdirectory coco in ~/pub/lisp/xlisp/xlisp-stat/
contrib. Coco is a very impressive package to fit and explore
graphical loglinear models, written mostly in C, but with 
interfaces in Xlisp-Stat and S-plus. The Xlisp-Stat interface
is much nicer, of course. There are Unix, DOS, and Mac version,
with Unix richer than DOS richer than Mac featurewise.

There is a group of us working on a book, tentatively called
"Statistical Computation with Xlisp-Stat", which will present
a number of large Xlisp-Stat based projects, in particular ones
in which Xlisp-Stat interface really shines. We have approached
a number of people, but if you think you have a project to 
contribute, we would like to hear about it. Corresponding code
will be on this server, of course.

We feel it is also VERY necessary that something similar to Phil
Spector's book is written about Xlisp-Stat. Suggestions are welcome.

There are some projects under way to provide interactive help
for programmers, using Tim Mikkelsen's 2.0 reference manual. 
Of course 2.0 has far fewer functions than 2.1x, and by now
I would guess that only half of the Xlisp functionality is
documented in Luke's book. And the reference manual does not
have any of the Xlisp-Stat add-ons, of course.

-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Wed Aug 17 06:03:42 1994
Resent-Date: Wed, 17 Aug 1994 11:03:42 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199408171504.AA27416@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 17 Aug 1994 10:04:53 -0500
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu; Wed, 17 Aug 1994 10:04:48 -0500
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id LAA06468; Wed, 17 Aug 1994 11:04:46 -0400
Message-Id: <199408171504.LAA06468@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Wed, 17 Aug 1994 11:03:42 -0500
To: stat-lisp-news@umnstat
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: ViSta on ftp.stat.ucla.edu
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

I have just gotten back from vacation and have just now discovered that not
all of the material that is part of ViSta was loaded onto Jan de Leeuw's
server at ucla.  All of the lisp code is there, but none of the
subdirectories that contain help, guidance, test data and examples were
loaded onto his machine.

If you have downloaded the material it will run, but there will be no data
to test it out, and no help or guidance...

I am getting the situation straighted out and will announce when the
problems are fixed.


=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From owner-SL-news  Thu Aug 18 08:35:23 1994
Resent-Date: Thu, 18 Aug 1994 14:35:23 -0600
Resent-From: owner-SL-news
Resent-Message-Id: <199408182035.AA03648@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 18 Aug 1994 15:35:30 -0500
Received: from NMSU.Edu (dns1.NMSU.Edu) by umnstat.stat.umn.edu; Thu, 18 Aug 1994 15:35:26 -0500
Received: from dante by NMSU.Edu (8.6.8.1/NMSU-1.18)
	id OAA13866; Thu, 18 Aug 1994 14:35:23 -0600
Date: Thu, 18 Aug 1994 14:35:23 -0600
Message-Id: <199408182035.OAA13866@NMSU.Edu>
Received: from [128.123.31.142] by dante (4.1/NMSU)
	id AA25132; Thu, 18 Aug 94 14:35:22 MDT
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: stat-lisp-news@umnstat
From: ddaniel@dante.nmsu.edu (David L. Daniel)
Subject: help
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: ddaniel@dante.nmsu.edu (David L. Daniel)




-David Daniel
Dept. of Experimental Statistics
New Mexico State University
ddaniel@dante.nmsu.edu
#####################################################
This random sign-off was generated by a statistician.
#####################################################



From uluru@gibbs.oit.unc.edu  Mon Aug 22 05:44:28 1994
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu; Mon, 22 Aug 1994 09:45:51 -0500
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id KAA25395; Mon, 22 Aug 1994 10:45:48 -0400
Message-Id: <199408221445.KAA25395@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Mon, 22 Aug 1994 10:44:28 -0500
To: SL-news-list@umnstat
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: ViSta, the Visual Statistics System

The complete code for ViSta, including test data, examples, help and
guidance, has now been properly loaded onto Jan de Leeuw's statistics
software server.  

The server is ftp.stat.ucla.edu
The software is in directory pub/lisp/xlisp/xlisp-stat/contrib/young 

If you obtained the software since the previous announcement (made August
16th) you obtained an incomplete version that did not have data, examples,
help and guidance.  In addition, the software would only work under XLisp
and not under the newer XLispPlus. The version now on the server is
complete and works under XLispPlus as well as under XLisp.  I apologize for
the inconvience.

The original announcement of the release of ViSta into the public domain is
repeated below.

=============================================================================
OVERVIEW OF VISTA, THE VISUAL STATISTICS SYSTEM
=============================================================================

ViSta is an open and extensible system for research and development in
visual and computational statistics; for teaching computational statistics
to graduate students; and (eventually) for teaching introductory statistics
to undergraduate students.

ViSta features state-of-the art statistical visualization techniques for
visually guiding students and other novice data analysts; for visualizing
the overall structure of the data analysis session; for visualizing the
results of analyses; and for visually exploring the effects of
re-estimating model parameters. 

ViSta is designed for an audience of users having a very wide range of data
analysis sophistication, ranging from novice to expert. ViSta provides
seamlessly integrated data analysis environments specifically tailored to
the user's level of expertise. Guidance is available for students and
novices, and tools are available for teachers and other experts to create
guidance for these novices. A structured graphical user interface is
available for competent users, and a command line interface is available
for sophisticated users. The complete Lisp-Stat (Tierney, 1990) programming
environment is available to researchers and graduate students who wish to
extend ViSta's capabilities.

=============================================================================
COMPATIBILITY
=============================================================================

ViSta runs on:
* IBM compatibles with Microsoft Windows
* APPLE Macintosh microcomputers
* UNIX workstations under X-Windows
ViSta works with XLisp-Stat 2.1 r3.37 or earlier, under either XLISP or
XLISP-PLUS.

=============================================================================
FEATURES
=============================================================================

* ViSta features:
* A structured visual interface
* A visual guidance system for naive users
* Command line and script access to the underlying Lisp-Stat/ViSta language
* Spreadplots for high-dimensional data and model visualization
* Graphical tools for re-estimating model parameters

=============================================================================
DATA ANALYSIS CAPABILITIES
=============================================================================

ViSta's data analysis capabilities include:
* EXPLORATORY Graphics including 
        Histograms, Boxplots, Diamond Plots, Dotplots,
        Scatterplots, Biplots, Spinplots, Scatterplot Matrices.
* DESCRIPTIVE Statistics including 
        Means, Standard Deviations, Variances, Ranges, 
        Quartiles, Medians, Correlations, Covariances, Distances
* ANOVA - Univariate Analysis of Variance.
        Orthogonal one- or multi-way data. Model may or may not include 
        two-way (but not higher-way) interactions.  The model 
        visualization is a spreadplot comprised of a boxplot, 
        diamond plot,   quantile plot, quantile-quantile plot and effects plot.
* REGRESSION - Simple and Multiple Regression Analysis. 
        The model visualization is a spreadplot comprised of a biplot,
        spinplot, histogram and scatterplot-matrix.
* PRINCIPAL COMPONENTS - Analyzes Correlations or Covariances.
        The model visualization is a spreadplot comprised of a biplot,
        spin-plot, scree-plot and scatterplot-matrix.
* MULTIDIMENSIONAL SCALING - 
        Analyzes one or more symmetric or asymmetric matrices. 
        The model visualization is a spreadplot comprised of a 
        scatterplot, spin-plot, scree-plot and scatterplot-matrix.  
        The spreadplot supports graphical re-estimation of 
        model parameters.
* CORRESPONDENCE ANALYSIS of two-way contingency tables.
        The model visualization is a spreadplot comprised of a biplot,
        spinplot, residuals plot and scree-plot.  The spreadplot supports 
        graphical re-estimation of model parameters.

==============================================================================
CURRENT STATE OF DEVELOPMENT
==============================================================================

ViSta is not a complete statistical system.  Rather, it is an open-ended
statistical system which is still being developed, and which can be
extended by experienced LispStat programmers.  Most of the features which
are included in the distribution are complete.  Unfinished features
include:

1: The Delete Data, Delete Model, Interprete Model, and DataSheet 
   menu items are not yet implemented.
2: Not all transformations are implemented.
3: Only those analysis methods described above are implemented.
4: The ANOVA visualization is not yet completely implemented 
   (all plots are displayed, but they do not all interact).
5: ANOVA create data and save data menu items and the  
   interaction dialog are not yet implemented.
6: Guidance and Help are imcomplete.

=============================================================================
DOCUMENTATION
=============================================================================

The following two monographs describe how to use ViSta: 

"ViSta, The Visual Statistics System", is available from the server
mentioned above. A nicely bound and printed version is also available for
$5.00 from the address below. 

"ViSta Corresp", a description of the Correspondence Analysis procedure in
ViSta, is available for $5.00 from the address below.

In addition, the following papers are relevent and are available for $5.00
from the address below.

Young, F.W., et al. "Visual Statistical Analysis - Papers presented at the
Special Contributed Session on Visual Statistical Analyais at Interface
'94. Psychometric Research Memorandum 94-2, July, 1994.

Young, F.W. & Lubinsky, D.J. "Guided Data Analysis: On the Representation,
Use and Creation of Visual Statistical Strategies". Psychometric Research
Report 94-1, May, 1994.

=============================================================================
COPYING VISTA
=============================================================================

Permission to use and copy ViSta for any purpose other than modifying,
distributing, or selling the software or its documentation is granted
without fee.



=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From owner-SL-news  Wed Aug 24 00:24:09 1994
Resent-Date: Tue, 23 Aug 1994 21:24:09 +0300
Resent-From: owner-SL-news
Resent-Message-Id: <199408231822.AA06268@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 23 Aug 1994 13:22:13 -0500
Received: from sunset.ma.huji.ac.il by umnstat.stat.umn.edu; Tue, 23 Aug 1994 13:22:02 -0500
Received: by sunset.ma.huji.ac.il id AA19832
  (5.65c/HUJI 4.152 for stat-lisp-news@umnstat.stat.umn.edu); Tue, 23 Aug 1994 21:24:09 +0300
Date: Tue, 23 Aug 1994 21:24:09 +0300
From: "Harvey J. Stein" <hjstein@math.huji.ac.il>
Message-Id: <199408231824.AA19832@sunset.ma.huji.ac.il>
To: stat-lisp-news@umnstat
Subject: Trouble running ViSta.
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Harvey J. Stein" <hjstein@math.huji.ac.il>


I tried to run ViSta, but I ran into afew problems.  The one I'm
finding insurmountable is that I'm getting the error:

   error: allocation failed

when the statement:

       (setf *vista* (vista-system))

from ViSta.lsp is executed.

This function (vista-system) only instantiates a
vista-system-object-proto. 

I'm stuck at this point.  This is on a 486 based Unix workstation (a
486 running Linux) with version 2.1 release 2 of xlispstat.  Any ideas
on how to proceed?  I tried fiddling around with expand function call
in the init file supplied with ViSta (tried (expand 50), (expand 200)
& commenting out the expand call), but each gave the same results.

So, any ideas?  What exactly does this error message mean?  Am I out
of space, or is there some kind of bug?

Thanks,


Harvey J. Stein
Berger Financial Research
hjstein@math.huji.ac.il

From owner-SL-news  Tue Aug 30 12:48:14 1994
Resent-Date: Tue, 30 Aug 94 16:48:14 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199408302052.AA11443@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 30 Aug 1994 15:52:48 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Tue, 30 Aug 1994 15:52:19 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA12769; Tue, 30 Aug 94 16:51:56 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA24814; Tue, 30 Aug 94 16:48:16 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA15826; Tue, 30 Aug 94 16:48:14 EDT
Date: Tue, 30 Aug 94 16:48:14 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9408302048.AA15826@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: Noncentral dist. functions
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I am interested if anyone has any XLS code for noncental t, 
chi^2, or F distributions.

Specifically what I need is

1) extensions of the current distribution functions so that
a non-centrality parameter can be included.

2) a function that returns the non-centrality parameter, given
the other relevent info.

Thanks in advance for any help!

Jeffrey D. Morris, Ph.D.
Eastman Kodak Co.
Research Labs
Rochester, NY 14650-2205
morris@kodak.com


From owner-SL-news  Wed Aug 31 04:18:41 1994
Resent-Date: Wed, 31 Aug 94 09:18:41 CDT
Resent-From: owner-SL-news
Resent-Message-Id: <199408311424.AA14810@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 31 Aug 1994 09:24:10 -0500
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Wed, 31 Aug 1994 09:21:22 -0500
Received: from stat.uiowa.edu by ns-mx.uiowa.edu (8.6.8.2/19940322)
	  on Wed, 31 Aug 1994 09:20:04 -0500 id JAA15801 with SMTP 
Received: from nuthatch.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA14738; Wed, 31 Aug 94 09:18:41 CDT
Date: Wed, 31 Aug 94 09:18:41 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9408311418.AA14738@ stat.uiowa.edu>
To: stat-lisp-news@umnstat
Subject: Re: Noncentral dist. functions
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: rlenth@stat.uiowa.edu (Russ Lenth)

> I am interested if anyone has any XLS code for noncental t, 
> chi^2, or F distributions.
> 
> Specifically what I need is
> 
> 1) extensions of the current distribution functions so that
> a non-centrality parameter can be included.
> 
> 2) a function that returns the non-centrality parameter, given
> the other relevent info.
> 
> Thanks in advance for any help!
> 
> Jeffrey D. Morris, Ph.D.
> Eastman Kodak Co.
> Research Labs
> Rochester, NY 14650-2205
> morris@kodak.com


Well, two out of three ain't too bad.  You will find appended
some lisp implementations of my Applied Statistics algorithms
for the noncentral t and the noncentral beta; the noncentral F
is a special case of the latter.  Following that is a root-finding
program I wrote that seems to work reasonably well.  It can be
used to solve for the noncentrality parameter.

Cheers,

------------------------------------------------    --------------,
Russ Lenth                 rlenth@stat.uiowa.edu    \              )
Department of Statistics                             |   I O W A   \_ 
  and Actuarial Science    Tel: (319)335-0814        \               \
The University of Iowa     FAX: (319)335-3017         \          *  _/
Iowa City, IA 52242  USA   CW:  *= * ====== *=*        | Iowa City /
------------------------------------------------        ----------v

        "Everything happens for a reason,
         but that doesn't mean that there's a point."
                                        --- Sue Grafton
					    C is for Corpse


;;; ===============================================================================
;;; lisp code for noncentral-t distribution
;;; by Russ Lenth, December, 1991
;;; based on Applied Statistics Alg AS 243

;;; Warning: non-vectorized version -  
;;; will accept lists for df and delta but will produce misleading results!
(defun *nct*cdf* (tval df delta)
  (if (< tval 0)  (- 1 (nct-cdf (- tval) df (- delta)))
      (let* ((x (/ (* tval tval) (+ df (* tval tval))))
             (d2 (* .5 delta delta))
             (b (* .5 df))
             (rxb (^ (- 1 x) b))
             (lbeta (+ (* .5 (log pi)) (- (log-gamma b) (log-gamma (+ .5 b))))))
        (do* ((a  .5  (+ a 1))
              (xodd  (beta-cdf x a b)  (- xodd godd))
              (xeven  (- 1 rxb)  (- xeven geven))
              (godd  (* 2 rxb (exp (- (* a (log x)) lbeta)))
                     (* godd x (/ (- (+ a b) 1) a)))
              (geven (* b x rxb)
                     (* geven x (/ (- (+ a b) .5) (+ a .5))))
              (pj  (* .5 (exp (- d2)))  (/ (* d2 pj) j))
              (qj  (* pj delta (sqrt (/ 2 pi)))  (/ (* d2 qj) (+ j .5)))
              (sumpj  (- .5 pj)  (- sumpj pj))
              (j  1  (+ j 1))
              (cdf  (+ (* pj xodd) (* qj xeven))
                    (+ cdf (* pj xodd) (* qj xeven)))
              (errbd  1 (* 2 sumpj (- xodd godd))))
             ((< errbd 1.0e-8) (+ cdf (normal-cdf (- delta))))))))

;;; Here is the properly vectorized function
(defun nct-cdf (tval df delta)
"Args: (tval df delta)
Cdf of the noncentral t(df;delta) distribution at tval.  Vectorized."
  (map-elements #'*nct*cdf* tval df delta))
  

;;; Warning: t-power is vectorized for delta, df, and alpha, but NOT for tail
(defun t-power (delta df &key (alpha .05) (tail 0))
"Args: (delta df &key (alpha .05) (tail 0))
Computes the power of a test on the t distribution at noncentrality delta.
Vectorized for all arguments, EXCEPT tail must be a scalar."
  (cond
    ((= tail 0) (+ (t-power delta df :alpha (/ alpha 2) :tail -1)
                   (t-power delta df :alpha (/ alpha 2) :tail 1)))
    ((> tail 0) (t-power (- delta) df :alpha alpha :tail -1))
    ((< tail 0) (nct-cdf (t-quant alpha df) df delta))))





;;; Noncentral beta cdf and related functions (based on APPL STAT Alg AS 226)

;;; non-vectorized version
(defun *ncbeta* (x a b lambda)
  (cond
    ((<= x 0) 0)
    ((>= x 1) 1)
    (t (do*
        ((n 0 (+ n 1))
         (c (/ lambda 2) c)
         (ix (beta-cdf x a b) (- ix gam))
         (gam (exp (+ (- (log-gamma (+ a b))
                         (log-gamma (1+ a)) (log-gamma b))
                      (* a (log x)) 
                      (* b (log (- 1 x)))))
              (/ (* x gam (+ a b n -1)) (+ a n)))
         (q (exp (- c)) (/ (* q c) n))
         (sumq (- 1 q) (- sumq q))
         (p (* q ix) (+ p (* q ix))))
        ((< (* sumq (- ix gam)) 1e-8) p)))))


;;; vectorized version
(defun ncbeta (x a b lambda)
"Noncentral beta cdf - Args: x a b lambda"
  (map-elements #'*ncbeta* x a b lambda))

;;; noncentral F distribution
(defun ncf (f df1 df2 lambda)
"Noncentral F cdf - Args: f df1 df2 lambda"
  (ncbeta (/ (* f df1) (+ (* f df1) df2)) (/ df1 2) (/ df2 2) lambda))




;;; =================================================================================
;;; Numerical inverse function
;;; Requires one starting value.  A secant method with expanding step-size factor is
;;; used to find a starting interval that encloses the solution.  Then the Illinois
;;; (modified regula falsi) algorithm is used to obtain the root.
;;; Bound(s) may be imposed using the :BOUNDS keyword argument; 
;;; a nil bound specifies that no bound is to be imposed.
;;; An :ACCURACY argument sets the accuracy for the solution
;;; A :PRINT argument, if set to t, displays the iterative steps.
;;;
;;; WARNING: This is vectorized, but beware of subtleties.  If f depends implicitly 
;;; on other parameters that could be list-valued, f(x) may return a list even when
;;; x is an atom.  In such cases, the safe thing is to use invert-param-function.

(defun invert-function (f f0 x &key (accuracy .001) (bounds (list nil nil)) (print nil))
"
   (invert-function  f                                ; function to be inverted
                     f0                               ; target value of (f x)
                     x                                ; starting value of x
                     &key (accuracy .001)             ; desired accuracy
                          (bounds (list nil nil))     ; bounds on x
                          (print nil))                ; show iterations

"
  (let ((lbound (first bounds))
        (ubound (second bounds)))
    (map-elements #'*inv*fcn* f f0 x accuracy lbound ubound print)))


;;; non-vectorized solver
(defun *inv*fcn* (f f0 x accuracy lbound ubound print)
  (flet ((fcn (x) (- (funcall f x) f0))
         (secant (x1 f1 x2 f2 factor) 
                 (- x2 (/ (* factor f2 (- x2 x1)) (- f2 f1))))
         (check-bounds (x)
                       (if lbound (setf x (max x lbound)))
                       (if ubound (setf x (min x ubound)) x))
         (check-danger (f1 f2)
                       (if (> (abs f2) (abs (* 1000 (- f1 f2))))
                           (error "invert-function: can't find enclosing interval"))))
;;; expanding secant search for enclosing interval (x1,x2)...
    (do* ((factor 0 (+ 1 factor))   ;; multiplier used in secant search
          (xnew nil (check-bounds (secant x1 f1 x2 f2 factor)))
          (x1 x x2)
          (f1 (fcn x) f2)
          (x2 (if (= x 0) (* 100 accuracy) (* .8 x))  xnew)
          (f2 (fcn x2) (fcn x2))
          (flag (check-danger f1 f2) (check-danger f1 f2)))
         ((<= (* f1 f2) 0)
;;; Illinois method for solving...
          (loop (setf xnew (secant x1 f1 x2 f2 1))
                (setf fnew (fcn xnew))
                (if (> (* fnew f2) 0)
                    (setf f1 (/ f1 2))
                    (list (setf x1 x2) (setf f1 f2)))
                (setf x2 xnew)
                (setf f2 fnew)
                (if print (format t "Illinois guess: ~g~%" xnew))
                (if (<= (abs (- x1 x2)) accuracy) (return x2))))
         (if print (format t "Secant guess: ~g~%" x2)))))



(defun invert-param-function (f f0 i parmlist 
                      &key (accuracy .001) (bounds (list nil nil)) (print nil))
"Like invert-function except solves for the i-th member of parmlist, holding
the other elements of parmlist constant.  f must take parmlist as an argument."
  (let ((xp parmlist))
    (setf (first xp) (+ (first xp) (- f0 f0)))      ;; makes xp a list if f0 is
    (setf xp (apply #'map-elements #'list xp))
    (flet ((g (f00 p00) 
              (*inv*p*fcn* f f00 i p00 
                    accuracy (first bounds) (second bounds) print)))
      (if (listp (first xp)) (map-elements #'g f0 xp)
          (g f0 parmlist)))))

(defun *inv*p*fcn* (f f0 i parmlist accuracy lbound ubound print)
  (flet ((g (x)
            (let ((p parmlist))
              (setf (select p i) x)
              (funcall f p))))
    (*inv*fcn* #'g f0 (select parmlist i) accuracy lbound ubound print)))




From owner-SL-news  Wed Aug 31 01:58:36 1994
Resent-Date: Wed, 31 Aug 1994 08:58:36 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199408311612.AA15378@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 31 Aug 1994 11:12:16 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Wed, 31 Aug 1994 11:12:12 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA03182; Wed, 31 Aug 94 08:58:37 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA10277; Wed, 31 Aug 94 08:58:36 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9408311558.AA10277@galton.math.ucla.edu>
Subject: UCLA archives
To: stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Wed, 31 Aug 1994 08:58:36 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1692      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

The UCLA Statistics server can now be accessed as

ftp.stat.ucla.edu
gopher.stat.ucla.edu
www.stat.ucla.edu

by ftp, gopher, or a web browser. As always, and as ever, this is
all under construction. Tyrone is making the UCLA Statistics
preprints readable by using ghostscript in mosaic. We put the
gopher in the www homepage, and the ftp directories in the gopher
space.

Thus: use the web if you have it (there are also URL's to the
statlib and JSE gophers), use gopher if you do not have the web,
use ftp if you have neither gopher or mosaic. Expect dramatic
changes in the www access in the next weeks.

Re: Xlisp-Stat. Happily collecting more stuff. Russ Lenth contributed
non-central chi-square, non-central beta, and a one-dim equation
solver in lisp/xlisp/xlisp-stat/contrib/noncentral. Jason Bond
has impute.lsp, which does EM imputing in a multivariate normal,
in lisp/xlisp/xlisp-stat/homegrown/impute. David Betz contributed
and algorithm for the balanced bootstrap in lisp/xlisp/xlisp-stat/homegrown/
bootstrap. James Hilden-Minton and David Afshartous update
lisp/xlisp/xlisp-stat/homegrown/terrace, which now has a hierarchical
linear modeling program, with manual and user's guide. Jason Bond
updated Jan de Leeuw's pull-line.lsp, which is the module to demo
least squqres fit, sensitivity, leverage, errors-in-variables, and
so on. See lisp/xlisp/xlisp-stat/homegrown/modules. Expect a steady
production here, and interesting interfaces with mosaic.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Wed Aug 31 06:33:31 1994
Resent-Date: Wed, 31 Aug 1994 11:33:31 -0500 (EST)
Resent-From: owner-SL-news
Resent-Message-Id: <199408311633.AA15499@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 31 Aug 1994 11:33:36 -0500
Message-Id: <199408311633.AA15492@umnstat.stat.umn.edu>
Received: from silver.ucs.indiana.edu by umnstat.stat.umn.edu; Wed, 31 Aug 1994 11:33:33 -0500
Received: by silver.ucs.indiana.edu
	(5.65c+/10jsm) id AA08011; Wed, 31 Aug 1994 11:33:31 -0500
From: lael schooler <schooler@silver.ucs.indiana.edu>
Subject: Current Documentation
To: stat-lisp-news@umnstat
Date: Wed, 31 Aug 1994 11:33:31 -0500 (EST)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 230       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: lael schooler <schooler@silver.ucs.indiana.edu>


Can anybody tell me where I can get the documentation for version
2.1 of xlispstat. I have only been able to find documentation for
version 2.0, and I have been told that the dyn-load function has
changed.

thanks,

Lael Schooler

From owner-SL-news  Wed Aug 31 14:43:31 1994
Resent-Date: Wed, 31 Aug 1994 18:43:31 -0400
Resent-From: owner-SL-news
Resent-Message-Id: <199408312249.AA17041@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 31 Aug 1994 17:49:34 -0500
Received: from euler.bd.psu.edu by umnstat.stat.umn.edu; Wed, 31 Aug 1994 17:49:26 -0500
Received: by euler.bd.psu.edu via SMTP (931110.SGI/930416.SGI.AUTO)
	for stat-lisp-news@umnstat.stat.umn.edu id AA07684; Wed, 31 Aug 94 18:43:43 -0400
Message-Id: <9408312243.AA07684@euler.bd.psu.edu>
To: stat-lisp-news@umnstat
Subject: Dynamic loading example.
Date: Wed, 31 Aug 1994 18:43:31 -0400
From: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>

Well, I promised some people an example. I was delayed, but here are
two useful routines. 

                     Contents of README
                     ------------------
Remarks:
********

This little contribution contains two Classical routines:

  1) The Zeroin univariate root finder of Forsythe, et. al. 

  2) Brent's Univariate minimum finder.

See the programs for references.

I use at least zeroin on a very frequent basis and I hope Tierney will
make it available in the new beta, since it comes xlisp-ready.

Note. I have only used this with xlispstat-3-37.

I also wanted to take this opportunity to show how to use dynamic
loading with shared libraries.  Actually, I am not saying anything
new since the documentation contained in the distribution says how
to do this.  However, sufficient mail has reached my mailbox so
as to elicit this demo.

Note that I have only tested this program on my SGI and a Sun running
4.1.x.  

First, you must find out EXACTLY the flags you used to build the
new xlispstat distribution.  The easiest way to do this is to copy the
Makefile that you used to build xlispstat to the current directory and
make the following changes to it.

Search for the variable UCFLAGS and add
-I<your-directory-for-xlispstat-source> to it.

For example, if it was

    CFLAGS = -O -Olimit 2000 -mips2

change it to something like

    CFLAGS = -I/usr/local/src/xlispstat-3-37 -O -Olimit 2000 -mips2

Yeah, you need the source for the header files.

Then search for the target all: and replace the whole entry with

all:    zeroin.o fminbr.o
        ld -o libzero.so -shared zeroin.o fminbr.o

On SunOS 4.1.1, you should drop the -shared option for ld.  Other
systems may also differ, see your local ld man page.

(Actually, when I distribute something for the new xlispstat that 
uses Dynamic loading using call-lfun, I shall use the same 
configure script that comes with the distribution and this will 
all be automatic.)

Then type make. 

Finally, to use these routines, you should be able to just say

xlispstat zerotest

and 

xlispstat mintest

The results you get should match those shown in zeroin.dat and min.dat
respectively. If not, send me mail. 

Enjoy!

*******************  End of README *******************

Shar file follows. Enjoy!

________________________________________________________________
B. Narasimhan                             naras@euler.bd.psu.edu

******************** Cut Here ********************
#!/bin/sh
# This is a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 08/31/1994 22:38 UTC by naras@euler
# Source directory /disk3/people/naras/xlisp/dyb
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   2074 -rw-r--r-- README
#   6263 -rw-r--r-- fminbr.c
#    707 -rw-r--r-- min.dat
#    694 -rw-r--r-- mintest.lsp
#   5516 -rw-r--r-- zeroin.c
#    527 -rw-r--r-- zeroin.dat
#    514 -rw-r--r-- zerotest.lsp
#
# ============= README ==============
if test -f 'README' -a X"$1" != X"-c"; then
	echo 'x - skipping README (File already exists)'
else
echo 'x - extracting README (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'README' &&
Remarks:
********
X
This little contribution contains two Classical routines:
X
X  1) The Zeroin univariate root finder of Forsythe, et. al. 
X
X  2) Brent's Univariate minimum finder.
X
See the programs for references.
X
I use at least zeroin on a very frequent basis and I hope Tierney will
make it available in the new beta, since it comes xlisp-ready.
X
Note. I have only used this with xlispstat-3-37.
X
I also wanted to take this opportunity to show how to use dynamic
loading with shared libraries.  Actually, I am not saying anything
new since the documentation contained in the distribution says how
to do this.  However, sufficient mail has reached my mailbox so
as to elicit this demo.
X
Note that I have only tested this program on my SGI and a Sun running
4.1.x.  
X
First, you must find out EXACTLY the flags you used to build the
new xlispstat distribution.  The easiest way to do this is to copy the
Makefile that you used to build xlispstat to the current directory and
make the following changes to it.
X
Search for the variable UCFLAGS and add
-I<your-directory-for-xlispstat-source> to it.
X
For example, if it was
X
X    CFLAGS = -O -Olimit 2000 -mips2
X
change it to something like
X
X    CFLAGS = -I/usr/local/src/xlispstat-3-37 -O -Olimit 2000 -mips2
X
Yeah, you need the source for the header files.
X
Then search for the target all: and replace the whole entry with
X
all:    zeroin.o fminbr.o
X        ld -o libzero.so -shared zeroin.o fminbr.o
X
On SunOS 4.1.1, you should drop the -shared option for ld.  Other
systems may also differ, see your local ld man page.
X
(Actually, when I distribute something for the new xlispstat that 
uses Dynamic loading using call-lfun, I shall use the same 
configure script that comes with the distribution and this will 
all be automatic.)
X
Then type make. 
X
Finally, to use these routines, you should be able to just say
X
xlispstat zerotest
X
and 
X
xlispstat mintest
X
The results you get should match those shown in zeroin.dat and min.dat
respectively. 
X
Enjoy!
X
B. Narasimhan                              naras@euler.bd.psu.edu
X
X
X
SHAR_EOF
chmod 0644 README ||
echo 'restore of README failed'
Wc_c="`wc -c < 'README'`"
test 2074 -eq "$Wc_c" ||
	echo 'README: original size 2074, current size' "$Wc_c"
fi
# ============= fminbr.c ==============
if test -f 'fminbr.c' -a X"$1" != X"-c"; then
	echo 'x - skipping fminbr.c (File already exists)'
else
echo 'x - extracting fminbr.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'fminbr.c' &&
/* Brent's one dimensional Minimizer...
X
X   Converted from the Netlib C version to xlisp-stat by
X
X   B. Narasimhan                       naras@euler.bd.psu.edu. */
X
X
/*
X ************************************************************************
X *	    		    C math library
X * function FMINBR - one-dimensional search for a function minimum
X *			  over the given range
X *
X * Input
X *	FLOTYPE fminbr(a,b,f,tol)
X *	FLOTYPE a; 			Minimum will be seeked for over
X *	FLOTYPE b;  			a range [a,b], a being < b.
X *	FLOTYPE (*f)(FLOTYPE x);		Name of the function whose minimum
X *					will be seeked for
X *	FLOTYPE tol;			Acceptable tolerance for the minimum
X *					location. It have to be positive
X *					(e.g. may be specified as EPSILON)
X *
X * Output
X *	Fminbr returns an estimate for the minimum location with accuracy
X *	3*SQRT_EPSILON*abs(x) + tol.
X *	The function always obtains a local minimum which coincides with
X *	the global one only if a function under investigation being
X *	unimodular.
X *	If a function being examined possesses no local minimum within
X *	the given range, Fminbr returns 'a' (if f(a) < f(b)), otherwise
X *	it returns the right range boundary value b.
X *
X * Algorithm
X *	G.Forsythe, M.Malcolm, C.Moler, Computer methods for mathematical
X *	computations. M., Mir, 1980, p.202 of the Russian edition
X *
X *	The function makes use of the "gold section" procedure combined with
X *	the parabolic interpolation.
X *	At every step program operates three abscissae - x,v, and w.
X *	x - the last and the best approximation to the minimum location,
X *	    i.e. f(x) <= f(a) or/and f(x) <= f(b)
X *	    (if the function f has a local minimum in (a,b), then the both
X *	    conditions are fulfiled after one or two steps).
X *	v,w are previous approximations to the minimum location. They may
X *	coincide with a, b, or x (although the algorithm tries to make all
X *	u, v, and w distinct). Points x, v, and w are used to construct
X *	interpolating parabola whose minimum will be treated as a new
X *	approximation to the minimum location if the former falls within
X *	[a,b] and reduces the range enveloping minimum more efficient than
X *	the gold section procedure. 
X *	When f(x) has a second derivative positive at the minimum location
X *	(not coinciding with a or b) the procedure converges superlinearly
X *	at a rate order about 1.324
X *
X ************************************************************************
X */
X
#include <xlisp.h>
#include <xlstat.h>
X
#define tol macheps()
#define SQRT_EPSILON sqrt(macheps())
X
LVAL fminbr()		/* An estimate to the min location*/
{
X  LVAL f, args;
X  FLOTYPE a, b, x,v,w;				/* Abscissae, descr. see above	*/
X  FLOTYPE fx;				/* f(x)				*/
X  FLOTYPE fv;				/* f(v)				*/
X  FLOTYPE fw;				/* f(w)				*/
X  const FLOTYPE r = (3.-sqrt(5.0))/2;	/* Gold section ratio		*/
X
X  args = xlgetarg(); 
X  if (! fixp(args) && ! floatp(args)) 
X    xlfail("bad arg type");
X  a = (floatp(args)) ? getflonum(args) : getfixnum(args); 
X
X  args = xlgetarg(); 
X  if (! fixp(args) && ! floatp(args)) 
X    xlfail("bad arg type");
X  b = (floatp(args)) ? getflonum(args) : getfixnum(args); 
X
X  f = xlgetarg();
X  xllastarg();
X
X  xlsave1(args);
X
X  if (b < a) {
X    x = b;
X    b = a;
X    a = x;
X  }
X  
X  v = a + r*(b-a);  
X  args = consa(cvflonum(v)); /* First step - always gold section*/
X  fv = getflonum(xlapply(pushargs(f, args)));
X
X  x = v;  w = v;
X  fx=fv;  fw=fv;
X
X  for(;;)		/* Main iteration loop	*/
X  {
X    FLOTYPE range = b-a;			/* Range over which the minimum */
X					/* is seeked for		*/
X    FLOTYPE middle_range = (a+b)/2;
X    FLOTYPE tol_act =			/* Actual tolerance		*/
X      SQRT_EPSILON*fabs(x) + tol/3;
X    FLOTYPE new_step;      		/* Step at this iteration       */
X
X       
X
X    if( fabs(x-middle_range) + range/2 <= 2*tol_act ) {
X      xlpop();
X      return cons(cvflonum(fx),consa(cvflonum(x)));	/* Acceptable approx. is found	*/
X    }
X					/* Obtain the gold section step	*/
X    new_step = r * ( x<middle_range ? b-x : a-x );
X
X
X    			/* Decide if the interpolation can be tried	*/
X    if( fabs(x-w) >= tol_act  )		/* If x and w are distinct      */
X    {					/* interpolatiom may be tried	*/
X	register FLOTYPE p; 		/* Interpolation step is calcula-*/
X	register FLOTYPE q;              /* ted as p/q; division operation*/
X                                        /* is delayed until last moment	*/
X	register FLOTYPE t;
X
X	t = (x-w) * (fx-fv);
X	q = (x-v) * (fx-fw);
X	p = (x-v)*q - (x-w)*t;
X	q = 2*(q-t);
X
X	if( q>(FLOTYPE)0 )		/* q was calculated with the op-*/
X	  p = -p;			/* posite sign; make q positive	*/
X	else				/* and assign possible minus to	*/
X	  q = -q;			/* p				*/
X
X	if( fabs(p) < fabs(new_step*q) &&	/* If x+p/q falls in [a,b]*/
X	    p > q*(a-x+2*tol_act) &&		/* not too close to a and */
X	    p < q*(b-x-2*tol_act)  )            /* b, and isn't too large */
X	  new_step = p/q;			/* it is accepted         */
X					/* If p/q is too large then the	*/
X					/* gold section procedure can 	*/
X					/* reduce [a,b] range to more	*/
X					/* extent			*/
X    }
X
X    if( fabs(new_step) < tol_act )	/* Adjust the step to be not less*/
X      if( new_step > (FLOTYPE)0 )	/* than tolerance		*/
X	new_step = tol_act;
X      else
X	new_step = -tol_act;
X
X				/* Obtain the next approximation to min	*/
X    {				/* and reduce the enveloping range	*/
X      register FLOTYPE t = x + new_step;	/* Tentative point for the min	*/
X      register FLOTYPE ft;
X      rplaca(args, cvflonum(t));
X      ft = getflonum(xlapply(pushargs(f, args)));
X
X      if( ft <= fx )
X      {                                 /* t is a better approximation	*/
X	if( t < x )			/* Reduce the range so that	*/
X	  b = x;                        /* t would fall within it	*/
X	else
X	  a = x;
X      
X	v = w;  w = x;  x = t;		/* Assign the best approx to x	*/
X	fv=fw;  fw=fx;  fx=ft;
X      }
X      else                              /* x remains the better approx  */
X      {        		             
X	if( t < x )			/* Reduce the range enclosing x	*/
X	  a = t;                   
X	else
X	  b = t;
X      
X        if( ft <= fw || w==x )
X        {
X           v = w;  w = t;
X	   fv=fw;  fw=ft;
X        }
X        else if( ft<=fv || v==x || v==w )
X        {
X           v = t;
X	   fv=ft;
X        }
X      }
X      
X    }			/* ----- end-of-block ----- */
X  }		/* ===== End of loop ===== */
X
}
SHAR_EOF
chmod 0644 fminbr.c ||
echo 'restore of fminbr.c failed'
Wc_c="`wc -c < 'fminbr.c'`"
test 6263 -eq "$Wc_c" ||
	echo 'fminbr.c: original size 6263, current size' "$Wc_c"
fi
# ============= min.dat ==============
if test -f 'min.dat' -a X"$1" != X"-c"; then
	echo 'x - skipping min.dat (File already exists)'
else
echo 'x - extracting min.dat (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'min.dat' &&
X
For function x^3 - 2*x - 5
in [0,1] min found is at	8.164965811e-01
Min function value found	-6.0887e+00
No. of iterations		12
Exact min is at		0.81650
X
For function (x^3 - 2*x - 5)^2
in [2,3] min found is at	2.094551483e+00
Min function value found	2.7186e-16
No. of iterations		15
Exact root is 		2.0945514815
X
For function (cos(x)-x)^2 - 2
in [2,3] min found is at	2.000000048e+00
Min function value found	3.8378e+00
No. of iterations		36
X
For function (cos(x)-x)^2 - 2
in [-1,3] min found is at	7.390851269e-01
Min function value found	-2.0000e+00
No. of iterations		18
X
For function (sin(x)-x)^2 + 1
in [-1,3] min found is at	-3.815499176e-03
Min function value found	1.0000e+00
No. of iterations		60
SHAR_EOF
chmod 0644 min.dat ||
echo 'restore of min.dat failed'
Wc_c="`wc -c < 'min.dat'`"
test 707 -eq "$Wc_c" ||
	echo 'min.dat: original size 707, current size' "$Wc_c"
fi
# ============= mintest.lsp ==============
if test -f 'mintest.lsp' -a X"$1" != X"-c"; then
	echo 'x - skipping mintest.lsp (File already exists)'
else
echo 'x - extracting mintest.lsp (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'mintest.lsp' &&
(dyn-load "./libzero.so")
X
(defun f1 (x) (- (* x (- (* x x) 2)) 5))
(def r (call-lfun "fminbr" 0 1 #'f1))
(format t "A min of (x^3 - 2x - 5)^2  in [0, 1] is ~g~%~%" r)
X
(defun f1prime (x) (^ (f1 x) 2))
(def r (call-lfun "fminbr" 2 3 #'f1prime))
(format t "A min of (x^3 - 2x - 5)^2  in [2, 3] is ~g~%~%" r)
X
(defun f2 (x) (- (^ (- (cos x) x) 2) 2))
(def r (call-lfun "fminbr" 2 3 #'f2))
(format t "A min of (cos(x) - x)^2-2 in [2, 3] is ~g~%~%" r)
X
(def r (call-lfun "fminbr" -1 3 #'f2))
(format t "A min of (cos(x) - x)^2-2 in [-1, 3] is ~g~%~%" r)
X
(defun f3 (x) (1+ (^ (- (sin x) x) 2)))
(def r (call-lfun "fminbr" -1 3 #'f3))
(format t "A min of (sin(x) - x)^2+1 in [-1, 3] is ~g~%~%" r)
X
X
SHAR_EOF
chmod 0644 mintest.lsp ||
echo 'restore of mintest.lsp failed'
Wc_c="`wc -c < 'mintest.lsp'`"
test 694 -eq "$Wc_c" ||
	echo 'mintest.lsp: original size 694, current size' "$Wc_c"
fi
# ============= zeroin.c ==============
if test -f 'zeroin.c' -a X"$1" != X"-c"; then
	echo 'x - skipping zeroin.c (File already exists)'
else
echo 'x - extracting zeroin.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'zeroin.c' &&
/* This is Zeroin, that classic program by Forsythe et. al. Since I
X   need it quite often in xlisp-stat, here it is. 
X
X   Converted from the Netlib C version to xlisp by 
X
X   B. Narasimhan                          naras@euler.bd.psu.edu. */
X
/*
X ************************************************************************
X *	    		    C math library
X * function ZEROIN - obtain a function zero within the given range
X *
X * Input
X *	double zeroin(ax,bx,f,tol)
X *	double ax; 			Root will be seeked for within
X *	double bx;  			a range [ax,bx]
X *	double (*f)(double x);		Name of the function whose zero
X *					will be seeked for
X *	double tol;			Acceptable tolerance for the root
X *					value.
X *					May be specified as 0.0 to cause
X *					the program to find the root as
X *					accurate as possible
X *
X * Output
X *	Zeroin returns an estimate for the root with accuracy
X *	4*EPSILON*abs(x) + tol
X *
X * Algorithm
X *	G.Forsythe, M.Malcolm, C.Moler, Computer methods for mathematical
X *	computations. M., Mir, 1980, p.180 of the Russian edition
X *
X *	The function makes use of the bissection procedure combined with
X *	the linear or quadric inverse interpolation.
X *	At every step program operates on three abscissae - a, b, and c.
X *	b - the last and the best approximation to the root
X *	a - the last but one approximation
X *	c - the last but one or even earlier approximation than a that
X *		1) |f(b)| <= |f(c)|
X *		2) f(b) and f(c) have opposite signs, i.e. b and c confine
X *		   the root
X *	At every step Zeroin selects one of the two new approximations, the
X *	former being obtained by the bissection procedure and the latter
X *	resulting in the interpolation (if a,b, and c are all different
X *	the quadric interpolation is utilized, otherwise the linear one).
X *	If the latter (i.e. obtained by the interpolation) point is 
X *	reasonable (i.e. lies within the current interval [b,c] not being
X *	too close to the boundaries) it is accepted. The bissection result
X *	is used in the other case. Therefore, the range of uncertainty is
X *	ensured to be reduced at least by the factor 1.6
X *
X ************************************************************************
X */
X
#include <xlisp.h>
#include <xlstat.h>
X
#define EPSILON macheps()
X
LVAL zeroin()		                /* An estimate to the root	*/
{
X  LVAL f, args;
X  FLOTYPE a,b,c;			/* Abscissae, descr. see above	*/
X  FLOTYPE fa;				/* f(a)				*/
X  FLOTYPE fb;				/* f(b)				*/
X  FLOTYPE fc;				/* f(c)				*/
X
X  args = xlgetarg(); 
X  if (! fixp(args) && ! floatp(args)) 
X    xlfail("bad arg type");
X  a = (floatp(args)) ? getflonum(args) : getfixnum(args); 
X
X  args = xlgetarg(); 
X  if (! fixp(args) && ! floatp(args)) 
X    xlfail("bad arg type");
X  b = (floatp(args)) ? getflonum(args) : getfixnum(args); 
X
X  f = xlgetarg();
X  xllastarg();
X
X  xlsave1(args);
X
X  args = consa(cvflonum(a));
X  fa = getflonum(xlapply(pushargs(f, args)));
X
X  rplaca(args, cvflonum(b));
X  fb = getflonum(xlapply(pushargs(f, args)));
X
X  c = a; fc = fa;
X
X  for(;;)		/* Main iteration loop	*/
X  {
X    FLOTYPE prev_step = b-a;		/* Distance from the last but one*/
X					/* to the last approximation	*/
X    FLOTYPE tol_act;			/* Actual tolerance		*/
X    FLOTYPE p;      			/* Interpolation step is calcu- */
X    FLOTYPE q;      			/* lated in the form p/q; divi- */
X  					/* sion operations is delayed   */
X 					/* until the last moment	*/
X    FLOTYPE new_step;      		/* Step at this iteration       */
X   
X    if( fabs(fc) < fabs(fb) )
X    {                         		/* Swap data for b to be the 	*/
X	a = b;  b = c;  c = a;          /* best approximation		*/
X	fa = fb;  fb = fc;  fc = fa;
X    }
X    tol_act = 2*EPSILON*fabs(b);
X    new_step = (c-b)/2;
X
X    if( fabs(new_step) <= tol_act || fb == (FLOTYPE)0 )
X      {
X	xlpop();
X	return cons(cvflonum(fb),args);	/* Acceptable approx. is found	*/
X      }
X    /* Decide if the interpolation can be tried	*/
X    if( fabs(prev_step) >= tol_act	/* If prev_step was large enough*/
X	&& fabs(fa) > fabs(fb) )	/* and was in true direction,	*/
X    {					/* Interpolatiom may be tried	*/
X	register FLOTYPE t1,cb,t2;
X	cb = c-b;
X	if( a==c )			/* If we have only two distinct	*/
X	{				/* points linear interpolation 	*/
X	  t1 = fb/fa;			/* can only be applied		*/
X	  p = cb*t1;
X	  q = 1.0 - t1;
X 	}
X	else				/* Quadric inverse interpolation*/
X	{
X	  q = fa/fc;  t1 = fb/fc;  t2 = fb/fa;
X	  p = t2 * ( cb*q*(q-t1) - (b-a)*(t1-1.0) );
X	  q = (q-1.0) * (t1-1.0) * (t2-1.0);
X	}
X	if( p>(FLOTYPE)0 )		/* p was calculated with the op-*/
X	  q = -q;			/* posite sign; make p positive	*/
X	else				/* and assign possible minus to	*/
X	  p = -p;			/* q				*/
X
X	if( p < (0.75*cb*q-fabs(tol_act*q)/2)	/* If b+p/q falls in [b,c]*/
X	    && p < fabs(prev_step*q/2) )	/* and isn't too large	*/
X	  new_step = p/q;			/* it is accepted	*/
X					/* If p/q is too large then the	*/
X					/* bissection procedure can 	*/
X					/* reduce [b,c] range to more	*/
X					/* extent			*/
X    }
X
X    if( fabs(new_step) < tol_act )	/* Adjust the step to be not less*/
X      if( new_step > (FLOTYPE)0 )	/* than tolerance		*/
X	new_step = tol_act;
X      else
X	new_step = -tol_act;
X
X    a = b;  fa = fb;			/* Save the previous approx.	*/
X    b += new_step;                      /* Do step to a new approxim.	*/
X    rplaca(args,cvflonum(b));
X    fb = getflonum(xlapply(pushargs(f, args)));
X
X    if( (fb > 0 && fc > 0) || (fb < 0 && fc < 0) )
X    {                 			/* Adjust c for it to have a sign*/
X      c = a;  fc = fa;                  /* opposite to that of b	*/
X    }
X  }
X
}
X
X
X
X
X
X
X
X
X
X
X
X
X
X
SHAR_EOF
chmod 0644 zeroin.c ||
echo 'restore of zeroin.c failed'
Wc_c="`wc -c < 'zeroin.c'`"
test 5516 -eq "$Wc_c" ||
	echo 'zeroin.c: original size 5516, current size' "$Wc_c"
fi
# ============= zeroin.dat ==============
if test -f 'zeroin.dat' -a X"$1" != X"-c"; then
	echo 'x - skipping zeroin.dat (File already exists)'
else
echo 'x - extracting zeroin.dat (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'zeroin.dat' &&
X
For function x^3 - 2*x - 5
in [2,3] root is	2.094551482e+00
Function value at the root found	-1.7764e-15
No. of iterations		11
Exact root is 		2.0945514815
X
For function cos(x)-x
in [2,3] root is	2.000000000e+00
Function value at the root found	-2.4161e+00
No. of iterations		52
X
For function cos(x)-x
in [-1,3] root is	7.390851332e-01
Function value at the root found	0.0000e+00
No. of iterations		11
X
For function sin(x)-x
in [-1,3] root is	-1.643737357e-08
Function value at the root found	0.0000e+00
No. of iterations		58
SHAR_EOF
chmod 0644 zeroin.dat ||
echo 'restore of zeroin.dat failed'
Wc_c="`wc -c < 'zeroin.dat'`"
test 527 -eq "$Wc_c" ||
	echo 'zeroin.dat: original size 527, current size' "$Wc_c"
fi
# ============= zerotest.lsp ==============
if test -f 'zerotest.lsp' -a X"$1" != X"-c"; then
	echo 'x - skipping zerotest.lsp (File already exists)'
else
echo 'x - extracting zerotest.lsp (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'zerotest.lsp' &&
(dyn-load "./libzero.so")
X
(defun f1 (x) (- (* x (- (* x x) 2)) 5))
X
(def r (call-lfun "zeroin" 2 3 #'f1))
(format t "A root of x^3 - 2x - 5 in [2, 3] is ~g~%~%" r)
X
(defun f2 (x) (- (cos x) x))
(def r (call-lfun "zeroin" 2 3 #'f2))
(format t "A root of cos(x) - x in [2, 3] is ~g~%~%" r)
X
(def r (call-lfun "zeroin" -1 3 #'f2))
(format t "A root of cos(x) - x in [-1, 3] is ~g~%~%" r)
X
(defun f3 (x) (- (sin x) x))
(def r (call-lfun "zeroin" -1 3 #'f3))
(format t "A root of sin(x) - x in [-1, 3] is ~g~%~%" r)
X
X
SHAR_EOF
chmod 0644 zerotest.lsp ||
echo 'restore of zerotest.lsp failed'
Wc_c="`wc -c < 'zerotest.lsp'`"
test 514 -eq "$Wc_c" ||
	echo 'zerotest.lsp: original size 514, current size' "$Wc_c"
fi
exit 0



From owner-SL-news  Thu Sep  1 02:21:49 1994
Resent-Date: Thu, 1 Sep 94 9:19:10 METDST
Resent-From: owner-SL-news
Resent-Message-Id: <199409010721.AA18597@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 1 Sep 1994 02:21:49 -0500
Message-Id: <199409010721.AA18590@umnstat.stat.umn.edu>
Received: from halley.upf.es by umnstat.stat.umn.edu; Thu, 1 Sep 1994 02:21:43 -0500
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA00913; Thu, 1 Sep 94 09:27:27 +0200
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA08124; Thu, 1 Sep 94 09:19:11 +0200
From: Frederic Udina <udina@upf.es>
Subject: glim routines
To: stat-lisp-news@umnstat (lisp stat list)
Date: Thu, 1 Sep 94 9:19:10 METDST
Mailer: Elm [revision: 70.85]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>


This is not a lisp question.

Does someone know where to find (or has) routines for solving
Generalized Linear Models (a la GLIM) in C?

--
                  Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |
Universitat Pompeu Fabra            |          voice: 34 - 3 - 542 17 56
       Balmes 132                   |            fax: 34 - 3 - 542 17 46
       08008 Barcelona              |         e-mail: udina@upf.es      
       SPAIN                        |      appleLink: spa0172           
___________________________________/_\_________________________________

From owner-SL-news  Thu Sep  1 15:27:05 1994
Resent-Date: Thu, 1 Sep 1994 19:27:05 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409012327.AA22164@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 1 Sep 1994 18:27:20 -0500
Received: from virginia.edu (uvaarpa.Virginia.EDU) by umnstat.stat.umn.edu; Thu, 1 Sep 1994 18:27:17 -0500
Received: from elvis.med.virginia.edu by uvaarpa.virginia.edu id aa27419;
          1 Sep 94 19:27 EDT
Received: by elvis.med.Virginia.EDU (5.65c/1.34)
	id AA14681; Thu, 1 Sep 1994 19:27:15 -0400
Newsgroups: comp.lang.lisp.x
Date: Thu, 1 Sep 1994 19:27:05 -0400 (EDT)
From: "Steven D. Majewski" <sdm7g@virginia.edu>
X-Sender: sdm7g@elvis.med.Virginia.EDU
To: Xlisp List <stat-lisp-news@umnstat>
Subject: xlispstat-3-37 vs 2.1R2 compatability
Message-Id: <Pine.A32.3.90.940901185529.19256A-100000@elvis.med.Virginia.EDU>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Steven D. Majewski" <sdm7g@virginia.edu>



I just built xlispstat-3-37 on IBM RS/6000-AIX 3.2.5 

Neither CC=cc or CC=gcc built without error, but CC=bsdcc did. 
( "bsdcc" is not a in the xlc distribution, but the bsdcc profile 
   is listed in the porting hints in infoexplorer xlc docs. ) 
With that it appears to work. Loading tests/test gets one math
error ( which is documented as not abnormal ), and some of the 
Examples ( tourdemo and some others ) work. 


I tried to load and run some of my 2.1R2 code. 

The first incompatability was easy to catch: 
  The changes doc says that packages are now supported. 
  I had "faked" it with a variable name containing a colon. 


One other previously working piece of code still gives me an
error (sometimes): 



( defun multi-plot ( &rest ys &key ( title "multi-plot" ) )
    ( let* (( y ( car ys ))
        ( x ( iseq 1 ( length y )))
        ( colors ( remove 'white ( remove 'black (color-symbols) )))
        ( p ( plot-lines x y :title title :width 2 :color ( car colors )))
        ( junk ( send p :reverse-colors ) )
        ( i 0 ) ( c Nil ))
        ( print p )
        ( dolist ( y ( cdr ys ))
            ( setq i ( + i 1 ))
            ( setq c ( elt colors ( mod i ( length colors ))))
      ( if ( not ( = (length x) (length y)))
         ( setq y ( iseq 1 ( length y ))))
            ( send p :add-lines x y :color c :width 2 ))
        ( send p :adjust-to-data )
        p ))



> ( setq x ( iseq 20 ))

; *ONE* argument doesn't work
> ( multi-plot x )
Error: keyword value missing
Happened in: #<Closure-MULTI-PLOT: #200fe310>

; but *TWO* arguments does work and produces a correct two line plot
> ( multi-plot x x )

#<Object: 537944896, prototype = SCATTERPLOT-PROTO> 
#<Object: 537944896, prototype = SCATTERPLOT-PROTO>

; Three arguments doesn't work...
> ( multi-plot x x x ) 
Error: keyword value missing
Happened in: #<Closure-MULTI-PLOT: #200fe310>

; and this one gives and error message 
; but the window appears with the proper window title "test" 

> ( multi-plot x x :title "test" ) 

#<Object: 538059152, prototype = SCATTERPLOT-PROTO> 
Error: bad argument type - :TITLE
Happened in: #<Subr-LENGTH: #200c7c20>
> 


I note that ( help 'defun ) doesn't list a &key argument in 
either version, but it DID work previously. ( There were a 
few other descrepancies between the doc's and the actual 
behaviour, so I thought that was just another. ) Has it 
been changed so that it no longer supports &key ? (Is there
another way to do keyword args ? ) 


- Steve Majewski       (804-982-0831)      <sdm7g@Virginia.EDU>
- UVA Department of Molecular Physiology and Biol<ogical Physics


From owner-SL-news  Thu Sep  1 15:35:52 1994
Resent-Date: Thu, 1 Sep 1994 19:35:52 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409012336.AA22200@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 1 Sep 1994 18:36:16 -0500
Received: from virginia.edu (uvaarpa.Virginia.EDU) by umnstat.stat.umn.edu; Thu, 1 Sep 1994 18:36:13 -0500
Received: from elvis.med.virginia.edu by uvaarpa.virginia.edu id aa28227;
          1 Sep 94 19:36 EDT
Received: by elvis.med.Virginia.EDU (5.65c/1.34)
	id AA14703; Thu, 1 Sep 1994 19:35:58 -0400
Newsgroups: comp.lang.lisp.x
Date: Thu, 1 Sep 1994 19:35:52 -0400 (EDT)
From: "Steven D. Majewski" <sdm7g@virginia.edu>
X-Sender: sdm7g@elvis.med.Virginia.EDU
To: Xlisp List <stat-lisp-news@umnstat>
Subject: DEFCLASS vs DEFPROTO  / ( xlisp vs xlisp-stat ? ) 
Message-Id: <Pine.A32.3.90.940901192755.19256B-100000@elvis.med.Virginia.EDU>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Steven D. Majewski" <sdm7g@virginia.edu>


xlispstat online help or apropos documents a DEFPROTO but not
a DEFCLASS. ( it also has no defclass ) 

The xlisp 2.1g manual documents a DEFCLASS but not a DEFPROTO.

Why? 
Is this an undocumented change to xlisp ?
or is this a change introduced by  xlispstat ? ( and why? )

And what are the differences? 


- Steve Majewski       (804-982-0831)      <sdm7g@Virginia.EDU>
- UVA Department of Molecular Physiology and Biological Physics


From owner-SL-news  Fri Sep  2 08:33:54 1994
Resent-Date: Fri, 2 Sep 1994 12:33:54 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409021634.AA25605@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 2 Sep 1994 11:34:18 -0500
Received: from virginia.edu (uvaarpa.Virginia.EDU) by umnstat.stat.umn.edu; Fri, 2 Sep 1994 11:34:13 -0500
Received: from elvis.med.virginia.edu by uvaarpa.virginia.edu id aa13580;
          2 Sep 94 12:34 EDT
Received: by elvis.med.Virginia.EDU (5.65c/1.34)
	id AA21039; Fri, 2 Sep 1994 12:34:06 -0400
Newsgroups: comp.lang.lisp.x
Date: Fri, 2 Sep 1994 12:33:54 -0400 (EDT)
From: "Steven D. Majewski" <sdm7g@virginia.edu>
X-Sender: sdm7g@elvis.med.Virginia.EDU
To: Chris Riesbeck <riesbeck@lyonesse.ils.nwu.edu>
Cc: Xlisp List <stat-lisp-news@umnstat>
Subject: Re: xlispstat-3-37 vs 2.1R2 compatability
In-Reply-To: <9409021424.AA23659@lyonesse.ils.nwu.edu>
Message-Id: <Pine.A32.3.90.940902120802.17917A-100000@elvis.med.Virginia.EDU>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Steven D. Majewski" <sdm7g@virginia.edu>



Chris Riesbeck pointed out to me:
> 
> If "correct" is defined to mean "like Common Lisp," then it looks like
> xlispstat has moved partially towards correct.
>

I pulled out some examples from Steele:CLtL 5.2.2, and it does now 
appear to be Common Lisp conformant in what it accepts.

> 
> xlispstat should complain about *all* your example calls. The fact
> that it's accepting some may be handy for you right now, but sure to
> disappear as xlispstat is updated. xlisp2.1g, the most recent xlisp
> base, behaves like Common Lisp.
> 

But what threw me off was that it is not completely conformant in 
what it doesn't reject ( as Chris points out above! ) 

As the previous set of "rules" my old code was based on were 
experimentally inferred, I'm glad to see it moving towards closer 
conformance with Common Lisp in this and many other respects.
( i.e. It's worth having to fix my code, in the long run. ) 

xlispstat-3.37 *is* based on xlisp2.1g BTW. 

| XLISP-PLUS version 2.1g
| Portions Copyright (c) 1988, by David Betz.
| Modified by Thomas Almy and others.
| XLISP-STAT 2.1 Release 3.37 (Beta).
| Copyright (c) 1989-1994, by Luke Tierney.

[Bret Musser was also nice enough to recode my example in a cleaner
 style. Thanks - my Lisp is a bit rusty! ] 

- Steve Majewski       (804-982-0831)      <sdm7g@Virginia.EDU>
- UVA Department of Molecular Physiology and Biological Physics


From owner-SL-news  Fri Sep  2 07:46:25 1994
Resent-Date: Fri, 2 Sep 94 12:46:25 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199409021658.AA25739@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 2 Sep 1994 11:58:25 -0500
Received: from cfr32.cfr.nist.gov by umnstat.stat.umn.edu; Fri, 2 Sep 1994 11:58:22 -0500
Received: by cfr32.cfr.nist.gov (NX5.67c/NX3.0M1)
	id AA03449; Fri, 2 Sep 94 12:46:25 -0500
Date: Fri, 2 Sep 94 12:46:25 -0500
From: Richard L. Smith <rsmith@cfr32.cfr.nist.gov>
Message-Id: <9409021746.AA03449@cfr32.cfr.nist.gov>
Received: by NeXT.Mailer (1.87.1)
Received: by NeXT Mailer (1.87.1)
To: stat-lisp-news@umnstat
Subject: please remove me form mailing list
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Richard L. Smith <rsmith@cfr32.cfr.nist.gov>

Please remove me form your mailing list.

---
Richard L. Smith
Bldg. 224 Rm B356
National Institute of Standards and Technology
Gaithersburg, MD 20899  USA
(301) 975-6870
rlsmith@NIST.gov
FAX (301) 975-4052

From owner-SL-news  Fri Sep  2 09:32:10 1994
Resent-Date: Fri, 2 Sep 1994 14:32:10 -0500
Resent-From: owner-SL-news
Resent-Message-Id: <199409021834.AA26202@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 2 Sep 1994 13:34:17 -0500
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu; Fri, 2 Sep 1994 13:34:12 -0500
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id OAA08700; Fri, 2 Sep 1994 14:33:58 -0400
Message-Id: <199409021833.OAA08700@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Fri, 2 Sep 1994 14:32:10 -0500
To: stat-lisp-news@umnstat
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: Problems with ViSta for Unix
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

The following problems exist for ViSta running with LispStat under Unix:

1) The file vista.lsp contained in the folder vista must be renamed to
ViSta.lsp.

2) (show-xlisp-stat) and (show-toolbar) must be removed from prefs.lsp
(this leaves prefs.lsp empty of code).

3) For versions of LispStat starting with 3.26 and higher: In vismenus.lsp,
the reference to make-fake-menu-bar and *fake-menu-bar* must be changed to
xlisp::make-fake-menu-bar and xlisp::*fake-menu-bar*. This must NOT be done
with versions of LispStat prior to 3.26.

4) Help is not formatted properly (lines are too long).

5) GuideMaps do not work because many file names were changed to all lower
case when they were loaded onto ftp.stat.ucla.edu.

6) Files with long pathnames are difficult to enter because the open file
dialog doesn't resize  and doesn't scroll left when typing past the end (an
unfortunate xlisp feature under some implementations of Unix).

7) X-Windows come up with a "Menu" button which has no function.

8) Under some versions of X-Windows code to determine window placement is
ignored.

For XLisp-Plus (version 3.26 and higher) on all platforms the code cannot
be successfully compiled (it was written before there was a compiler).

The first 5 problems will be corrected in the next release, and I will work
on the compilation problems (no promisses). Anyone willing to work on
problems 6, 7 or 8? 

There seem to be no problems on the Mac or under MS-Windows, other than the
code not be compilable.

Thanks to several of you (particularly Harvey J. Stein) for helping to
locate these problems.


=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From owner-SL-news  Fri Sep  2 12:50:34 1994
Resent-Date: Fri, 02 Sep 94 19:50:34 -0700
Resent-From: owner-SL-news
Resent-Message-Id: <199409030250.AA28007@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 2 Sep 1994 21:50:19 -0500
Received: from netcom7.netcom.com by umnstat.stat.umn.edu; Fri, 2 Sep 1994 21:50:15 -0500
Received: from localhost by netcom7.netcom.com (8.6.8.1/Netcom)
	id TAA08058; Fri, 2 Sep 1994 19:50:34 -0700
Message-Id: <199409030250.TAA08058@netcom7.netcom.com>
To: "Steven D. Majewski" <sdm7g@virginia.edu>
Cc: stat-lisp-news@umnstat
Subject: Re: DEFCLASS vs DEFPROTO / ( xlisp vs xlisp-stat ? ) 
In-Reply-To: Your message of "Thu, 01 Sep 94 19:35:52 EDT."
             <Pine.A32.3.90.940901192755.19256B-100000@elvis.med.Virginia.EDU> 
Date: Fri, 02 Sep 94 19:50:34 -0700
From: "Niels P. Mayer" <mayer@netcom.com>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Niels P. Mayer" <mayer@netcom.com>

> xlispstat online help or apropos documents a DEFPROTO but not
> a DEFCLASS. ( it also has no defclass ) 
> 
> The xlisp 2.1g manual documents a DEFCLASS but not a DEFPROTO.
> 
> Why? 
> Is this an undocumented change to xlisp ?

At least in the version of XLISP-PLUS I'm using in WINTERP 2.0 (see
http://www.eit.com/software/winterp/winterp.html), DEFCLASS, and
DEFMETHOD are defined in "classes.lsp" -- these macros are not built-in
primitives in XLISP-PLUS. If xlispstat's object system is backwards-
compatible with XLISP-PLUS, then hopefully "classes.lsp" will work there
too.

DEFPROTO is an xlispstat-only extension to the XLISP object system. XLISP's
object system is your typical class/instance object system, whereas
xlispstat's supports a "prototype-based" object model.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
= Niels Mayer ..... mayer@eit.com .... http://www.eit.com/people/mayer.html =
=  Multimedia Engineering Collaboration Environment (MM authoring for WWW)  =
=  Enterprise Integration Technologies, 800 El Camino Real, Menlo Park, CA  =
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

From owner-SL-news  Fri Sep  2 16:05:33 1994
Resent-Date: Fri, 2 Sep 1994 23:05:33 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409030605.AA28642@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 3 Sep 1994 01:05:44 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 3 Sep 1994 01:05:37 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA22193; Fri, 2 Sep 94 23:05:35 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA24264; Fri, 2 Sep 94 23:05:33 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409030605.AA24264@galton.math.ucla.edu>
Subject: More smoothing
To: stat-lisp-news@umnstat (Xlisp List)
Date: Fri, 2 Sep 1994 23:05:33 -0700 (PDT)
Cc: ucla-stat@math.ucla.edu (ucla-stat mailing list)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 5427      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Here are some useful interpolating splines.
------------------- snip snip ------------- snip snip ------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Regularized bivariate splines with smoothing and tension according to
;; Mitasova and Mitas (Mathematical Geology, 25, 1993, 641-669)
;; are computed. This is the interpolation method s.surf.tps in
;; GRASS 4.1. Programmed in Xlisp-Stat by Jan de Leeuw, UCLA Statistics,
;; September 2, 1994.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defconstant euler .577215664901532860606512)

(defun thin-plate-spline (x y z &key (tension .05) (smoothing 0))
"Args: (x y z &key (tension .05) (smoothing 0))
Thin-plate spline with smoothing and tension. Matrix X has
sampled points in  two dimensions, vector Z has corresponding
function values. Matrix Y has points where we want to 
interpolate. TENSION and SMOOTHING are parameters regulating
the smooth."
(let* (
      (nn (length z))
      (rn (repeat 1 nn))
      (ez (transpose (make-array (list 2 nn) :initial-contents 
                                 (list rn (coerce z 'list)))))
      (tt (/ (^ tension 2) 4))
      (dd (set-diagonal (* tt (dist-matrix x x)) 1))
      (ee (set-diagonal (+ euler (log dd) (expo-integral dd)) (- smoothing)))
      (aa (column-list (solve ee ez)))
      (ai (/ (sum (second aa)) (sum (first aa))))
      (bb (- (* ai (first aa)) (second aa)))
      (de (* tt (dist-matrix x y)))
      (fe (+ euler (log de) (expo-integral de))) 
      )
(- ai (matmult bb fe))
))

(defun cross-thin-plate (x z &key (tension .05) (smoothing 0))
"Args: (x z &key (tension .05) (smoothing 0))
Cross-validatory evaluation of thin-plate smoothing spline.
Matrix X contains sampled points, vector Z has function
values. Each of the function values is predicted using
the delete-one method, and the prediction-error sum of
squares is returned."
(let* (
       (nn (length z))
       (in (iseq nn))
       (ss 0)
       )
(dotimes (i nn ss)
         (let* (
                (im (remove i in))
                (zz (thin-plate-spline (select x im (iseq 2)) 
                   (select x (list i) (iseq 2))
                   (select z im) :tension tension :smoothing smoothing))
                )
(setf ss (+ ss (sum (^ (- zz (select z i)) 2))))
))))

(defun func-thin-plate (x z &key (tension .05) (smoothing 0) (eps .1) 
                          (nu 6) (nv 6))
"Args: (x z &key (tension .05) (smoothing 0) (eps .1) (nu 6) (nv 6))
Draws interpolating function using thin-plate spline. Actually
NU * NV interpolating points are formed, and the usual Xlisp-Stat
interpolating spline is drawn through these points."
(let* (
       (ax (column-list x))
       (u+ (+ (max (first ax)) eps))
       (u- (- (min (first ax)) eps))
       (v+ (+ (max (second ax)) eps))
       (v- (- (min (second ax)) eps))
       (ru (rseq u- u+ nu))
       (rv (rseq v- v+ nv))
       (hh (make-pairs ru rv))
       (sp (spin-plot (list (first ax) (second ax) z)))
       (vv (thin-plate-spline x hh z 
                              :tension tension :smoothing smoothing))
       )
(send sp :add-surface ru rv 
      (make-array (list nu nv) :displaced-to vv))
))
    
(defun dist-matrix (x y)
"Args (x y)
Computes matrix of squared Euclidean distances between
rows of the matrices X and Y."
(let (
     (c (matmult x (transpose y)))
     (d (row-sums (^ x 2)))
     (e (row-sums (^ y 2)))
     )
(- (outer-product d e #'+) (* 2 c))
))
  
(defun expo-integral (x)
"Args: (x)
Exponential integral for argument X."
(if (< x 1) (expo-integral-1 x) 
  (expo-integral-2 x)))

(defun expo-integral-1 (x)
"Args: (x)
Exponential integral for 0 < X < 1. Uses polynomial
approximation."
(let (
     (a0 -.57721566)
     (a1  .99999193)
     (a2 -.24991055)
     (a3  .05519968)
     (a4 -.00976004)
     (a5  .00107857)
     )
(- (+ a0 
      (* x (+ a1 
              (* x (+ a2 
                      (* x (+ a3 
                              (* x (+ a4 
                                      (* x a5)))))))))) (log x))
))

(defun expo-integral-2 (x)
"Args: (x)
Exponential integral for X >= 1. Uses rational
approximation."
(let (
      (a1 8.5733278401)
      (a2 18.0590169730)
      (a3 8.6347608925)
      (a4 .2677737343)
      (b1 9.5733223454)
      (b2 25.6329561486)
      (b3 21.0996530827)
      (b4 3.9584969228)
      )
(/ (/ (+ a4 (* x (+ a3 (* x (+ a2 (* x a1))))))
   (+ b4 (* x (+ b3 (* x (+ b2 (* x b1))))))) (* x (exp x)))
))

(defun row-sums (x)
"Args: (x)
Returns row sums of matrix X."
(mapcar #'sum (row-list x)))

(defun set-diagonal (x a)
"Args: (x a)
Sets all diagonal elements of the square matrix X
equal to a."
(let (
     (n (first (array-dimensions x)))
     )
(+ (- x (diagonal (diagonal x))) (diagonal (repeat a n)))
))

(defun make-pairs (x y)
"Args: (x y)
Suppose X and Y are sequences of length nx and ny.
Makes an nx*ny by 2 matrix containing all ordered
pairs."
(let* (
       (nx (length x))
       (ny (length y))
       (nn (* nx ny))
       (ry (repeat y nx))
       (rx (combine (mapcar #'(lambda (z) (repeat z ny)) x)))
       )
(transpose (make-array (list 2 nn) :initial-contents (list rx ry)))
))
           


-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Fri Sep  2 16:31:06 1994
Resent-Date: Fri, 2 Sep 1994 23:31:06 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409030631.AA28758@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 3 Sep 1994 01:31:14 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 3 Sep 1994 01:31:11 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA22298; Fri, 2 Sep 94 23:31:09 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA24333; Fri, 2 Sep 94 23:31:06 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409030631.AA24333@galton.math.ucla.edu>
Subject: dismay !
To: stat-lisp-news@umnstat (Xlisp List)
Date: Fri, 2 Sep 1994 23:31:06 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 857       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

I noticed that the directory ~/pub/lisp/xlisp/xlisp-stat/homegrown/bootstrap
has not been updated for a long time. This is unfortunate, because
we now have routines for basically everything in Efron and Tibshirani,
for the balanced bootstrap, and for the stratified and clustered
sampling with and without replacement bootstraps by Sitter. They
are there now (and in the corresponding gopher and www directories).
There are also some demo's, which can be used for teaching, perhaps.

Observe that three new directories in ~/pub/lisp/xlisp/xlisp-stat/homegrown/
are impute, mcmc, and smoothers. Watch them closely. Same for tables.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From kupermaj@tardis.union.edu  Wed Sep  7 10:35:43 1994
Received: from tardis.union.edu by umnstat.stat.umn.edu; Wed, 7 Sep 1994 21:16:19 -0500
Received: by tardis.union.edu id AA25695
  (5.65c+/IDA-1.4.4 for sl-news-list@umnstat.stat.umn.edu); Wed, 7 Sep 1994 14:35:44 -0400
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199409071835.AA25695@tardis.union.edu>
Subject: Re: UCLA archives 
To: deleeuw@math.ucla.edu (Jan Deleeuw)
Date: Wed, 7 Sep 1994 14:35:43 -0400 (EDT)
Cc: sl-news-list@umnstat
In-Reply-To: <9408311558.AA10277@galton.math.ucla.edu> from "Jan Deleeuw" at Aug 31, 94 08:58:36 am
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 486       

I downloaded two versions of xlisp-stat from the UCLA archive, one had
00 in the name and one didn't.  They both seem to work quite nicely on
my Mac (quadra 660av). How can I tell which one is the right version
to be using. They've both been de-binhexed and the only difference I find
with the get info is the size of the two programs.  At least for anything
I've asked either to do their performance is identical.

-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From owner-SL-news  Thu Sep  8 06:37:59 1994
Resent-Date: Thu, 8 Sep 94 10:37:59 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199409081503.AA06788@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Sep 1994 10:03:33 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Thu, 8 Sep 1994 10:02:17 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA11470; Thu, 8 Sep 94 11:02:03 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA20268; Thu, 8 Sep 94 10:38:01 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA19404; Thu, 8 Sep 94 10:37:59 EDT
Date: Thu, 8 Sep 94 10:37:59 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9409081437.AA19404@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: Solving simultaneous eqns.
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


How does one go about solving a set of simultaneous equations
in XLS?  I want to fit the Bradley-Terry model to some data and
want to solve the k-1 equations for i=1,2,...k-1
	
	[sum(over i,j) f(ij) / p(i)] - [n sum(over j /=i) 1/(p(i)+p(j)]=0

where f(ij) is the freq. of i preferred over j, ie the data, and the p's are
the parameters to fit.

Now I know that this model can be fit using the GLIM functions written in
XLS, but I would like to fit the above model and also an unequal n version.
If anyone can conveniently tell me how to do this (hints) or has any
references for this type of basic math programming using XLS then I'd
sure appreciate it.  I have settled on XLS as my programming language of
choice and am exploring capabilities.

Thanks!

Jeffrey D. Morris
Kodak Research Labs
morris@kodak.com


From owner-SL-news  Thu Sep  8 06:24:46 1994
Resent-Date: Thu, 8 Sep 94 10:24:46 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199409081547.AA07020@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Sep 1994 10:47:46 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Thu, 8 Sep 1994 10:47:26 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA13050; Thu, 8 Sep 94 11:47:31 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA20243; Thu, 8 Sep 94 10:24:48 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA19401; Thu, 8 Sep 94 10:24:46 EDT
Date: Thu, 8 Sep 94 10:24:46 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9409081424.AA19401@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: ftp site
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


Just curious, but what is up with umnstat.stat.umn.edu?  Been
logging on regularly waiting for ver 3.39 and suddenly yesterday,
there were no directories.  Hope this isn't a problem.

Jeffrey D. Morris
Kodak Research Labs
morris@kodak.com


From bjm  Thu Sep  8 06:17:29 1994
Resent-Date: Thu, 08 Sep 94 11:17:29 -0500
Resent-Message-Id: <199409081617.AA07233@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Sep 1994 11:17:36 -0500
Message-Id: <199409081617.AA07224@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 8 Sep 1994 11:17:32 -0500
To: luh700@gosset.kodak.com
Cc: stat-lisp-news@umnstat
Subject: Re: ftp site 
In-Reply-To: Your message of "Thu, 08 Sep 94 10:24:46 EDT."
             <9409081424.AA19401@gosset.kodak.com> 
Date: Thu, 08 Sep 94 11:17:29 -0500
From: "Bret J. Musser" <bjm@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Bret J. Musser" <bjm@umnstat>

In message <9409081424.AA19401@gosset.kodak.com> you wrote:
>
>Just curious, but what is up with umnstat.stat.umn.edu?  Been
>logging on regularly waiting for ver 3.39 and suddenly yesterday,
>there were no directories.  Hope this isn't a problem.

Yes, there is a problem with anonymous ftp at umnstat.  We're having server
problems right now and anonymous ftp had to be taken off-line for the time
being.  It will be back up as soon as we transfer the anonymous ftp files to
another machine, but we have no firm time estimate on that.

Bret Musser
bjm@stat.umn.edu

From bjm  Sat Sep 10 17:52:58 1994
Resent-Date: Sat, 10 Sep 1994 22:52:58 -0500
Resent-Message-Id: <199409110353.AA14852@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 10 Sep 1994 22:53:01 -0500
Date: Sat, 10 Sep 1994 22:52:58 -0500
From: "Bret J. Musser" <bjm>
Message-Id: <199409110352.AA14845@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 10 Sep 1994 22:52:58 -0500
To: lisp-stat-news
Subject: umnstat.stat.umn.edu back up
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Bret J. Musser" <bjm>


The anonymous ftp server at umnstat.stat.umn.edu is partially back up.
The xlispstat and macanova archives have been restored.  There will be 
additions to both of these in the near future.

Bret Musser
bjm@stat.umn.edu

From owner-SL-news  Wed Sep 14 06:48:07 1994
Resent-Date: Wed, 14 Sep 94 10:48:07 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199409141442.AA05852@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 14 Sep 1994 09:42:20 -0500
Received: from mail-relay1.cis.yale.edu by umnstat.stat.umn.edu; Wed, 14 Sep 1994 09:42:16 -0500
Received: from ZEUS.PSYCH.YALE.EDU by mail-relay1.cis.yale.edu with SMTP id AA05707
  (5.67a/IDA-1.5 for <lisp-stat-news@umnstat.stat.umn.edu>); Wed, 14 Sep 1994 10:40:53 -0400
Received: by ZEUS.PSYCH.YALE.EDU (4.1/SMI-4.1)
	id AA15697; Wed, 14 Sep 94 10:48:07 EDT
Date: Wed, 14 Sep 94 10:48:07 EDT
From: joe@Zeus.Psych.Yale.EDU (Joe Goulet)
Message-Id: <9409141448.AA15697@ZEUS.PSYCH.YALE.EDU>
To: lisp-stat-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: joe@Zeus.Psych.Yale.EDU (Joe Goulet)

SUBSCRIBE

From luke  Wed Sep 14 05:09:43 1994
Resent-Date: Wed, 14 Sep 1994 10:09:43 -0500
Resent-Message-Id: <199409141509.AA24591@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 14 Sep 1994 10:09:45 -0500
Date: Wed, 14 Sep 1994 10:09:43 -0500
From: "Luke Tierney" <luke>
Message-Id: <199409141509.AA24583@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 14 Sep 1994 10:09:43 -0500
To: stat-lisp-news
Subject: xlispstat 3.39 for UNIX, Macintosh and MS Windows is now available.
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

XLISP-STAT Release 3.39 for UNIX systems, Macintosh and MS Windows is
now available for anonymous ftp from umnstat.stat.umn.edu
(128.101.51.1). The sources for all versions are in

	pub/xlispstat/xlispstat-3-39.tar.gz

This a tar archive compressed with the GNU gzip compression utility.
Once you have retrieved the file you can extract the sources with

	gzip -cd | tar xvf - 

The Macintosh and MS Windows distributions are in the directories
pub/xlispstat/macintosh and pub/xlispstat/mswin. README files in those
directories give further details.

This is a beta realease -- some things are still in flux, others have
not been extensively tested. Please let me know if you run into any
problems.

Changes from 3.37 include

	Fixed bug in dynamic loading callback code.

	Incorporation of Macintosh and Windows code.

	Addition of set-working-directory and get-working-directory
	functions.

	Workaround for bug in Linux IEEE NaN handling.

	Fix for bug in dynamic call-cfun/call-lfun code.

	Rearranged files in library directory; eliminated copying of
	.fsl files already in the saved workspace.

	Added file-write-date, rename-file.

	Added pathname functions.

	Changed compile-file to use pathname functions; also now
	writes to a temporary file and renames after successful
	compilation.

	Modified load command to check modification dates of .fsl and
	.lsp files.

Luke Tierney
School of Statistics
University of Minnesota
Minneapolis, MN 55455
luke@stat.umn.edu

From owner-SL-news  Wed Sep 14 11:34:58 1994
Resent-Date: Wed, 14 Sep 1994 18:34:58 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409150135.AA09106@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 14 Sep 1994 20:35:10 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Wed, 14 Sep 1994 20:35:04 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA13535; Wed, 14 Sep 94 18:34:59 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA06483; Wed, 14 Sep 94 18:34:58 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409150134.AA06483@galton.math.ucla.edu>
Subject: ftp/gopher/www.stat.ucla.edu
To: stat-lisp-news@umnstat (Xlisp List)
Date: Wed, 14 Sep 1994 18:34:58 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 481       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

The xlisp (including xlisp-plus, winterp, xlisp-stat) directories
on ftp.stat.ucla.edu (or gopher.stat.ucla.edu or www.stat.ucla.edu)
have been reorganized, and updated to some extent.

You can get an idea by looking at the file ls-lR in ~/pub/lisp/xlisp

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From luke  Thu Sep 15 04:33:44 1994
Resent-Date: Thu, 15 Sep 1994 09:33:44 -0500
Resent-Message-Id: <199409151433.AA27571@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 15 Sep 1994 09:33:47 -0500
Date: Thu, 15 Sep 1994 09:33:44 -0500
From: "Luke Tierney" <luke>
Message-Id: <199409151433.AA27563@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 15 Sep 1994 09:33:44 -0500
To: stat-lisp-news
Subject: New MS Windows archive file for xlispstat release 3.39
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

The archie file I made available yesterday apparently got corrupted during the
upload. I have replaced it with a new one. Sorry about that.

luke

From rlenth@stat.uiowa.edu  Fri Sep 16 07:12:23 1994
Received: from ns-mx.uiowa.edu by umnstat.stat.umn.edu; Fri, 16 Sep 1994 12:13:52 -0500
Received: from stat.uiowa.edu by ns-mx.uiowa.edu (8.6.8.2/19940322)
	  on Fri, 16 Sep 1994 12:13:50 -0500 id MAA06905 with SMTP 
Received: from nuthatch.uiowa.edu by  stat.uiowa.edu (4.1/SMI-4.1)
	id AA22788; Fri, 16 Sep 94 12:12:23 CDT
Date: Fri, 16 Sep 94 12:12:23 CDT
From: rlenth@stat.uiowa.edu (Russ Lenth)
Message-Id: <9409161712.AA22788@ stat.uiowa.edu>
To: SL-news-list@umnstat
Subject: formatting a list

I'm puzzling over how to format a list of numbers so that they
all come out looking nice.  Here are my failures (SunOS 4.1,
xlisp-stat 2.1 Release 3-39)...

    > (format nil "~,4g" (list .1234567 .10765))
    "(0.12345670000000000255 0.10764999999999999569)"
    
    
    > (map-elements #'(lambda(u) (format nil "~,4g" u))
		    (list .1234567 12.5647))
    ("0.1235" "12.56")
    
    
    > (map-elements #'(lambda(u) (read (make-string-input-stream
					(format nil "~,4g" u))))
       (list .1234567 12.5647))
    (0.12349999999999999867 12.56000000000000049738)


The last method always seemed to work fine in xlisp-stat version 2.1R2;
I've only run into problems with the newer releases.  I've had the
same experiences with the latest HPUX and MS-Windows versions too.

Can anyone suggest a fix?

Thanks in advance,
------------------------------------------------  --------------,
Russ Lenth                 rlenth@stat.uiowa.edu  \              )
Department of Statistics                           |             \_ "The Athens
  and Actuarial Science    Tel: (319)335-0814      \    Iowa City  \ of the
The University of Iowa     FAX: (319)335-3017       \          *  _/ Midwest"
Iowa City, IA 52242  USA   CW:  *= * ====== *=*      |           /
------------------------------------------------      ----------v

From owner-SL-news  Mon Sep 19 07:38:07 1994
Resent-Date: Mon, 19 Sep 94 11:38:07 EDT
Resent-From: owner-SL-news
Resent-Message-Id: <199409191549.AA29303@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:49:01 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:48:40 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA17220; Mon, 19 Sep 94 11:48:38 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA22690; Mon, 19 Sep 94 11:38:09 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA01092; Mon, 19 Sep 94 11:38:07 EDT
Date: Mon, 19 Sep 94 11:38:07 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9409191538.AA01092@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: Missing values
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I seem to remember reading somewhere that the new
version of XLS, 3.39 would be able to handle missing
values in lists, vectors, matrices.  Is this true and
if so, what is the symbol to designate a missing value?

Thanks in advance.

Jeffrey D. Morris, Ph.D.
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205
morris@kodak.com


From luke  Mon Sep 19 06:14:09 1994
Resent-Date: Mon, 19 Sep 94 11:14:09 CDT
Resent-Message-Id: <199409191614.AA08975@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:20 -0500
From: "Luke Tierney" <luke>
Message-Id: <199409191614.AA08968@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:10 -0500
Subject: Re: Missing values
To: luh700@gosset.kodak.com
Date: Mon, 19 Sep 94 11:14:09 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9409191538.AA01092@gosset.kodak.com>; from "Jeffrey D. Morris" at Sep 19, 94 11:38 am
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

> 
> 
> I seem to remember reading somewhere that the new
> version of XLS, 3.39 would be able to handle missing
> values in lists, vectors, matrices.  Is this true and
> if so, what is the symbol to designate a missing value?
> 
> Thanks in advance.
> 
> Jeffrey D. Morris, Ph.D.
> Applied Math and Statistics
> Kodak Research Labs
> Rochester, NY 14650-2205
> morris@kodak.com
> 
> 

The only change related to missing values has to do with the handling
of nonnumerical data in graphs. Here is the relevant section throm
changes.tex:

\subsection{Missing and Non-Numerical Data in Graphs}
It is now possible to give plotting functions data sequences that
contain non-numerical values, such as missing value codes.  Points
with one or more non-numerical coordinates are marked internally as
masked. This means they are not drawn and are not considered for the
calculation of scaling information.

Any non-numerical lisp item can be used as a missing data code, but
\NIL\ should be avoided since it also represents the empty list and
can cause confusion in vectorized operations.

luke

From luke  Mon Sep 19 06:14:09 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:34 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4A-00041PC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18920 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:25:42 -0700
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA05535; Mon, 19 Sep 1994 11:17:24 -0500
Resent-Date: Mon, 19 Sep 94 11:14:09 CDT
Resent-Message-Id: <199409191614.AA08975@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:20 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409191614.AA08968@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:10 -0500
Subject: Re: Missing values
To: luh700@gosset.kodak.com
Date: Mon, 19 Sep 94 11:14:09 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9409191538.AA01092@gosset.kodak.com>; from "Jeffrey D. Morris" at Sep 19, 94 11:38 am
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

> 
> 
> I seem to remember reading somewhere that the new
> version of XLS, 3.39 would be able to handle missing
> values in lists, vectors, matrices.  Is this true and
> if so, what is the symbol to designate a missing value?
> 
> Thanks in advance.
> 
> Jeffrey D. Morris, Ph.D.
> Applied Math and Statistics
> Kodak Research Labs
> Rochester, NY 14650-2205
> morris@kodak.com
> 
> 

The only change related to missing values has to do with the handling
of nonnumerical data in graphs. Here is the relevant section throm
changes.tex:

\subsection{Missing and Non-Numerical Data in Graphs}
It is now possible to give plotting functions data sequences that
contain non-numerical values, such as missing value codes.  Points
with one or more non-numerical coordinates are marked internally as
masked. This means they are not drawn and are not considered for the
calculation of scaling information.

Any non-numerical lisp item can be used as a missing data code, but
\NIL\ should be avoided since it also represents the empty list and
can cause confusion in vectorized operations.

luke
From owner-SL-news  Mon Sep 19 07:38:07 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:46 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:37 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4S-00041RC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18691 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:04:41 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA05152; Mon, 19 Sep 1994 10:53:37 -0500
Resent-Date: Mon, 19 Sep 94 11:38:07 EDT
Resent-Message-Id: <199409191549.AA29303@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:49:01 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:48:40 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA17220; Mon, 19 Sep 94 11:48:38 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA22690; Mon, 19 Sep 94 11:38:09 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA01092; Mon, 19 Sep 94 11:38:07 EDT
Date: Mon, 19 Sep 94 11:38:07 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9409191538.AA01092@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: Missing values
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I seem to remember reading somewhere that the new
version of XLS, 3.39 would be able to handle missing
values in lists, vectors, matrices.  Is this true and
if so, what is the symbol to designate a missing value?

Thanks in advance.

Jeffrey D. Morris, Ph.D.
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205
morris@kodak.com


From luke  Mon Sep 19 06:14:09 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:00:45 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:00:19 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmsc2-00040hC; Mon, 19 Sep 94 16:59 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11161; Mon, 19 Sep 1994 18:56:15 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:34 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4A-00041PC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18920 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:25:42 -0700
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA05535; Mon, 19 Sep 1994 11:17:24 -0500
Resent-Date: Mon, 19 Sep 94 11:14:09 CDT
Resent-Message-Id: <199409191614.AA08975@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:20 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409191614.AA08968@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:10 -0500
Subject: Re: Missing values
To: luh700@gosset.kodak.com
Date: Mon, 19 Sep 94 11:14:09 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9409191538.AA01092@gosset.kodak.com>; from "Jeffrey D. Morris" at Sep 19, 94 11:38 am
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

> 
> 
> I seem to remember reading somewhere that the new
> version of XLS, 3.39 would be able to handle missing
> values in lists, vectors, matrices.  Is this true and
> if so, what is the symbol to designate a missing value?
> 
> Thanks in advance.
> 
> Jeffrey D. Morris, Ph.D.
> Applied Math and Statistics
> Kodak Research Labs
> Rochester, NY 14650-2205
> morris@kodak.com
> 
> 

The only change related to missing values has to do with the handling
of nonnumerical data in graphs. Here is the relevant section throm
changes.tex:

\subsection{Missing and Non-Numerical Data in Graphs}
It is now possible to give plotting functions data sequences that
contain non-numerical values, such as missing value codes.  Points
with one or more non-numerical coordinates are marked internally as
masked. This means they are not drawn and are not considered for the
calculation of scaling information.

Any non-numerical lisp item can be used as a missing data code, but
\NIL\ should be avoided since it also represents the empty list and
can cause confusion in vectorized operations.

luke

From luke  Mon Sep 19 06:14:09 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:04:59 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:04:45 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmsgI-00040hC; Mon, 19 Sep 94 17:03 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11199; Mon, 19 Sep 1994 19:01:53 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:00:45 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:00:19 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmsc2-00040hC; Mon, 19 Sep 94 16:59 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11161; Mon, 19 Sep 1994 18:56:15 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:34 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4A-00041PC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18920 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:25:42 -0700
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA05535; Mon, 19 Sep 1994 11:17:24 -0500
Resent-Date: Mon, 19 Sep 94 11:14:09 CDT
Resent-Message-Id: <199409191614.AA08975@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:20 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409191614.AA08968@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:10 -0500
Subject: Re: Missing values
To: luh700@gosset.kodak.com
Date: Mon, 19 Sep 94 11:14:09 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9409191538.AA01092@gosset.kodak.com>; from "Jeffrey D. Morris" at Sep 19, 94 11:38 am
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

> 
> 
> I seem to remember reading somewhere that the new
> version of XLS, 3.39 would be able to handle missing
> values in lists, vectors, matrices.  Is this true and
> if so, what is the symbol to designate a missing value?
> 
> Thanks in advance.
> 
> Jeffrey D. Morris, Ph.D.
> Applied Math and Statistics
> Kodak Research Labs
> Rochester, NY 14650-2205
> morris@kodak.com
> 
> 

The only change related to missing values has to do with the handling
of nonnumerical data in graphs. Here is the relevant section throm
changes.tex:

\subsection{Missing and Non-Numerical Data in Graphs}
It is now possible to give plotting functions data sequences that
contain non-numerical values, such as missing value codes.  Points
with one or more non-numerical coordinates are marked internally as
masked. This means they are not drawn and are not considered for the
calculation of scaling information.

Any non-numerical lisp item can be used as a missing data code, but
\NIL\ should be avoided since it also represents the empty list and
can cause confusion in vectorized operations.

luke

From owner-SL-news  Mon Sep 19 07:38:07 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:05:56 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:05:49 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmshR-00040hC; Mon, 19 Sep 94 17:04 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA26472 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:09:07 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11159; Mon, 19 Sep 1994 18:56:14 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:46 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:37 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4S-00041RC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18691 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:04:41 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA05152; Mon, 19 Sep 1994 10:53:37 -0500
Resent-Date: Mon, 19 Sep 94 11:38:07 EDT
Resent-Message-Id: <199409191549.AA29303@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:49:01 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:48:40 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA17220; Mon, 19 Sep 94 11:48:38 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA22690; Mon, 19 Sep 94 11:38:09 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA01092; Mon, 19 Sep 94 11:38:07 EDT
Date: Mon, 19 Sep 94 11:38:07 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9409191538.AA01092@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: Missing values
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I seem to remember reading somewhere that the new
version of XLS, 3.39 would be able to handle missing
values in lists, vectors, matrices.  Is this true and
if so, what is the symbol to designate a missing value?

Thanks in advance.

Jeffrey D. Morris, Ph.D.
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205
morris@kodak.com


From owner-SL-news  Mon Sep 19 07:38:07 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:08:47 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:08:38 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmsk7-00040hC; Mon, 19 Sep 94 17:07 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11237; Mon, 19 Sep 1994 19:06:30 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:05:56 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:05:49 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmshR-00040hC; Mon, 19 Sep 94 17:04 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA26472 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:09:07 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11159; Mon, 19 Sep 1994 18:56:14 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:46 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:37 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4S-00041RC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18691 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:04:41 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA05152; Mon, 19 Sep 1994 10:53:37 -0500
Resent-Date: Mon, 19 Sep 94 11:38:07 EDT
Resent-Message-Id: <199409191549.AA29303@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:49:01 -0500
Received: from kodak.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 10:48:40 -0500
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA17220; Mon, 19 Sep 94 11:48:38 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA22690; Mon, 19 Sep 94 11:38:09 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA01092; Mon, 19 Sep 94 11:38:07 EDT
Date: Mon, 19 Sep 94 11:38:07 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9409191538.AA01092@gosset.kodak.com>
To: stat-lisp-news@umnstat
Subject: Missing values
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


I seem to remember reading somewhere that the new
version of XLS, 3.39 would be able to handle missing
values in lists, vectors, matrices.  Is this true and
if so, what is the symbol to designate a missing value?

Thanks in advance.

Jeffrey D. Morris, Ph.D.
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205
morris@kodak.com


From luke  Mon Sep 19 06:14:09 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:10:08 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:09:54 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmslE-00040lC; Mon, 19 Sep 94 17:08 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA26671 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:12:54 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11216; Mon, 19 Sep 1994 19:05:37 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:04:59 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:04:45 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmsgI-00040hC; Mon, 19 Sep 94 17:03 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11199; Mon, 19 Sep 1994 19:01:53 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:00:45 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:00:19 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmsc2-00040hC; Mon, 19 Sep 94 16:59 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11161; Mon, 19 Sep 1994 18:56:15 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:34 -0500
Received: from main.statsci.com ([198.145.125.110]) by umnstat.stat.umn.edu; Mon, 19 Sep 1994 18:54:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qms4A-00041PC; Mon, 19 Sep 94 16:24 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id JAA18920 for <statlisp@statsci.com>; Mon, 19 Sep 1994 09:25:42 -0700
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA05535; Mon, 19 Sep 1994 11:17:24 -0500
Resent-Date: Mon, 19 Sep 94 11:14:09 CDT
Resent-Message-Id: <199409191614.AA08975@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:20 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409191614.AA08968@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 11:14:10 -0500
Subject: Re: Missing values
To: luh700@gosset.kodak.com
Date: Mon, 19 Sep 94 11:14:09 CDT
Cc: stat-lisp-news@umnstat
In-Reply-To: <9409191538.AA01092@gosset.kodak.com>; from "Jeffrey D. Morris" at Sep 19, 94 11:38 am
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

> 
> 
> I seem to remember reading somewhere that the new
> version of XLS, 3.39 would be able to handle missing
> values in lists, vectors, matrices.  Is this true and
> if so, what is the symbol to designate a missing value?
> 
> Thanks in advance.
> 
> Jeffrey D. Morris, Ph.D.
> Applied Math and Statistics
> Kodak Research Labs
> Rochester, NY 14650-2205
> morris@kodak.com
> 
> 

The only change related to missing values has to do with the handling
of nonnumerical data in graphs. Here is the relevant section throm
changes.tex:

\subsection{Missing and Non-Numerical Data in Graphs}
It is now possible to give plotting functions data sequences that
contain non-numerical values, such as missing value codes.  Points
with one or more non-numerical coordinates are marked internally as
masked. This means they are not drawn and are not considered for the
calculation of scaling information.

Any non-numerical lisp item can be used as a missing data code, but
\NIL\ should be avoided since it also represents the empty list and
can cause confusion in vectorized operations.

luke

From owner-SL-news  Mon Sep 19 16:41:24 1994
Resent-Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409200041.AA01594@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:29 -0500
Received: from tardis.union.edu by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:26 -0500
Received: by tardis.union.edu id AA28616
  (5.65c+/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Mon, 19 Sep 1994 20:41:24 -0400
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199409200041.AA28616@tardis.union.edu>
Subject: benchmarks
To: stat-lisp-news@umnstat
Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 849       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>

I'd like to thank Jan Deleeuw for helping me figure out which version
of xlisp-stat, of the two I had de-binhexed, used the FPU built 
into the 68040 chip on my Mac Quadra 660av.  He sent me some old
timing results and I found my machine was roughly equilavent to
a DecStation 3100 (actually the 660av was a tad faster).  This
made me wonder.  Does anyone have a set of standard benchmarks for
lisp - xlisp -xlisp stat that would be good for comparing systems. 
Also, all these benchmarks, that were don with Jan's tester program
 were pre PowerPC and Pentium machines. 

I'm wondering how fast these machines are and how fast xlisp-stat
can be run.  (I first tried xlisp-stat on a MacPlus. Which is why 
I had such a hard time noticing the difference between the two
versions.)
-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From owner-SL-news  Mon Sep 19 16:41:24 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:37 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtJj-00040hC; Mon, 19 Sep 94 17:44 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27185 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:48:36 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11477; Mon, 19 Sep 1994 19:42:16 -0500
Resent-Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
Resent-Message-Id: <199409200041.AA01594@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:29 -0500
Received: from tardis.union.edu by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:26 -0500
Received: by tardis.union.edu id AA28616
  (5.65c+/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Mon, 19 Sep 1994 20:41:24 -0400
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199409200041.AA28616@tardis.union.edu>
Subject: benchmarks
To: stat-lisp-news@umnstat
Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 849       
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>

I'd like to thank Jan Deleeuw for helping me figure out which version
of xlisp-stat, of the two I had de-binhexed, used the FPU built 
into the 68040 chip on my Mac Quadra 660av.  He sent me some old
timing results and I found my machine was roughly equilavent to
a DecStation 3100 (actually the 660av was a tad faster).  This
made me wonder.  Does anyone have a set of standard benchmarks for
lisp - xlisp -xlisp stat that would be good for comparing systems. 
Also, all these benchmarks, that were don with Jan's tester program
 were pre PowerPC and Pentium machines. 

I'm wondering how fast these machines are and how fast xlisp-stat
can be run.  (I first tried xlisp-stat on a MacPlus. Which is why 
I had such a hard time noticing the difference between the two
versions.)
-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From owner-SL-news  Mon Sep 19 16:41:24 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:51:43 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:51:30 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtPc-00040hC; Mon, 19 Sep 94 17:50 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27288 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:54:33 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11506; Mon, 19 Sep 1994 19:46:26 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:37 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtJj-00040hC; Mon, 19 Sep 94 17:44 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27185 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:48:36 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11477; Mon, 19 Sep 1994 19:42:16 -0500
Resent-Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
Resent-Message-Id: <199409200041.AA01594@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:29 -0500
Received: from tardis.union.edu by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:26 -0500
Received: by tardis.union.edu id AA28616
  (5.65c+/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Mon, 19 Sep 1994 20:41:24 -0400
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199409200041.AA28616@tardis.union.edu>
Subject: benchmarks
To: stat-lisp-news@umnstat
Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 849       
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>

I'd like to thank Jan Deleeuw for helping me figure out which version
of xlisp-stat, of the two I had de-binhexed, used the FPU built 
into the 68040 chip on my Mac Quadra 660av.  He sent me some old
timing results and I found my machine was roughly equilavent to
a DecStation 3100 (actually the 660av was a tad faster).  This
made me wonder.  Does anyone have a set of standard benchmarks for
lisp - xlisp -xlisp stat that would be good for comparing systems. 
Also, all these benchmarks, that were don with Jan's tester program
 were pre PowerPC and Pentium machines. 

I'm wondering how fast these machines are and how fast xlisp-stat
can be run.  (I first tried xlisp-stat on a MacPlus. Which is why 
I had such a hard time noticing the difference between the two
versions.)
-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From owner-SL-news  Mon Sep 19 16:41:24 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:57:12 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:56:58 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtUv-00040hC; Mon, 19 Sep 94 17:55 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id SAA27327 for <statlisp@statsci.com>; Mon, 19 Sep 1994 18:00:12 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11542; Mon, 19 Sep 1994 19:52:23 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:51:43 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:51:30 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtPc-00040hC; Mon, 19 Sep 94 17:50 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27288 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:54:33 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11506; Mon, 19 Sep 1994 19:46:26 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:37 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtJj-00040hC; Mon, 19 Sep 94 17:44 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27185 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:48:36 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11477; Mon, 19 Sep 1994 19:42:16 -0500
Resent-Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
Resent-Message-Id: <199409200041.AA01594@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:29 -0500
Received: from tardis.union.edu by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:26 -0500
Received: by tardis.union.edu id AA28616
  (5.65c+/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Mon, 19 Sep 1994 20:41:24 -0400
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199409200041.AA28616@tardis.union.edu>
Subject: benchmarks
To: stat-lisp-news@umnstat
Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 849       
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>

I'd like to thank Jan Deleeuw for helping me figure out which version
of xlisp-stat, of the two I had de-binhexed, used the FPU built 
into the 68040 chip on my Mac Quadra 660av.  He sent me some old
timing results and I found my machine was roughly equilavent to
a DecStation 3100 (actually the 660av was a tad faster).  This
made me wonder.  Does anyone have a set of standard benchmarks for
lisp - xlisp -xlisp stat that would be good for comparing systems. 
Also, all these benchmarks, that were don with Jan's tester program
 were pre PowerPC and Pentium machines. 

I'm wondering how fast these machines are and how fast xlisp-stat
can be run.  (I first tried xlisp-stat on a MacPlus. Which is why 
I had such a hard time noticing the difference between the two
versions.)
-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From owner-SL-news  Mon Sep 19 16:41:24 1994
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 20:00:00 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:59:52 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtXk-00040hC; Mon, 19 Sep 94 17:58 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11575; Mon, 19 Sep 1994 19:57:48 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:57:12 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:56:58 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtUv-00040hC; Mon, 19 Sep 94 17:55 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id SAA27327 for <statlisp@statsci.com>; Mon, 19 Sep 1994 18:00:12 -0700
Resent-From: owner-SL-news@umnstat
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11542; Mon, 19 Sep 1994 19:52:23 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:51:43 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:51:30 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtPc-00040hC; Mon, 19 Sep 94 17:50 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27288 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:54:33 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11506; Mon, 19 Sep 1994 19:46:26 -0500
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:37 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:45:25 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qmtJj-00040hC; Mon, 19 Sep 94 17:44 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id RAA27185 for <statlisp@statsci.com>; Mon, 19 Sep 1994 17:48:36 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA11477; Mon, 19 Sep 1994 19:42:16 -0500
Resent-Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
Resent-Message-Id: <199409200041.AA01594@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:29 -0500
Received: from tardis.union.edu by umnstat.stat.umn.edu; Mon, 19 Sep 1994 19:41:26 -0500
Received: by tardis.union.edu id AA28616
  (5.65c+/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Mon, 19 Sep 1994 20:41:24 -0400
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199409200041.AA28616@tardis.union.edu>
Subject: benchmarks
To: stat-lisp-news@umnstat
Date: Mon, 19 Sep 1994 20:41:24 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 849       
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>

I'd like to thank Jan Deleeuw for helping me figure out which version
of xlisp-stat, of the two I had de-binhexed, used the FPU built 
into the 68040 chip on my Mac Quadra 660av.  He sent me some old
timing results and I found my machine was roughly equilavent to
a DecStation 3100 (actually the 660av was a tad faster).  This
made me wonder.  Does anyone have a set of standard benchmarks for
lisp - xlisp -xlisp stat that would be good for comparing systems. 
Also, all these benchmarks, that were don with Jan's tester program
 were pre PowerPC and Pentium machines. 

I'm wondering how fast these machines are and how fast xlisp-stat
can be run.  (I first tried xlisp-stat on a MacPlus. Which is why 
I had such a hard time noticing the difference between the two
versions.)
-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From luke  Mon Sep 19 23:01:46 1994
Resent-Date: Tue, 20 Sep 1994 04:01:46 -0500
Resent-Message-Id: <199409200901.AA04617@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:55 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:51 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn14G-00040tC; Tue, 20 Sep 94 02:00 PDT
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA14790; Tue, 20 Sep 1994 04:01:47 -0500
Date: Tue, 20 Sep 1994 04:01:46 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409200901.AA11940@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:46 -0500
To: statlisp@statsci.com
Subject: mail problems
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

If there is someone managing this relay could you please contact me to
resolve some problems with the mailing list? It looks like your entry is
reflecting mailings back to umnstat resulting in multiple postings.

thanks

luke

From luke  Mon Sep 19 23:01:46 1994
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:26:04 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:25:59 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn1Rc-00040tC; Tue, 20 Sep 94 02:25 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id CAA01650 for <statlisp@statsci.com>; Tue, 20 Sep 1994 02:29:26 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA14854; Tue, 20 Sep 1994 04:23:10 -0500
Resent-Date: Tue, 20 Sep 1994 04:01:46 -0500
Resent-Message-Id: <199409200901.AA04617@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:55 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:51 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn14G-00040tC; Tue, 20 Sep 94 02:00 PDT
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA14790; Tue, 20 Sep 1994 04:01:47 -0500
Date: Tue, 20 Sep 1994 04:01:46 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409200901.AA11940@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:46 -0500
To: statlisp@statsci.com
Subject: mail problems
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

If there is someone managing this relay could you please contact me to
resolve some problems with the mailing list? It looks like your entry is
reflecting mailings back to umnstat resulting in multiple postings.

thanks

luke

From luke  Mon Sep 19 23:01:46 1994
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:28:07 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:28:03 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn1Tb-00040tC; Tue, 20 Sep 94 02:27 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA14871; Tue, 20 Sep 1994 04:26:51 -0500
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:26:04 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:25:59 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn1Rc-00040tC; Tue, 20 Sep 94 02:25 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id CAA01650 for <statlisp@statsci.com>; Tue, 20 Sep 1994 02:29:26 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA14854; Tue, 20 Sep 1994 04:23:10 -0500
Resent-Date: Tue, 20 Sep 1994 04:01:46 -0500
Resent-Message-Id: <199409200901.AA04617@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:55 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:51 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn14G-00040tC; Tue, 20 Sep 94 02:00 PDT
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA14790; Tue, 20 Sep 1994 04:01:47 -0500
Date: Tue, 20 Sep 1994 04:01:46 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409200901.AA11940@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:46 -0500
To: statlisp@statsci.com
Subject: mail problems
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

If there is someone managing this relay could you please contact me to
resolve some problems with the mailing list? It looks like your entry is
reflecting mailings back to umnstat resulting in multiple postings.

thanks

luke

From luke  Mon Sep 19 23:01:46 1994
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:31:44 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:31:39 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn1X6-00040tC; Tue, 20 Sep 94 02:30 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id CAA01674 for <statlisp@statsci.com>; Tue, 20 Sep 1994 02:35:06 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA14879; Tue, 20 Sep 1994 04:28:56 -0500
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:28:07 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:28:03 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn1Tb-00040tC; Tue, 20 Sep 94 02:27 PDT
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA14871; Tue, 20 Sep 1994 04:26:51 -0500
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:26:04 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:25:59 -0500
Received: from pdx1.i.net by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn1Rc-00040tC; Tue, 20 Sep 94 02:25 PDT
Received: from mail.unet.umn.edu (mail.unet.umn.edu [128.101.101.103]) by pdx1.i.net (8.6.9/8.6.9) with SMTP id CAA01650 for <statlisp@statsci.com>; Tue, 20 Sep 1994 02:29:26 -0700
Received: from umnstat.stat.umn.edu by mail.unet.umn.edu (5.65c)
	id AA14854; Tue, 20 Sep 1994 04:23:10 -0500
Resent-Date: Tue, 20 Sep 1994 04:01:46 -0500
Resent-Message-Id: <199409200901.AA04617@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:55 -0500
Received: from main.statsci.com by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:51 -0500
Received: from mail.unet.umn.edu by main.statsci.com with smtp
	(Smail3.1.28.1 #5) id m0qn14G-00040tC; Tue, 20 Sep 94 02:00 PDT
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA14790; Tue, 20 Sep 1994 04:01:47 -0500
Date: Tue, 20 Sep 1994 04:01:46 -0500
From: "Luke Tierney" <luke@umnstat>
Message-Id: <199409200901.AA11940@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 04:01:46 -0500
To: statlisp@statsci.com
Subject: mail problems
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news@umnstat
Resent-From: owner-SL-news@umnstat
Resent-To: SL-news-list@umnstat
Resent-Reply-To: "Luke Tierney" <luke@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke@umnstat>

If there is someone managing this relay could you please contact me to
resolve some problems with the mailing list? It looks like your entry is
reflecting mailings back to umnstat resulting in multiple postings.

thanks

luke

From luke  Tue Sep 20 03:46:16 1994
Resent-Date: Tue, 20 Sep 1994 08:46:16 -0500
Resent-Message-Id: <199409201346.AA13036@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 08:46:19 -0500
Date: Tue, 20 Sep 1994 08:46:16 -0500
From: "Luke Tierney" <luke>
Message-Id: <199409201346.AA13029@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 08:46:16 -0500
To: stat-lisp-news@umnstat
Subject: mailing list problems
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>


It looks like someone as statsci.com added a feedback to
stat-lisp-news to their local list alias, statlisp@statsci.com. That
caused messages to be sent to the list repeatedly. I have removed this
entry from the list, which should cure this problem.

If you are managing a local repeater alias, please be caraful to avoid
creating problems such as this.

luke


From luke  Tue Sep 20 04:19:19 1994
Resent-Date: Tue, 20 Sep 1994 09:19:19 -0500
Resent-Message-Id: <199409201419.AA13185@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 09:19:22 -0500
Date: Tue, 20 Sep 1994 09:19:19 -0500
From: "Luke Tierney" <luke>
Message-Id: <199409201419.AA13178@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 20 Sep 1994 09:19:19 -0500
To: stat-lisp-news@umnstat
Subject: Preliminary 32-bit WIndows version of XLISP-STAT
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>


A preliminary version of XLISP-STAT for Win32 is now available. It
should run under Windows NT on Intel processors or under Windows 3.1
with Win32s installed. The archive file for the Win32 version is
WXLS32ZP.EXE in pub/xlispstat/mswin on umnstat.stat.umn.edu.

This version removes limits on array sizes present in the 16 bit
version. Under Win32s it still has a rather small system stack size,
but the system stack size should be reasonable under Windows NT (I
would appreciate it if someone could test that -- I don't have access
to a Windows NT machine myself).

As in the 16-bit version, it is possible to call code in a DLL from
XLISP-STAT, but for the Win32 version the DLL has to be a 32-bit DLL.

The 32-bit version of XLISP-STAT requires Win32s to run on Windows
3.1. Version 1.1.5a of the Win32s software, the only version this
distribution has been tested with, is available from Microsoft's
anonymous ftp server ftp.microsoft.com in the file Win32s115a.Zip in
the /developr/win32dk/sdk-public directory. Once Win32s is installed,
assuming you need it, the installation process for the 32 bit version
is analogous to the process for the 16 bit version outlined above.

Luke Tierney
School of Statistics
University of Minnesota


From owner-SL-news  Thu Sep 22 12:19:18 1994
Resent-Date: Thu, 22 Sep 1994 19:19:18 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409230219.AA15759@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 22 Sep 1994 21:19:35 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Thu, 22 Sep 1994 21:19:27 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA26204; Thu, 22 Sep 94 19:19:21 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA12515; Thu, 22 Sep 94 19:19:19 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409230219.AA12515@galton.math.ucla.edu>
Subject: Xlisp-Stat
To: machten@tenon.com
Date: Thu, 22 Sep 1994 19:19:18 -0700 (PDT)
Cc: stat-lisp-news@umnstat (Xlisp List)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 781       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

I ported Xlisp-Stat to MachTen on the Mac (bertillon is a Quadra 800)
I'll post some timings later.

Just copy the tar.gz at
ftp://stat.umn.edu/pub/xlispstat/xlispstat-3-39.tar.gz

the run configure. There are two problems. Because of the 68000
configure thinks it is dealing with a sun3, so it puts fp68881
in the compiler flags. Just take that oput of the makefile and
replace -O by -O2.

Also, in the linking, the symbol __isnan is multiply defined
in libc.a and libm.a If you make a temp copy of libm.a without
isnan.o the link goes well.

That's it.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Thu Sep 22 13:28:49 1994
Resent-Date: Thu, 22 Sep 1994 20:28:49 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409230329.AA00299@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Thu, 22 Sep 1994 22:29:15 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Thu, 22 Sep 1994 22:29:12 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA26616; Thu, 22 Sep 94 20:28:51 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA12594; Thu, 22 Sep 94 20:28:49 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409230328.AA12594@galton.math.ucla.edu>
Subject: timings
To: stat-lisp-news@umnstat (Xlisp List), machten@tenon.com
Date: Thu, 22 Sep 1994 20:28:49 -0700 (PDT)
Cc: ucla-stat@math.ucla.edu (ucla-stat mailing list)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1205      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Here are some recent timings. This is to solve 100 eigenvector-eigenvalue
problems of order 20 in Xlisp-Stat. I give two runs. All machines have
virtually no other load.

machine   - type             - OS          - time - time 

bertillon - Quadra 800       - MachTen     - 27.20 27.28
bertillon - Quadra 800       - MacOS 7.1   - 16.95 17.40
quetelet  - Sun 470          - SunOS 4.1.3 - 12.70 12.57
laplace   - SparcCenter 1000 - Solaris 2.3 -  6.80  6.73
galton    - SparcStation 20  - SunOS 4.1.3 -  4.82  4.70
bertillon - PowerMac 8100    - MacOS 7.1   -  3.53  3.48

NB: the Quadra/Mac version is compiled with MPW C. Symantec's SC
would probably give better performance. The Sparc versions have
been compiled with gcc -O2, same for MachTen. The PowerMac is the
Quadra with a card, which means that a real PowerMac would be
10-20% faster. The Xlisp-Stat version for the PowerMac is an
unstable version compiled with PPCC, probably the newer compilers
would do even better.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From luke  Fri Sep 23 04:00:37 1994
Resent-Date: Fri, 23 Sep 1994 09:00:37 -0500
Resent-Message-Id: <199409231400.AA26037@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 23 Sep 1994 09:00:40 -0500
Date: Fri, 23 Sep 1994 09:00:37 -0500
From: "Luke Tierney" <luke>
Message-Id: <199409231400.AA26030@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 23 Sep 1994 09:00:37 -0500
To: stat-lisp-news@umnstat
Subject: upgrade to Win32 version of XLISP-STAT
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Luke Tierney" <luke>

I have put up a new Win32 version of XLISP-STAT on
umnstat.stat.umn.edu. There are two changes:

        I have managed to increase the system stack under Win32s to
        about 70K -- in the previous version it was only 20K.

        The icon should now show up properly in the program manager after
        running config.lsp.

luke

From owner-SL-news  Sat Sep 24 00:54:13 1994
Resent-Date: Sat, 24 Sep 1994 07:54:13 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409241454.AA08323@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 24 Sep 1994 09:54:22 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 24 Sep 1994 09:54:17 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA04086; Sat, 24 Sep 94 07:54:15 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA05523; Sat, 24 Sep 94 07:54:13 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409241454.AA05523@galton.math.ucla.edu>
Subject: timings
To: machten@tenon.com, stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Sat, 24 Sep 1994 07:54:13 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1034      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Here is some new info on the timings. I expect to get some figures
from others, and we are also doing a Gateway Pentium-90, and a
version of the benchmark in S-plus. Observe that my little program
is not exactly a test-suite, it merely looks at floating point
(not at consing, for instance).

The friendly folks at Tenon send me some tools & tips. As a result
the MachTen version in bertillon (Quadra 800) now runs much faster.
Times were 27.40 + 27.28, they are now 12.67 + 12.40, which is
close to quetelet, our Sun 470 server (between Sparc 1 and Sparc 2).

If gcc + MachTen can outperform MPW-C + MacOS, then gcc for MachTen
for PowerPC can perhaps do better than PPCC + MacOS as well. For
comparison, the MPW + MacOS times were 16.95 + 17.40, and the
PowerMac times 3.53 + 3.48. I still can't believe that chip.
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sat Sep 24 03:41:14 1994
Resent-Date: Sat, 24 Sep 1994 10:41:14 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409241741.AA08923@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 24 Sep 1994 12:41:25 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 24 Sep 1994 12:41:18 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA04714; Sat, 24 Sep 94 10:41:16 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA05981; Sat, 24 Sep 94 10:41:15 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409241741.AA05981@galton.math.ucla.edu>
Subject: xlisp for machten
To: machten@tenon.com, stat-lisp-news@umnstat (Xlisp List)
Date: Sat, 24 Sep 1994 10:41:14 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 594       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

The binary can now be ftp-ed from ftp.stat.ucla.edu,
~/pub/lisp/xlisp/xlisp-stat/systems/macintosh/machten
You have to get the xxx.lsp and xlisp.help files from
the main distribution, which sits one level higher in
the hierarchy. As I mentioned elsewhere, this version
is at least as fast on floating point as the MPW/MacOS
version, but of course you do need MachTen.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Sat Sep 24 10:08:14 1994
Resent-Date: Sat, 24 Sep 1994 17:08:14 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409250008.AA10011@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 24 Sep 1994 19:08:49 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Sat, 24 Sep 1994 19:08:41 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA07947; Sat, 24 Sep 94 17:08:16 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA06422; Sat, 24 Sep 94 17:08:14 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409250008.AA06422@galton.math.ucla.edu>
Subject: more xlisp-stat timings
To: stat-lisp-news@umnstat (Xlisp List), machten@tenon.com,
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Sat, 24 Sep 1994 17:08:14 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1491      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

This is the nine queens problem (put nine queens on the chess board
in such a way that none of them can attack any other). Find all
solutions. This is very different from the eigen-benchmark (no
floating point, lots of list manipulation).

Observe this is specmark 022.li (cf Dowd, High Performance Computing,
p 269).

Configurations

A: Quadra 800, 24 MB, XlispStat 2.1 3.37b compiled with MPW-C
B: Same machine, PowerMac Card on, compiled with PPCC
C: Same machine, running MachTen 2.1.1E, compiled with gcc 2.6.0
D: Sparc 20, 32 MB, compiled with gcc 2.6.0

A0 loads queens.lsp from the xlisp2.1g distributions, A1 first
byte-compiles to queens.fsl, then loads (into a fresh process).
Same for B, etc. The compiler for B does not work reliably, though
(stack problems), observe that B is an unstable version I use
to get an idea on how fast a proper PPC version would run.

A0 : 198.87(0.18)     A1 :  42.27(0.00)
B0 :  83.33(0.88)     B1 :  ???????????
C0 : 213.85(0.30)     C1 :  31.77(0.00)
D0 :  91.65(0.15)     D1 :   8.62(0.00)

The small time in parentheses is garbage collection time. Conclusions
are not very different from the floating point benchmark. We need a
stable PPC Xlisp-Stat, or a PPC MachTen. Both configurations will
outperform a Sparc 20.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news  Wed Sep 28 18:42:02 1994
Resent-Date: Wed, 28 Sep 1994 19:42:02 -0100
Resent-From: owner-SL-news
Resent-Message-Id: <199409281842.AA09882@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Wed, 28 Sep 1994 13:42:13 -0500
Received: from ds.cised.unina.it by umnstat.stat.umn.edu; Wed, 28 Sep 1994 13:42:08 -0500
Received: by ds.cised.unina.it (5.65/DEC-Ultrix/4.3)
	id AA14029; Wed, 28 Sep 1994 19:42:02 -0100
Date: Wed, 28 Sep 1994 19:42:02 -0100
From: pagnotta@ds.cised.unina.it (pagnotta stefano m. dip.mat. 2 statistica)
Message-Id: <9409282042.AA14029@ds.cised.unina.it>
To: stat-lisp-news@umnstat
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: pagnotta@ds.cised.unina.it (pagnotta stefano m. dip.mat. 2 statistica)

;
; Hi all,
; you find enclosed a modified version of the 
;
; (defmeth scatterplot-proto :add-boxplot ...,
; 
; taken from the file graph2.lsp of the WXLS version 2.1R3 Alpha 6,
; for MS-Windows.
;
; The modification allows to detect outliers in univariate sample.
; The bounds low and high are now evaluated according to the rule in 
; U.R.E.D.A. (Hoaglin, Mosteller & Tukey, 1983 - Wiley) page 60. 
; The outlying points are drawn.
;
; Stefano M. Pagnotta
; Dept.of Math.Stat.
; University of Naples Federico II - Italy.


;;;;
;;;;
;;;; Boxplot  Functions
;;;; sept 28, 1994.
;;;;

(defmeth scatterplot-proto :add-boxplot (y &key (x 1.0) (width 1.0) (draw t))
  (unless (= 2 (send self :num-variables)) (error "only works for 2D plots"))
  (let* ((half-box (* 0.4 width))
         (half-foot (* 0.1 width))
         (fiv (fivnum y))
         (q1 (select fiv 1))
         (med (select fiv 2))
         (q3 (select fiv 3))
         (dq (* 1.5 (- q3 q1)))                    
         (low (- q1 dq))                           
         (low (min (select y (which (< low y)))))  
         (high (+ q3 dq))                          
         (high (max (select y (which (> high y)))))
         (below (which (> low y)))                 
         (lsuspect (if below (select y below)))    
         (above (which (< high y)))
         (hsuspect (if above (select y above))))
    (send self :plotline (- x half-foot) low  (+ x half-foot) low  nil)
    (send self :plotline (- x half-foot) high (+ x half-foot) high nil)
    (send self :plotline x low x q1   nil)
    (send self :plotline x q3  x high nil)
    (send self :plotline (- x half-box) q1  (+ x half-box) q1  nil)
    (send self :plotline (- x half-box) med (+ x half-box) med nil)
    (send self :plotline (- x half-box) q3  (+ x half-box) q3  nil)
    (send self :plotline (- x half-box) q1  (- x half-box) q3  nil)
    (send self :plotline (+ x half-box) q1  (+ x half-box) q3  nil)
    (if hsuspect (send self :add-points (repeat x (length hsuspect)) hsuspect))
    (if lsuspect (send self :add-points (repeat x (length lsuspect)) lsuspect))))

From owner-SL-news  Thu Sep 29 17:09:05 1994
Resent-Date: Fri, 30 Sep 1994 00:09:05 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409300709.AA19326@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 30 Sep 1994 02:09:37 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Fri, 30 Sep 1994 02:09:32 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA10020; Fri, 30 Sep 94 00:09:07 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA09520; Fri, 30 Sep 94 00:09:05 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409300709.AA09520@galton.math.ucla.edu>
Subject: Optimizing Xlisp-Stat for MachTen
To: stat-lisp-news@umnstat (Xlisp List), machten@tenon.com
Date: Fri, 30 Sep 1994 00:09:05 -0700 (PDT)
Cc: ucla-stat@math.ucla.edu (ucla-stat mailing list)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1370      
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

We have some new timings for the floating point benchmark. The
DEC Alpha 3000 has roughly the same speed as the PowerMac, we
have timed two Pentiums but found some discrepancies. They have,
on the average, Sparc 10 speed, it seems. We also timed 
the same benchmark programmed in S-plus on a Sparc 20. It is
twice as slow as Xlisp-Stat on the same machine. This is
remarkable since almost all the computing is done in C.
We have not programmed the nine queens in S yet, but it seems
that there the differences will be even larger (especially
with the compiled version, which is already 5-10 times
faster as the lisp-code version). 

We recompiled Xlisp-Stat on MachTen with gcc-2.6.0, gas 2.3,
and with compiler switches -O3 -m68040. This resulted in a
speedup of 20% compared to -O2 -m68020 -m68881. The MachTen
version is now 20% faster than our Sun 470, and 40% faster
than the MPW-C version under MacOS with the switches set
to opt=full, and also 68020-68881. Of course the PowerMac
version is still three times as fast as our top MachTen
contender. The -O3 -m68040 switches dont do anything for the
nine queens problem (not surprisingly).

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From n2ell!pcolsen@cs.UMD.EDU  Thu Sep 29 17:09:05 1994
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu; Fri, 30 Sep 1994 04:58:05 -0500
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.9/UMIACS-0.9/04-05-88)
	id FAA03757; Fri, 30 Sep 1994 05:58:04 -0400
Resent-Date: Fri, 30 Sep 1994 05:58:04 -0400
Message-Id: <199409300958.FAA03757@mimsy.cs.UMD.EDU>
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0qqeXw-0004osC; Fri, 30 Sep 94 05:46 EDT
Resent-Message-Id: <m0qqeXw-0004osC@n2ell.uucp>
Resent-From: pcolsen@cs.UMD.EDU (Peter C. Olsen P.E.)
To: k.trabue/LantAt@cgsmtp.comdt.uscg.mil,
        MIKE_BOHLMAN++SEAMAIL+dADR%SLOPR_6733273@mcimail.com
Resent-To: SL-news-list@umnstat
Resent-Reply-To: Jan Deleeuw <math.ucla.edu!deleeuw@super.super.org>
From: Jan Deleeuw <math.ucla.edu!deleeuw@super.super.org>
To: stat-lisp-news@umnstat (Xlisp List), machten@tenon.com
Cc: ucla-stat@math.ucla.edu (ucla-stat mailing list)
Subject: Optimizing Xlisp-Stat for MachTen
Date: Fri, 30 Sep 1994 00:09:05 -0700 (PDT)


We have some new timings for the floating point benchmark. The
DEC Alpha 3000 has roughly the same speed as the PowerMac, we
have timed two Pentiums but found some discrepancies. They have,
on the average, Sparc 10 speed, it seems. We also timed 
the same benchmark programmed in S-plus on a Sparc 20. It is
twice as slow as Xlisp-Stat on the same machine. This is
remarkable since almost all the computing is done in C.
We have not programmed the nine queens in S yet, but it seems
that there the differences will be even larger (especially
with the compiled version, which is already 5-10 times
faster as the lisp-code version). 

We recompiled Xlisp-Stat on MachTen with gcc-2.6.0, gas 2.3,
and with compiler switches -O3 -m68040. This resulted in a
speedup of 20% compared to -O2 -m68020 -m68881. The MachTen
version is now 20% faster than our Sun 470, and 40% faster
than the MPW-C version under MacOS with the switches set
to opt=full, and also 68020-68881. Of course the PowerMac
version is still three times as fast as our top MachTen
contender. The -O3 -m68040 switches dont do anything for the
nine queens problem (not surprisingly).

- --- Jan
- -- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  
------- end -------

From owner-SL-news  Fri Sep 30 04:18:45 1994
Resent-Date: Fri, 30 Sep 1994 11:18:45 -0700 (PDT)
Resent-From: owner-SL-news
Resent-Message-Id: <199409301818.AA22022@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 30 Sep 1994 13:18:53 -0500
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu; Fri, 30 Sep 1994 13:18:49 -0500
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA24630; Fri, 30 Sep 94 11:18:47 PDT
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA14355; Fri, 30 Sep 94 11:18:46 PDT
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9409301818.AA14355@galton.math.ucla.edu>
Subject: powermac
To: stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Fri, 30 Sep 1994 11:18:45 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 728       
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Only relevant if you want to run Xlisp-Stat on a PowerMac. Your options
are

(1) Run the 68000 version of Xlisp-Stat which does not use require
the coprocessor. This is slow as molasses.
(2) Run the PPC native version from ftp.stat.ucla.edu. This is
unstable, and several things are disabled.
(3) Run the 68020/68881 version of Xlisp-Stat, and install the
SoftFPU cdev. I have put it in ~/pub/lisp/xlisp/xlisp-stat/systems/
macintosh/ppc.

For the time being (3) will be best under most circumstances.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From bjm  Fri Sep 30 09:12:56 1994
Resent-Date: Fri, 30 Sep 94 14:12:56 -0500
Resent-Message-Id: <199409301913.AA07878@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 30 Sep 1994 14:13:05 -0500
Message-Id: <199409301912.AA07867@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 30 Sep 1994 14:12:58 -0500
To: Jan Deleeuw <deleeuw@math.ucla.edu>
Cc: stat-lisp-news@umnstat (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Subject: Re: powermac 
In-Reply-To: Your message of "Fri, 30 Sep 94 11:18:45 PDT."
             <9409301818.AA14355@galton.math.ucla.edu> 
Date: Fri, 30 Sep 94 14:12:56 -0500
From: "Bret J. Musser" <bjm@umnstat>
Errors-To: owner-SL-news
Resent-From: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: "Bret J. Musser" <bjm@umnstat>

In message <9409301818.AA14355@galton.math.ucla.edu> you wrote:
>Only relevant if you want to run Xlisp-Stat on a PowerMac. Your options
>are
>
>(1) Run the 68000 version of Xlisp-Stat which does not use require
>the coprocessor. This is slow as molasses.
>(2) Run the PPC native version from ftp.stat.ucla.edu. This is
>unstable, and several things are disabled.
>(3) Run the 68020/68881 version of Xlisp-Stat, and install the
>SoftFPU cdev. I have put it in ~/pub/lisp/xlisp/xlisp-stat/systems/
>macintosh/ppc.
>
>For the time being (3) will be best under most circumstances.


I've tried running all three options.  The first I've found to be the
fastest, beating the SoftFPU emulation (after all, this is an emulation of a
68881 running in 68020 code which is being emulated...).   However, the 
latest release of SoftFPU, which is payware, does run in native mode and may
be faster than option (1). 

Mr. Deleeuw's compilation of Xlisp-Stat for the PPC I've found to be
extremely unstable and forced me to reboot frequently.  That is worse than
running slow.

Your mileage may vary,

Bret Musser


From owner-SL-news  Sat Oct  1 15:59:13 1994
Resent-Date: Sat, 1 Oct 1994 09:59:13 +0600
Resent-From: owner-SL-news
Resent-Message-Id: <199410011459.AA26112@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Sat, 1 Oct 1994 09:59:04 -0500
Received: from vuse.vanderbilt.edu (vuse.vuse.vanderbilt.edu) by umnstat.stat.umn.edu; Sat, 1 Oct 1994 09:58:56 -0500
Received: from aim.vuse by vuse.vanderbilt.edu (8.6.9/SMI-4.1/VUSE-1.12)
	id JAA16136; Sat, 1 Oct 1994 09:58:54 -0500
Received: by aim.vuse (5.0/SMI-SVR4)
	id AA06630; Sat, 1 Oct 1994 09:59:13 +0600
Date: Sat, 1 Oct 1994 09:59:13 +0600
From: dfisher@vuse.vanderbilt.edu (Douglas H. Fisher)
Message-Id: <9410011459.AA06630@aim.vuse>
To: stat-lisp-news@umnstat
Subject: AI/Statistics Workshop
Content-Length: 16060
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: dfisher@vuse.vanderbilt.edu (Douglas H. Fisher)

  
              Preliminary Call for Participation

               Fifth International Workshop on
           ARTIFICIAL INTELLIGENCE and STATISTICS

                    January 4-7, 1995
                 Ft. Lauderdale, Florida


TECHNICAL and TUTORIAL PROGRAM:
This is the fifth in a series of workshops that has brought 
together researchers in Artificial Intelligence and in
Statistics to discuss problems of mutual interest. To 
encourage interaction and a broad exchange of ideas, there
will be 20 discussion papers in single session meetings over 
three days (Jan. 5-7). Two poster sessions will provide the 
means for presenting and discussing the remaining research 
papers. Attendance at the workshop is *not* limited to paper 
presenters.

The three days of research presentations will be preceded by 
a day of tutorials (Jan. 4). The tutorial topics, presenters, 
and approximate times are:

 (1) Machine Learning                         9:00AM - 12:15PM
     (Dr. David Aha, Naval Research Lab)                

 (2) Statistical Methods for Inducing         9:00AM - 12:15PM   
        Models from Data   
     (Prof. Steffen Lauritzen, Aalborg U.)

 (3) Probabilistic Models of Causality        2:00PM - 5:15PM  
     (Prof. Glenn Shafer, Rutgers U.)

 (4) Statistical Models for Function          2:00PM - 5:15PM
        Estimation and Classification
     (Prof. Trevor Hastie, Stanford U.)

Notes prepared by the tutorial presenters will be made available
at the Workshop. 

LOCATION:
The 1995 Workshop will be held at 

           Pier Sixty Six Resort & Marina 
           2301 SE 17th Street Causeway
           Fort Lauderdale, Florida, 33316
           USA.

           Phone: 800-327-3796 (outside Florida)
                  305-525-6666
           Fax  : 305-728-3541

The hotel is a 22 acre resort located on the intracoastal waterway.
Available amenities include two pools, a 40 person hydrotherapy 
pool, spa, tennis courts, a children's activity club, seven 
restaurants and lounges, and water shuttle service to the beach. 

The Hotel is most conveniently reached from Fort Lauderdale 
International Airport, which is about 5-10 minutes by car/cab.
The Hotel is approximately 45-60 minutes by car from Miami 
International Airport.

The Resort is holding a block of rooms at the rate of $95 US 
dollars (for single/double) until Dec. 10, 1994.  Reservations 
should be made before this date. The block is held under the 
name `SOCIETY for ARTIficial Intelligence and Statistics' 
(or SOCIETY ARTI).


REGISTRATION:
Registration for the Technical Program (plenary and poster
sessions) includes a proceedings of papers submitted by authors,
continental breakfasts each day of the technical program, 
and tentatively, two lunches and one dinner. The Workshop 
offers student rates and an early-registration discount. 
Registration rates and instructions can be found on the 
Registration Form at the end of this Call. Registration 
for tutorials can also be made in advance using the 
Registration Form.


PROGRAM COMMITTEE:

General Chair:    D. Fisher             Vanderbilt U., USA
Program Chair:    H. Lenz               Free U. Berlin, Germany
Members:          W. Buntine            NASA (Ames), USA
                  J. Catlett            AT&T Bell Labs, USA
                  P. Cheeseman          NASA (Ames), USA
                  P. Cohen              U. of Mass., USA 
                  D. Draper             U. of Bath, UK
                  Wm. Dumouchel         Columbia U., USA
                  A. Gammerman          U. of London, UK
                  D. J. Hand            Open U., UK
                  P. Hietala            U. Tampere, Finland
                  R. Kruse              TU Braunschweig, Germany
                  S. Lauritzen          Aalborg U., Denmark
                  W. Oldford            U. of Waterloo, Canada
                  J. Pearl              UCLA, USA
                  D. Pregibon           AT&T Bell Labs, USA
                  E. Roedel             Humboldt U., Germany
                  G. Shafer             Rutgers U., USA
                  P. Smyth              JPL, USA
Tutorial Chair:   P. Shenoy             U. Kansas, USA


MORE INFORMATION:
For more information write dfisher@vuse.vanderbilt.edu
or call 615-343-4111.


SPONSORS: Society for Artificial Intelligence and Statistics
          International Association for Statistical Computing


                            ***********


                 Papers accepted for Technical Program

                    Fifth International Workshop on
                       Artificial Intelligence
                                and
                             Statistics



                          PLENARY PAPERS


Almond, Schimert (MathSoft)    Missing data models as meta-data 

Brent, Murthy, Lundberg        Minimum description length induction
       (John Hopkins U)           for discovering morphemic suffixes

Buntine (NASA Ames)            Software for data analysis with
                                  graphical models: basic tools

Chickering, Geiger, Heckerman  Learning Bayesian networks: search
       (MicroSoft)                methods and experimental results

Cohen, Gregory, Ballesteros,   Two algorithms for inducing structural
       St Amant (U Mass)          equation models from data

Cooper (U Pitt)                Causal discovery from observational
                                  data in the presence of selection
                                  bias

Cox (US West)                  Using causal knowledge to learn more
                                  useful decision rules from data 

Decatur (Harvard U)            Learning in hybrid noise environments
                                  using statistical queries

Elder (Rice U)                 Heuristic search for model structure

Gebhardt, Kruse                Learning possibilistic networks from data
    (U Braunschweig)                   

Kasahara, Ishikawa,            Viewpoint-based measurement of semantic
      Matsuzawa, Kawaoka          similarity between words 
      (Nippon TT)                  

Lubinsky (U Witwatersrand SA)  Structured interpretable regression

Madigan, Almond (U Washington) Test selection strategies for belief
                                  networks

Malvestuto (U L'Aquila, IT)    Derivation DAGs for inferring
                                  interaction models

Merz (U Cal Irvine)            Dynamic learning bias selection 

Pearl (UCLA)                   A causal calculus for statistical
                                  research with applications to
                                  observational and experimental
                                  studies

Riddle, Frenedo, Newman        Framework for a generic knowledge
       (Boeing)                   discovery tool 

Shafer, Kogan, Spirtes         A generalization of the Tetrad
        (Rutgers)                  representation theorem
                                       
St Amant, Cohen (U Mass)       Preliminary design for an EDA assistant

Yao, Tritchler (U Toronto)     Likelihood-based causal inference




                     POSTER PAPERS

        
Aha, Bankert (NRL)             A comparative evaluation of
                                  sequential feature selection
                                  algorithms

Ali, Brunk, Pazzani            Learning multiple relational rule-based
      (U Cal Irvine)              models

Almond (MathSoft)              Hypergraph grammars for knowledge-based
                                  model construction 

Anderson, Carlson, Westbrook   Tools for analyzing AI programs
      Hart, Cohen (U Mass)         

Bergman, Rivest (MIT)          Picking the best expert from a sequence

Blau (U Rochester)             Ploxoma: Test-bed for uncertain
                                  inference 

Breese, Heckerman              Probabilistic case-based reasoning
       (MicroSoft)                   

Burke (U Nevada)               Comparing the prediction accuracy of
                                  statistical models and artificial
                                  neural networks in breast cancer

Catlett (ATT)                  Tailoring rulesets to misclassification
                                  cost

Chen, Yeh                      Predicting stock returns with genetic
      (National Chengchi U)       programming 

Cheng (U Cincinnati)           Analysis and Application of the
                                  Generalized Mean-Shift Process

Cozman, Krotkov (CMU)          Truncated Gaussians as tolerance sets

Cunningham (U Waikato)         Textual data mining

De Vel, Li, Coomans            Non-Linear dimensionality reduction:
      (U James Cook, NZ)          A comparative performance study 


DuMouchel, Friedman, Johnson   Natural language processing of
      Hripcsak (Columbia U)       radiology reports 

Esposito, Malerba, Semeraro    A further study of pruning methods in
      (U degli Studi, IT)         decision tree induction

Feelders, Verkooijen           Which method learns most from the data?
       (U Twente, Netherlands)

Franz (CMU)                    Classifying new words for robust
                                  parsing

Gelsema (Erasmus U,            Abductive reasoning in Bayesian belief 
       The Netherlands)           networks using a genetic algorithm

Harner, Galfalvy               Omega-Stat: An environment for 
        (West Virginia U)         implementing intelligent modeling 
                                  strategies 

Heckerman, Shachter            A decision-based view of causality
       (MicroSoft)

Howe (Colorado St U)           Finding dependencies in event streams
                                  using local search

Jenzarli (U Tampa)             Solving influence diagrams using
                                  Gibbs sampling 

John (Stanford U)              Robust linear discriminant trees

Ketterlin, Gancarski, Korczak  Hierarchical clustering of composite
       (U Louis Pasteur)          objects with a variable number of
                                  components

Kim (Korea Adv. Inst. of Sci.  An approach to fitting large influence
      and Eng.)                   diagrams

Kim, Moon (Syracuse U)         Modeling life time data by neural
                                  networks 

Kloesgen (German Nat. Rsch.)   Learning from data: Pattern evaluations
                                  and search strategies

Larranaga, Murga, Poza,        Structure learning of Bayesian networks 
       Kuijpers (U Basque,        by hybrid genetic algorithms
       Spain)

Lekuona, Lacruz, Lasala        Graphical models for dynamic systems
       (U de Zaragoza, Spain)

Liu (U Kansas)                 Propagation of Gaussian belief
                                  functions 

Martin (U Cal, Irvine)         A hypergeometric null hypothesis
                                  probability test for feature
                                     selection and stopping 

Martin (U Cal, Irvine)         Evaluating and comparing classifiers:
                                  Complexity measures

Murthy (John Hopkins U)        Statistical preprocessing of
                                  decision trees

Neufeld, Adams, Choy, Philip,  Part-of-speech tagging from small
        Tawfik (U Saskatchewan)   data sets

Oates, Gregory, Cohen (U Mass) Detecting complex dependencies in
                                  categorical data

Pazzani (U Cal Irvine)         Searching for attribute dependencies
                                  in Bayesian classifiers

Provan, Singh (Inst. for       Learning ``Predictively-Optimal''
      Decision Systems Res.)      Bayesian Networks 

Risius, Seidelmann             Combining statistics and AI in the
      (Hahn-Meitner Inst)         optimization of semiconductor films
                                     for solar cells

Shenoy (U Kansas)              Representing and solving asymmetric
                                  decision problems using valuation
                                  networks

Srkantan, Srihari              Data representations in learning
       (SUNY Buffalo) 

Sun, Qiu, Cox (US West)        A hill-climbing approach to construct
                                  near optimal decision trees

Valtorta (U South Carolina)    MENTOR: A Bayesian model for prediction
                                  and intervention in mental
                                  retardation 

Young, Lubinsky (UNC)          Learning from data by guiding the
                                  analyst: On the representation, use,
                                  and creation of visual statistical
                                  strategies 


                            ***********


                         Registration Form

                    Fifth International Workshop on
                       Artificial Intelligence
                                and
                             Statistics
            

Participants may register on site. To register in advance of 
the Workshop send this form and a check (in US dollars) made 
to the order of **Society for Artificial Intelligence and 
Statistics** in the appropriate amount to:

    Doug Fisher
    Department of Computer Science
    Box 1679, Station B
    Vanderbilt University
    Nashville, Tennessee  37235
    USA

Advance registration discounts apply if registration is received
by Dec. 1, 1994.


Name: ________________________________________

Affiliation: _________________________________

Phone: _______________________________________

Fax: _________________________________________

Email: _______________________________________

Address: _____________________________________

         _____________________________________

         _____________________________________


Technical Program -- check one:

  ____   Technical Program (regular, by Dec. 1, 1994):        $245
  
  ____   Technical Program (student, by Dec. 1, 1994):        $155

  ____   Technical Program (regular, after Dec. 1, 1994):     $295
   
  ____   Technical Program (student, after Dec. 1, 1994):     $195


Technical Program Subtotal:                                   $____ 


Tutorial Program -- check applicable tutorials, if any.
                    Note that the tutorial times may conflict;
                    to avoid conflict at most one selection
                    from (1) and (2), and one selection from
                    (3) and (4) may be made.


  ____  (1) Machine Learning  

                    ____ (regular, by Dec. 1):                $ 70

                    ____ (student, by Dec. 1):                $ 45

                    ____ (regular, after Dec. 1):             $ 80

                    ____ (student, after Dec. 1):             $ 55


  ____  (2) Statistical Methods for Inducing Models from Data

                    ____ (regular, by Dec. 1):                $ 70

                    ____ (student, by Dec. 1):                $ 45

                    ____ (regular, after Dec. 1):             $ 80

                    ____ (student, after Dec. 1):             $ 55


  ____  (3) Probabilistic Models of Causality

                    ____ (regular, by Dec. 1):                $ 70

                    ____ (student, by Dec. 1):                $ 45

                    ____ (regular, after Dec. 1):             $ 80

                    ____ (student, after Dec. 1):             $ 55


  ____  (4) Statistical Models for Function Estimation and Classification 

                    ____ (regular, by Dec. 1):                $ 70

                    ____ (student, by Dec. 1):                $ 45

                    ____ (regular, after Dec. 1):             $ 80

                    ____ (student, after Dec. 1):             $ 55


Tutorial Program Subtotal:                                    $____


Technical and Tutorial Total:                                 $____



                            ***********





From owner-SL-news  Fri Oct 14 10:04:00 1994
Resent-Date: Fri, 14 Oct 94 16:01:38 MET
Resent-From: owner-SL-news
Resent-Message-Id: <199410141504.AA03018@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 14 Oct 1994 10:04:00 -0500
Message-Id: <199410141503.AA03011@umnstat.stat.umn.edu>
Received: from halley.upf.es by umnstat.stat.umn.edu; Fri, 14 Oct 1994 10:03:52 -0500
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA13457; Fri, 14 Oct 94 16:11:58 +0100
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA05798; Fri, 14 Oct 94 16:01:39 +0100
From: Frederic Udina <udina@upf.es>
Subject: testing
To: stat-lisp-news@umnstat (lisp stat list)
Date: Fri, 14 Oct 94 16:01:38 MET
Mailer: Elm [revision: 70.85]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

sorry but I have the feeling to be disconnected form the xlisp-stat
list.

Are you still there?

Please just discard this e-mail

--
Frederic Udina

From owner-SL-news  Fri Oct 14 12:55:27 1994
Resent-Date: Fri, 14 Oct 94 18:22:37 MET
Resent-From: owner-SL-news
Resent-Message-Id: <199410141755.AA04026@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Fri, 14 Oct 1994 12:55:27 -0500
Message-Id: <199410141755.AA04012@umnstat.stat.umn.edu>
Received: from halley.upf.es by umnstat.stat.umn.edu; Fri, 14 Oct 1994 12:55:08 -0500
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA14341; Fri, 14 Oct 94 18:32:57 +0100
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA06036; Fri, 14 Oct 94 18:22:38 +0100
From: Frederic Udina <udina@upf.es>
Subject: enjoy xlisp-stat
To: stat-lisp-news@umnstat (lisp stat list)
Date: Fri, 14 Oct 94 18:22:37 MET
Mailer: Elm [revision: 70.85]
Errors-To: owner-SL-news
Resent-To: SL-news-list
Resent-Reply-To: Frederic Udina <udina@upf.es>

So,
thinking about how to explain to our students the difference between
mean and median, and how to show the robustness of these statistics, 
XLISP-STAT has been useful: the program below has been written in a
really short time.

Enjoy it, is pure XLISP-STAT.

--
Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |        voice: 34 - 3 - 542 17 56
Universitat Pompeu Fabra            |          fax: 34 - 3 - 542 17 46
       Balmes 132                   |       e-mail: udina@upf.es      
       08008 Barcelona              |    appleLink: spa0172           
       SPAIN                        |     Servicom: sva00484
                       Office #610, 6th floor, old Balmes  
___________________________________/_\_________________________________



(defun meanmedian (&optional (data (exp (normal-rand 25))))
"Arg: optional DATA, a list of numbers.
A graph window will appear depicting the data points toghether 
with the mean and the median. 
You can move the points or add new points (see mouse mode in the menu)
and watch the central statistics changing."
(let* ((gr (send graph-proto :new 2
                 :title "Mean and median"
                 :show nil))
       (mitj (mean data))
       (fn (fivnum data)))
  (send gr :add-slot 'data)
  (send gr :add-slot 'mime)
  (send gr :add-slot 'prev-mime)
  
  (defmeth gr :data (&optional (dt nil set))
    (when set
          (setf (slot-value 'data) dt))
    (when (setf dt (slot-value 'data))
          (let ((mitj (mean dt))
                (med (nth 2 (fivnum dt))))
            (setf (slot-value 'prev-mime) (slot-value 'mime))
            (setf (slot-value 'mime) (list mitj med))))
    (slot-value 'data))
  (defmeth gr :do-point-moving (x y a b)
    (let ((p (send self :drag-point x y :draw nil)))
      (when p 
            (let* ((pts (send self :point-coordinate
                              0 (iseq (send self :num-points)))))
              (send self :point-coordinate
                    1 (iseq (send self :num-points)) 0)
              (send self :data pts))
            (send self :redraw))))
  (defmeth gr :do-add-point (x y m1 m2)
    (let* (
           (xy (send self :canvas-to-real x y))
           (num (send self :num-points))
           (there-was-selection (send self :selection))
           )
      (send self :add-points (list (list (nth 0 xy)) '(0)))
      (send self :point-symbol num 'X)
      (if there-was-selection (send self :point-selected num t))
      (send self :data (send self :point-coordinate
                             0 (iseq (send self :num-points))))
      (send self :redraw)
      ))
  (defmeth gr :redraw ()
    (flet ((expand-ival (bounds &optional (factor 1.5))
                        (let* ((mid (mean bounds))
                               (wd (second (- bounds mid))))
                          (list (- mid (* factor wd))
                                (+ mid (* factor wd))))))
          (let* ((dt (send self :slot-value 'data))
                 (mitj (first (slot-value 'mime)))
                 (med (second (slot-value 'mime)))
                 (minmax (list (min dt) (max dt)))
                 (meanlabel (send self :real-to-canvas mitj 0.45))
                 (medlabel (send self :real-to-canvas med 0.25)))
            (send self :clear-lines)
            (send self :add-lines (list (list mitj mitj)
                                        (list -0.3 0.5)))
            (send self :add-lines (list (list med med)
                                        (list -0.1 0.3)))
            (send self :add-lines (list (expand-ival minmax) '(0 0)))
            (mapcar #'(lambda (pt) (send self :add-lines
                                         (list (list pt pt)
                                               '(-0.05 0.05))))
                    dt)
            (apply #'send self :draw-string "mean" meanlabel)
            (apply #'send self :draw-string "median" medlabel)
            (when (slot-value 'prev-mime)
                  (unless (= mitj (first (slot-value 'prev-mime)))
                          (setf mitj (first (slot-value 'prev-mime)))
                          (send self :add-lines (list (list mitj mitj)
                                                      (list -0.3 0.5))
                                :type 'dashed))
                  (unless (= med (second (slot-value 'prev-mime)))
                          (setf med (second (slot-value 'prev-mime)))
                          (send self :add-lines (list (list med med)
                                                      (list -0.1 0.3))
                                :type 'dashed))))))
        
        (send gr :data data)
        (send gr :add-points (list data (repeat 0 (length data))))
        (send gr :add-mouse-mode 'point-moving
              :title "Point moving"
              :cursor 'finger
              :click :do-point-moving)
        (unless (member 'add-point (send gr :mouse-modes))
                (send gr :add-mouse-mode 'add-points
                      :title "Add new points"
                      :cursor 'finger
                      :click :do-add-point))
        (send gr :adjust-to-data)
        (send gr :show-window)
        (send gr :adjust-to-data)
        (send gr :mouse-mode 'point-moving)
        gr))



From owner-SL-news@umnstat.stat.umn.edu Tue Oct 25 16:16:57 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA12385; Tue, 25 Oct 1994 16:16:57 -0500
Resent-Date: Tue, 25 Oct 94 15:47:47 EDT
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from kodak.com by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA12378; Tue, 25 Oct 1994 16:16:34 -0500
Return-Path: <luh700@gosset.kodak.com>
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA13326; Tue, 25 Oct 94 17:16:24 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA12952; Tue, 25 Oct 94 15:47:50 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA10879; Tue, 25 Oct 94 15:47:47 EDT
Date: Tue, 25 Oct 94 15:47:47 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9410251947.AA10879@gosset.kodak.com>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Use of :add-function
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


Could someone please send me an example of the :add-funtion
message that would plot say a quadratic regression line to some
x,y data?  This is discussed on page 292 of the Lisp-Stat text,
but I can't get it to work properly.  It says, "The :add-function
message takes a function of one real arguement, two real numbers
representing lower and upper bounds on an interval, and a keyword
arguement specifying a number of points."  When I tried what I 
thought it said, I got a key value missing error message, and when
I stuck in another number, I got a line but not the correct one.
  Would appreciate any aid!  Thanks!


Jeffrey D. Morris
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205

morris@kodak.com


From owner-SL-news@umnstat.stat.umn.edu Wed Oct 26 08:20:55 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA15405; Wed, 26 Oct 1994 08:20:55 -0500
Resent-Date: Wed, 26 Oct 94 09:18:15 EDT
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from [150.220.251.69] by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA15399; Wed, 26 Oct 1994 08:20:27 -0500
Return-Path: <luh700@gosset.kodak.com>
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA03978; Wed, 26 Oct 94 09:20:28 -0400
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA15020; Wed, 26 Oct 94 09:18:20 -0400
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA11068; Wed, 26 Oct 94 09:18:15 EDT
Date: Wed, 26 Oct 94 09:18:15 EDT
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9410261318.AA11068@gosset.kodak.com>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: :add fcn & new ?
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)


Thanks for the responses to the :add function question.  I was
complicating things.  I still don't know what the phrase "and a
keyword arguement specifying a number of points" means.  ???

But onto my next question?  I am again trying something that seems
straight forward but am running into a problem.  I have a function
that I have written.  I would like to pull down a menu, highlight
the function name, have it present a dialog box into which I input
various numbers.  Well, I followed the example in the book and it
all seems to work OK except...The example in the book (section 7.5)
has the editable item (the fields in the dialog box) set up using
the command:
(setf name (send edit-text-item-proto) :new "" :text-length 15))

But when the function goes to use the values I've entered, I get 
an error message  Error: not a number.  What seems to be happening
is that what I enter into the dialog box is read as text rather than
a number.  Is this the problem?  Is there a version of the above 
command for numbers rather than text?  
  Again a simple example would be very useful.  Thanks again for 
solving my other problem!

Jeffrey D. Morris
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205
morris@kodak.com



From owner-SL-news@umnstat.stat.umn.edu Thu Oct 27 09:35:50 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA25849; Thu, 27 Oct 1994 09:35:50 -0500
Resent-Date: Thu, 27 Oct 1994 14:35:34 +0000
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from cheviot.ncl.ac.uk by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA25843; Thu, 27 Oct 1994 09:35:48 -0500
Return-Path: <Chris.Brunsdon@newcastle.ac.uk>
Received: from burnmoor.ncl.ac.uk by cheviot.ncl.ac.uk id <OAA17326@cheviot.ncl.ac.uk>
  (8.6.9/ for ncl.ac.uk) with SMTP; Thu, 27 Oct 1994 14:35:35 GMT
Received: from [128.240.138.23] (greabhal.ncl.ac.uk [128.240.138.23]) by burnmoor.ncl.ac.uk (8.6.9/8.6.x-cf revision 8 for Solaris 2.x) with SMTP id OAA06004; Thu, 27 Oct 1994 14:35:32 GMT
Message-Id: <199410271435.OAA06004@burnmoor.ncl.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Thu, 27 Oct 1994 14:35:34 +0000
To: stat-lisp-news@umnstat.stat.umn.edu
From: Chris.Brunsdon@newcastle.ac.uk (Chris Brunsdon)
Subject: Rubout
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Chris.Brunsdon@newcastle.ac.uk (Chris Brunsdon)

Does anyone have any idea how to overcome the 'rubout' gremlins
that seem to plague my copy of the xlisp-stat editor on the Mac?
Basically,  when I try to load files,  or do an 'eval selection'
I get a message saying

> Error: illegal character - #\Rubout
> Happened in: #<Subr: #163014c>

the offending character is a rubout character,  which I have to locate and
delete.  The only way this can be done (as far as I can see) is to scan
through
the file character by character with the cursor key until one key press doesn't
make the cursor move.  When this happens I press backspace and the
offending character is removed.  The annoying thing is that this character
is otherwise
invisible and the above process takes a VERY long time on occasion.

If somebody has found a work-around I would be grateful to hear from them,  as
apart from this I think xlisp-stat is an excellent package.


==============================================================================
Dr. Chris Brunsdon,                         + Phone +44 091 222 6000 x 7570
Lecturer in Computer Based Methods          + Fax   +44 091 222 8811
Dept. Of Town and Country Planning          + Telex 53654 (UNINEWG)
University of Newcastle Upon Tyne NE1 7RU   + chris.brunsdon@newcastle.ac.uk
============================================================================
==



From bjm@umnstat.stat.umn.edu Thu Oct 27 11:27:04 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA26685; Thu, 27 Oct 1994 11:27:04 -0500
Resent-Date: Thu, 27 Oct 1994 11:20:13 CDT
Received: by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA26678; Thu, 27 Oct 1994 11:27:03 -0500
Return-Path: <bjm@umnstat.stat.umn.edu>
Message-Id: <9410271627.AA26678@umnstat.stat.umn.edu>
To: Chris.Brunsdon@newcastle.ac.uk (Chris Brunsdon)
Cc: stat-lisp-news@umnstat.stat.umn.edu
Subject: Re: Rubout 
In-Reply-To: Your message of "Thu, 27 Oct 1994 14:35:34 CDT."
             <199410271435.OAA06004@burnmoor.ncl.ac.uk> 
Date: Thu, 27 Oct 1994 11:20:13 CDT
From: "Bret J. Musser" <bjm@umnstat.stat.umn.edu>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: "Bret J. Musser" <bjm@umnstat.stat.umn.edu>


The problem comes from hitting the delete key instead of backspace (or vice
versa, depending on your keyboard mapping).  

The solution is to find an editor that will display all control characters
with something besides blanks.  Alternatively, you could write an xlispstat
program that reads in the file character-by-charcter and searches for the
rubout character and replaces it with something else (eg. a space).  

Bret

From owner-SL-news@umnstat.stat.umn.edu Thu Oct 27 12:17:14 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA27032; Thu, 27 Oct 1994 12:17:14 -0500
Resent-Date: Thu, 27 Oct 1994 18:14:53 +0100 (MET)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from halley.upf.es by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA27024; Thu, 27 Oct 1994 12:17:03 -0500
Return-Path: <udina@upf.es>
Message-Id: <9410271717.AA27024@umnstat.stat.umn.edu>
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA16054; Thu, 27 Oct 94 18:25:52 +0100
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA04555; Thu, 27 Oct 94 18:14:53 +0100
From: udina@upf.es
Subject: Rubout
To: stat-lisp-news@umnstat.stat.umn.edu (lisp stat list)
Date: Thu, 27 Oct 1994 18:14:53 +0100 (MET)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
Content-Length: 214       
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: udina@upf.es

OK, Bret is right but anyway I think it will be better if the
XLISP-STAT editor would display the control chars with some special
sign like the non-printable char that every macintosh font has.

-- 
Frederic Udina

From owner-SL-news@umnstat.stat.umn.edu Mon Oct 31 05:14:51 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA11828; Mon, 31 Oct 1994 05:14:51 -0600
Resent-Date: Mon, 31 Oct 1994 00:17:43 +0200
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from relay.xlink.net by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA11822; Mon, 31 Oct 1994 05:14:32 -0600
Return-Path: <eickhoff@spacediv.dofn.de>
Received: from rgvx1b.spacediv.dofn.de by relay.xlink.net 
          id <43423-0@relay.xlink.net>; Mon, 31 Oct 1994 10:39:49 +0000
Date: Mon, 31 Oct 1994 00:17:43 +0200
Message-Id: <94103100174320@spacediv.dofn.de>
From: eickhoff@spacediv.dofn.de
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Compiling XLisp-Stat 3.39 with Think C7.0 on Mac - Problems
X-Vms-To: SMTP%"stat-lisp-news@umnstat.stat.umn.edu"
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: eickhoff@spacediv.dofn.de

I am working with XLisp-Stat and have included a number of own special routines
in an older version of the system. Now I try to migrate to the 3.39 version as
it offers some new features I need, but I'm having trouble in getting 3.39
properly compiled and running on the Mac with the Think C7.0 compiler. 

Has anyone alredy compiled the 3.39 version with Think C7.0? Luke apparently
uses Code Warrior in the meantime, but I just have Think C/C++ 7.0. 

Thanks for hints,

Jens Eickhoff

100140.1476@compuserve.com
eickhoff@spacediv.dofn.de


From owner-SL-news@umnstat.stat.umn.edu Mon Oct 31 14:52:07 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA13877; Mon, 31 Oct 1994 14:52:07 -0600
Resent-Date: Mon, 31 Oct 1994 16:50:42 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA13871; Mon, 31 Oct 1994 14:52:04 -0600
Return-Path: <uluru@gibbs.oit.unc.edu>
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id PAA26274; Mon, 31 Oct 1994 15:51:59 -0500
Message-Id: <199410312051.PAA26274@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Mon, 31 Oct 1994 16:50:42 -0500
To: stat-lisp-news@umnstat.stat.umn.edu
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: repeat-command
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

I have added a menu-item to the "Command" menu.  The purpose of this menu
item is to repeat the previous command entered in the listener window. The
menu item uses the (repeat-command) function that is defined by the
following code:

(defun repeat-command ()
  (send *listener* :paste-string (format nil "~a" -))
  (send *listener* :show-window))

The code doesn't work right and I can't figure out how to make it right. 
The problem is that if the previous command is:
(setf driveratio (send current-data :variable "weight"))
Then what appears in *listener* as a result of (repeat-command) is:
(SETF DRIVERATIO (SEND CURRENT-DATA VARIABLE weight))

In general, repeat-command seems to work right except for not coping
correctly with : and ".

Can anyone help?

Thanks in advance...


=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From luke@umnstat.stat.umn.edu Fri Nov  4 10:20:44 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA03813; Fri, 4 Nov 1994 10:20:44 -0600
Resent-Date: Fri, 4 Nov 1994 10:20:43 -0600
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA03807; Fri, 4 Nov 1994 10:20:43 -0600
Date: Fri, 4 Nov 1994 10:20:43 -0600
From: Luke Tierney <luke@umnstat.stat.umn.edu>
Return-Path: <luke@umnstat.stat.umn.edu>
Message-Id: <9411041620.AA03807@umnstat.stat.umn.edu>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: XLISP-STAT Release 3.43 (includes native PowerMac version)
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Luke Tierney <luke@umnstat.stat.umn.edu>

XLISP-STAT Release 3.43 for UNIX systems, Macintosh and MS Windows is
now available for anonymous ftp from umnstat.stat.umn.edu
(128.101.51.1). All versions include a number of bug fixes, and the
Macintosh release now includes a native PowerPC version.

The sources for all versions are in

	pub/xlispstat/xlispstat-3-43.tar.gz

This a tar archive compressed with the GNU gzip compression utility.
Once you have retrieved the file you can extract the sources with

	gzip -cd | tar xvf - 

The Macintosh and MS Windows distributions are in the directories
pub/xlispstat/macintosh and pub/xlispstat/mswin. README files in those
directories give further details.

This is a beta realease -- some things are still in flux, others have
not been extensively tested. Please let me know if you run into any
problems.

Changes from 3.37 include

3-39 - 3-40:

	Fixed SetPort bug that could cause crash after creating graph
	with :show nil.

	Added win32 code.

	Fixed scrolling bug in Windows version (affected name-list
	primarily).

	Added check to prevent graph-protos with vars=0 from failing
	on some systems.

	Modified load-dll for Windows to return multiple values on
	error.

	Modified postscript header for saved bitmap image on X11.

	Fixed bug in cond with empty consequent (from Tom Almy).

	Added check for Win16 vs Win32 workspace.

	Added WIN32 *features* for Win32 version.

	Added exit call to osfinish on Macintosh version -- may avoid
	some problems.

	Fixed Windows listener trimming to ignore line structure and
	always trim.

	Added some tests for initialization for handling early
	termination in Macintosh version.

	added :if-does-not-exist nil to internal load call


3-40 - 3-41:

	Redefined pusharg macro on suns to work arouns apparent
	compiler bug in 4.1.3 optimizer for sparcs

	Increased stack size on win32 version.

	Fixed makefile wor win32 so icon is available to progman.

	Added handling of show/hide window messages for modeless
	dialogs in Windows version.

	Added :xlisp-stat *feature* entry.


3.41 - 3.42:

	Modified callbacks to protect against oscheck event processing
	on Macintosh and Windows version.

	Changed OFFTYPE to unsigned long on all versions -- avoid
	problems with hashing where high end of vritual address space
	is used.

	Fixed activation handling to work properly in win32.

	Fixed polygon drawing to work in win32.

	Cleanups for conversion to MetroWerks compiler;	added macros
	for full prototype generation on files used on Macintosh.

	Added PowerPC changes.

	Fixed load to properly set *load-pathname*.

	Modified test files to use *load-pathname* for directory of
	stuff to load.

	Modified redraw content to not erase entire view rectangle.

	Modified comparison to break ties using original position
	(make stable).

	Modified to handle arc drawing with large/negative arcs
	properly on windows version.

	Fixed size and location commands to work with iconified windows
	on Windows version.

3.42 - 3.43:

	Cleaned up minimization code; replaced internal derivative and
	minimization code by lisp code. Added level 1 BLAS routines.

	Modified floating point printing to work around MetroWerks bug
	and produce nicer output.

	Replaced lisp 'replace' function by internal version.

	Fixed errors in byte code handling of typed array arguments to
	aref's.

	Fixed bug in make-array's handling of :initial-contents arguments.

	Fixed problems with allocating and accessing complex vectors.

	Fixed check of argument count in test code generation.

From owner-SL-news@umnstat.stat.umn.edu Sun Nov  6 12:32:08 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA15240; Sun, 6 Nov 1994 12:32:08 -0600
Resent-Date: Sun, 6 Nov 1994 13:32:04 -0500 (EST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from tardis.union.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA15234; Sun, 6 Nov 1994 12:32:06 -0600
Return-Path: <kupermaj@tardis.union.edu>
Received: by tardis.union.edu id AA03001
  (5.65c+/IDA-1.4.4 for stat-lisp-news@umnstat.stat.umn.edu); Sun, 6 Nov 1994 13:32:04 -0500
From: Joshua Kuperman <kupermaj@tardis.union.edu>
Message-Id: <199411061832.AA03001@tardis.union.edu>
Subject: Help with format problem
To: stat-lisp-news@umnstat.stat.umn.edu
Date: Sun, 6 Nov 1994 13:32:04 -0500 (EST)
Cc: nysnet!jkuperma (work)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 1121      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Joshua Kuperman <kupermaj@tardis.union.edu>

Let me know if this shows up twice. The first time I sent it it bounced.
I think I might have been using an incorrect name for the list so I'm
sending it again. i
> 
> I was recently trying to write a simple compiler in xlisp-stat. I needed to
> have the output all be in text format to be input into another program.
> I found I couldn't figure out a way to easily write out fixed length
> binary character strings.
> CLtL2 of course supports the "~b" directive to format. Statements of the form
> > (format nil "~3,'0d" f)
> "005"
> are no problem (f was simply set to 5 for the above test). But there is no
> way I could find to get the binary number into a string.
> 
> At first I thought I'd use kcl after I got the rest written but kcl's handling
> (at least here) is much buggier; even though it does recognize ~b.
> 
> I desparately need to be able to have 
> >( format nil "~4,'0b" 3)
> return "0011".  Any help work arounds will be greatly appreciated.
> 
> -- 
> Josh Kuperman                  
> kupermaj@tardis.union.edu      
> 
> 
> 


-- 
Josh Kuperman                  
kupermaj@tardis.union.edu      



From luke@umnstat.stat.umn.edu Mon Nov  7 06:26:27 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA17288; Mon, 7 Nov 1994 06:26:27 -0600
Resent-Date: Mon, 7 Nov 1994 06:26:25 -0600
Received: from mail.unet.umn.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA17282; Mon, 7 Nov 1994 06:26:26 -0600
Return-Path: <luke@umnstat.stat.umn.edu>
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA24728; Mon, 7 Nov 1994 06:26:25 -0600
Date: Mon, 7 Nov 1994 06:26:25 -0600
From: luke@umnstat.stat.umn.edu
Message-Id: <199411071226.AA26855@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 7 Nov 1994 06:26:25 -0600
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: compiling 3.43 with non-ansi compilers (e.g. bundled sun cc)
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luke@umnstat.stat.umn.edu

If you are using the bundled sun cc to compile 3.43 the compile will
fail on cholesky because a prototyped declaration in linalg.h has not
been properly set up to work on a non-ANSI compiler. Use the linalg.h
file attached below instead. THis will be fixed properly in the next
release.

luke

---------------------------------(linalg.h)------------------------------------
#include "xlisp.h"
#include "xlstat.h"

typedef struct { double r, i; } dcomplex;

#define min(x,y) (x < y ? x : y)
#define max(x,y) (x > y ? x : y)
#define abs(x) (x < 0 ? -x : x)
#define ABS(x) (d__abs = (x), abs(d__abs))
#define POW2(x) (d__pow2 = (x), d__pow2 * d__pow2)

double d_sign P2H(double *, double *);
double z_abs P1H(dcomplex *);
VOID z_div P3H(dcomplex *, dcomplex *, dcomplex *);
VOID d_cnjg P2H(dcomplex *, dcomplex *);
double dcabs1 P1H(dcomplex *);

/* BLAS routines */
extern double blas_dasum P3H(int, double *, int);
extern VOID blas_daxpy P6H(int, double, double *, int, double *, int);
extern VOID blas_dcopy P5H(int, double *, int, double *, int);
extern double blas_ddot P5H(int, double *, int, double *, int);
extern double blas_dnrm2 P3H(int, double *, int);
extern VOID blas_drot P7H(int, double *, int, double *, int, double, double);
extern VOID blas_drotg P4H(double *, double *, double *, double *);
extern VOID blas_dscal P4H(int, double, double *, int);
extern VOID blas_dswap P5H(int, double *, int, double *, int);
extern int blas_idamax P3H(int, double *, int);
extern double blas_dzasum P3H(int, dcomplex *, int);
extern double blas_dznrm2 P3H(int, dcomplex *, int);
extern int blas_izamax P3H(int, dcomplex *, int);
extern VOID blas_zaxpy P6H(int, dcomplex *, dcomplex *, int, dcomplex *, int);
extern VOID blas_zcopy P5H(int, dcomplex *, int, dcomplex *, int);
extern VOID blas_zdotc P6H(dcomplex *, int, dcomplex *, int, dcomplex *, int);
extern VOID blas_zdotu P6H(dcomplex *, int, dcomplex *, int, dcomplex *, int);
extern VOID blas_zdrot P7H(int, dcomplex *, int, dcomplex *, int,
			   double, double);
extern VOID blas_zdscal P4H(int, double, dcomplex *, int);
extern VOID blas_zrotg P4H(dcomplex *, dcomplex *, double *, dcomplex *);
extern VOID blas_zscal P4H(int, dcomplex *, dcomplex *, int);
extern VOID blas_zswap P5H(int, dcomplex *, int, dcomplex *, int);

/* LINPACK routines */
VOID linpack_dgeco P6H(double *, int, int, int *, double *, double *);
VOID linpack_dgedi P7H(double *, int, int, int *, double *, double *, int);
VOID linpack_dgefa P5H(double *, int, int, int *, int *);
VOID linpack_dgesl P6H(double *, int, int, int *, double *, int);
VOID linpack_dqrdc P8H(double *, int, int, int, double *,
		       int *, double *, int);
VOID linpack_dqrsl P13H(double *, int, int, int, double *, double *,
			double *, double *, double *, double *,	double *,
			int, int *);
VOID linpack_dsvdc P13H(double *, int, int, int, double *, double *,
			double *, int, double *, int, double *,
			int, int *);
VOID linalg_zgeco P6H(dcomplex *, int, int, int *, double *, dcomplex *);
VOID linalg_zgeco P6H(dcomplex *, int, int, int *, double *, dcomplex *);
VOID linpack_zgedi P7H(dcomplex *, int, int, int *, dcomplex *, dcomplex *,
		       int);
VOID linpack_zgefa P5H(dcomplex *, int, int, int *, int *);
VOID linpack_zgesl P6H(dcomplex *, int, int, int *, dcomplex *, int);

/* in place transpose */
int gtrans P8H(char *, int, int, int, int *, int, int, char *);

From owner-SL-news@umnstat.stat.umn.edu Tue Nov  8 10:40:23 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA23763; Tue, 8 Nov 1994 10:40:23 -0600
Resent-Date: Tue, 8 Nov 94 11:24 EST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA23757; Tue, 8 Nov 1994 10:40:21 -0600
Return-Path: <n2ell!pcolsen@cs.UMD.EDU>
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.9/UMIACS-0.9/04-05-88)
	id LAA29263; Tue, 8 Nov 1994 11:40:11 -0500
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0r4tLb-0004oSC; Tue, 8 Nov 94 11:24 EST
Message-Id: <m0r4tLb-0004oSC@n2ell.uucp>
Date: Tue, 8 Nov 94 11:24 EST
From: pcolsen@n2ell (Peter C. Olsen P.E.)
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Speed of "Objects" -vs- "Programs"
Reply-To: pcolsen@super.org
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: pcolsen@n2ell (Peter C. Olsen P.E.)


I'm writing to ask about the relative speed of roughly equivalent
algorithms written in "object-oriented" style as opposed to
"traditional" style.

As a class/research project, I've written a neural network suite in
xlispstat.  I'm now trying to cleanup the code and I decided to try
rewriting it in "object-oriented" style.  For example, rather than
creating a separate weight-matrix for each back-propagation layer and
then using functions to manipulate them, I've created a "layer" object
that contains its own weight-matrix as well as the methods to update
it.

My fear is that implementation may be *much* slower than the original
because of additional overhead inherent in the object-oriented
approach --- for example, in sending, receiving, and parsing
messages. 

Does anyone have a good feel for the relative speed of the two
approaches.  I see that "oo" offers several big advantages, but it
will be a hollow victory if my now-so-well-engineered code winds up
slow to use.

Peter

-- 
Peter Olsen, P.E., pcolsen%n2ell.uucp@mimsy.umd.edu, ...!mimsy!n2ell.edu
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."

From owner-SL-news@umnstat.stat.umn.edu Mon Nov 14 10:53:13 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA23765; Mon, 14 Nov 1994 10:53:13 -0600
Resent-Date: Mon, 14 Nov 1994 08:52:25 -0800
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from tsunami.cor.epa.gov by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA23758; Mon, 14 Nov 1994 10:53:05 -0600
Return-Path: <dkugler@tsunami.cor.epa.gov>
Received: from anonimo.cor.epa.gov.landnsea (anonimo.cor.epa.gov [204.47.148.94]) by tsunami.cor3.epa.gov (8.6.9/8.6.9) with SMTP id IAA20213; Mon, 14 Nov 1994 08:52:25 -0800
Date: Mon, 14 Nov 1994 08:52:25 -0800
From: Dan Kugler <dkugler@tsunami.cor.epa.gov>
Message-Id: <199411141652.IAA20213@tsunami.cor3.epa.gov>
To: stat-lisp-news@umnstat.stat.umn.edu
Cc: dkugler@tsunami.cor.epa.gov
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Dan Kugler <dkugler@tsunami.cor.epa.gov>

help

From owner-SL-news@umnstat.stat.umn.edu Sun Nov 20 14:19:42 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA20799; Sun, 20 Nov 1994 14:19:42 -0600
Resent-Date: Sun, 20 Nov 94 11:11 EST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA20793; Sun, 20 Nov 1994 14:19:09 -0600
Return-Path: <n2ell!pcolsen@cs.UMD.EDU>
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.9/UMIACS-0.9/04-05-88)
	id PAA27164; Sun, 20 Nov 1994 15:19:04 -0500
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0r9Eqz-0004pVC; Sun, 20 Nov 94 11:11 EST
Message-Id: <m0r9Eqz-0004pVC@n2ell.uucp>
Date: Sun, 20 Nov 94 11:11 EST
From: pcolsen@n2ell (Peter C. Olsen P.E.)
To: remailer@soda.berkeley.edu, stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: pcolsen@n2ell (Peter C. Olsen P.E.)

scheme@ai.mit.edu
Subject: Fast Lisp Interpreter?  Faster Lisp Techniques?
Post-To: comp.lang.lisp,comp.lang.lisp.x,comp.lang.scheme 
Reply-To: pcolsen@acm.org


I'm looking for advice about fast lisp interpreters or good techniques
to speed up lisp code.

I'm doing some research into neural networks that requires lots of
numerical calculation.  I've prototyped my algorithms in XlispStat,
but I've found that large cases are just too slow.  Can anyone suggest
a faster lisp (or scheme)?  My application requires several matrix
multiplications, several vector inner-products, and several non-linear
function evaluations inside the innermost "algorithmic" loop.
(Accurately comparing performance might be difficult because I'm
already using XlispStat's vectorized matrix and vector operations.)

Alternatively, are there some good references to general techniques I
can use to speed up my code?  (I know lots of C tricks, but not many
for lisp.)

I have these constraints:

  1.  My programs should run on several platforms with few changes:
Linux PCs, SGI, Cray Unicos, and Suns (so CMU lisp may be out).

  2.  This is a graduate program, not a company-funded one, so
anything I use must be free (or nearly so).
     
I've already installed XlispStat, GCL, and MIT-scheme on several
computers.  I have CMU lisp on a Sun to which I have access, but it
isn't working yet.

My alternative is to move to C, but I would like to stay with Lisp, if
possible.

Thanks!

Peter.

-- 
Peter Olsen, P.E., pcolsen%n2ell.uucp@mimsy.umd.edu, ...!mimsy!n2ell.edu
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."

From owner-SL-news@umnstat.stat.umn.edu Mon Nov 21 01:19:37 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA22802; Mon, 21 Nov 1994 01:19:37 -0600
Resent-Date: Sun, 20 Nov 1994 23:18:32 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA22796; Mon, 21 Nov 1994 01:19:32 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA12116; Sun, 20 Nov 94 23:19:11 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA19206; Sun, 20 Nov 94 23:18:32 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9411210718.AA19206@galton.math.ucla.edu>
Subject: function
To: abraverm@stat.ucla.edu (Amy Braverman),
        smithm@nicco.sscnet.ucla.edu (Mark Smith),
        dbetz@stat.ucla.edu (David Betz), jbond@stat.ucla.edu (Jason Bond),
        afsharto@stat.ucla.edu (David Afshartous),
        gmichail@stat.ucla.edu (George Michailides),
        harvey@stat.ucla.edu (Tyrone Harvey),
        stockdal@stat.ucla.edu (Susan Stockdale)
Date: Sun, 20 Nov 1994 23:18:32 -0800 (PST)
Cc: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1595      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

In our textbook work we combine Xlisp-Stat and HTML. This can be
done in various ways. The function below is an example. It can be
used with Brooks Cutter's html+tables to produce HTML tables, but
the function itself defines HTML+ tables descriptions, which look
much nicer in browsers that support them.
===========================================================================
(defun html+tables (x &key (filename "table.html")
                      (border t) (clabels nil) (rlabels nil) (caption nil))
"Args: A 
This functions produces a file with a HTML+ table, which describes
the contents of an Xlisp array A. Caption and labels can be added
as well. If labels are used, they must be lists or vectors of strings."
(let* (
       (nd (array-dimensions x))
       (rd (elt nd 0))
       (cd (elt nd 1))
       )
(with-open-file (ff filename :direction :output)
 (format ff "<TBL ~a>~%" (if border "BORDER" ""))
 (if caption (format ff "<TT TOP>~a~%" caption))
 (if clabels 
     (progn
      (if rlabels (format ff "<TH>"))
      (dotimes (j cd)
               (format ff " <TH> ~a" (elt clabels j)))
      (format ff " <TR> ~%")))
 (dotimes (i rd)
          (if rlabels
              (format ff "<TH> ~a" (elt rlabels i)))
 (dotimes (j cd)
              (format ff " <TD> ~a" (num-to-string (aref x i j))))
          (format ff " <TR> ~%")
 ) 
 (format ff "</TBL>"))
))
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Wed Nov 23 03:27:08 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA05910; Wed, 23 Nov 1994 03:27:08 -0600
Resent-Date: Wed, 23 Nov 1994 01:27:02 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA05904; Wed, 23 Nov 1994 03:27:07 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA07610; Wed, 23 Nov 94 01:27:04 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA19089; Wed, 23 Nov 94 01:27:02 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9411230927.AA19089@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Wed, 23 Nov 1994 01:27:02 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2629      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; This file implements the spatial interaction models
;;; described by Keith Ord in JASA, 70, 1975, 120-126.
;;; In educational statistics these are known as Erbring
;;; and Young models. I think they are cute. The Xlisp
;;; is rather boring, but it works.
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(defun ord-spatial-interaction-model (y w &key (epsilon 1e-8))
(let* (
       (yl (matmult w y))
       (ll (eigenvalues w))
       (s1 (sum (* y y)))
       (s2 (sum (* y yl)))
       (s3 (sum (* yl yl)))
       (rh (ord-find-rho s1 s2 s3 ll))
       )
(list rh (/ (sum (^ (- y (* rh yl)) 2)) (length ll)))
))

(defun ord-mixed-model (x y w &key (epsilon 1e-8))
(let* (
      (ll (eigenvalues w))
      (yl (matmult w y))      
      (my (regression-model x y))
      (ry (send my :residuals))
      (ml (regression-model x yl))
      (rl (send ml :residuals))
      (s1 (sum (* ry ry)))
      (s2 (sum (* ry rl)))
      (s3 (sum (* rl rl)))
      (rh (ord-newton-find-rho s1 s2 s3 ll))
      (zz (- y (* rh yl)))
      (mz (regression-model x z))
      (rz (send mz :residuals))
      )
(list rh (/ (sum (* rz rz)) (length ll)) (send mz :coef-estimates))
))

(defun ord-autoregressive-model (x y w &key (epsilon 1e-8))
(let* (
       (rr (regression-model x y))
       (rs (send rr :residuals))
       (bo (send rr :coef-estimates))
       (ll (eigenvalues w))
       (yl (matmult w y))
       (xl (matmult w x))
       )
(loop
(let* (
       (rl (matmult w rs))
       (s1 (sum (* rs rs)))
       (s2 (sum (* rs rl)))
       (s3 (sum (* rl rl)))
       (rh (ord-newton-find-rho s1 s2 s3 ll))
       (zz (- y (* rh yl)))
       (xx (- x (* rh xl)))
       (zr (regression-model xx zz))
       (bn (send zr :coef-estimates))
       )
(setf rs (send zr :residuals))
(if (> epsilon (max (abs (- bn bo)))) 
    (return (list rh (/ (sum (* rs rs)) (length ll)) bn))
    (setf bo bn))
))))

(defun ord-newton-find-rho (s1 s2 s3 ll &key (old 0) (epsilon 1e-8))
(loop
(let* (
      (q (- 1 (* old ll)))
      (p (sum (log q)))
      (r (/ 2 (length ll)))
      (s (+ s1 (- (* 2 old s2)) (* old old s3)))
      (b (/ (- (* old s3) s2) (^ s 2)))
      (a (sum (/ ll q)))
      (u (sum (/ (^ ll 2) (^ q 2))))
      (v (* 4 (^ b 2)))
      (w (/ (* 2 s3) (^ s 2)))
      (f (- (log s) (* r p)))
      (g (+ (* r a) (* 2 b)))
      (h (+ (* r u) w (- v)))
      (new (- old (/ (+ (* r a) (* 2 b)) (+ (* r u) w (- v)))))
      )
(format t "~,8f ~,8f ~,8f ~,8f ~,8f ~%" old new f g h)
(if (> epsilon (abs (- old new))) 
    (return new) (setf old new))))
)



From owner-SL-news@umnstat.stat.umn.edu Fri Nov 25 13:32:34 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA15064; Fri, 25 Nov 1994 13:32:34 -0600
Resent-Date: Fri, 25 Nov 1994 11:32:28 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA15058; Fri, 25 Nov 1994 13:32:32 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA23792; Fri, 25 Nov 94 11:32:30 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA27609; Fri, 25 Nov 94 11:32:28 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9411251932.AA27609@galton.math.ucla.edu>
Subject: from the desk of Jan de Leeuw
To: stat-lisp-news@umnstat.stat.umn.edu, (Xlisp, List),
        xlisp-stat@math.ucla.edu, under@math.ucla.edu, ilisp@math.ucla.edu,
        in@math.ucla.edu, emacs@math.ucla.edu
Date: Fri, 25 Nov 1994 11:32:28 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 872       
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Get this from ftp.stat.ucla.edu in ~pub/lisp/xlisp/xlisp-stat/ilisp

This is some minimal stuff to get xlispstat to run under ilisp,
with a much improved inferior lisp mode and lisp interaction
mode.

You need ilisp-5.6. Get it from haldane.bu.edu (128.197.54.25)

I have included some lines from my .emacs. Add them to yours,
change the path names.

Replace ilisp.el by the version in here. 

Add ilisp-xls.el to the emacs/ilisp directories. This is just a minimal
file to make things work. It can be improved enormously. I may do it
myself. Or I may not. 

Recompile the .el files.

You can now start xlispstat by saying M-x xlispstat in emacs, this
will split the frame, etc etc. All of ilisp will be available, and
you wil have good interaction between your lisp-buffer in which
you are editing and your inferior lisp buffer in which xlispstat is
running. 


--- Jan


From owner-SL-news@umnstat.stat.umn.edu Sun Nov 27 00:57:38 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA18571; Sun, 27 Nov 1994 00:57:38 -0600
Resent-Date: Sun, 27 Nov 94 01:40 EST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA18565; Sun, 27 Nov 1994 00:57:36 -0600
Return-Path: <n2ell!pcolsen@cs.UMD.EDU>
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.9/UMIACS-0.9/04-05-88)
	id BAA17160; Sun, 27 Nov 1994 01:57:33 -0500
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0rBdHc-0004q0C; Sun, 27 Nov 94 01:40 EST
Message-Id: <m0rBdHc-0004q0C@n2ell.uucp>
Date: Sun, 27 Nov 94 01:40 EST
From: pcolsen@n2ell (Peter C. Olsen P.E.)
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Possible bug in xlispstat-3.43?  (Very long with sample data.)
Reply-To: pcolsen@acm.org
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: pcolsen@n2ell (Peter C. Olsen P.E.)


Please excuse the long message, but I've included the data...

I was recently conducting some numerical experiments when I found that
the results of (print-matrix) didn't look right.  In fact, I found
that they weren't right --- they weren't what they were "supposed" to
be (by construction) nor were they the same as I obtained using other
displays. 

Here's a matrix, named "j2" that ought to be orthonormal.  (I
constructed it by computing the svd of a random matrix, then
multiplying the right and left matrices of singular vectors, without
the diagonal matrix of singular values.)  Unfortunately, while the
"standard" lisp representation of the product of j2 and its transpose
is close to orthonormal, the "print-matrix" representation is far from
orthonormal --- apparently because numbers just slightly less than 1.0
are being printed as "0.1" instead!  The bug only seems to show up for
numbers 0.9999995 and larger --- 0.99999949 rounds properly to
0.999999 while 0.9999995 goes to 0.100000.

I've run some tests (and written this email) under Emacs and copied
the results directly to insure accuracy.  I then edited the display
format slightly to make it easier to find the rows.  My machine is a
486DX2/66 running Emacs, X11, and XlispStat under Linux.  I compiled
this version of XlispStat with gcc-2.5.8 using the -m486 option.
Again --- please excuse the length of the data

Peter

Peter Olsen, P.E.,                                        pcolsen@acm.org
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."

=================================================================

Here's the problem...

XLISP-PLUS version 2.1g
Portions Copyright (c) 1988, by David Betz.
Modified by Thomas Almy and others.
XLISP-STAT 2.1 Release 3.43 (Beta).
Copyright (c) 1989-1994, by Luke Tierney.


> j2 
#2A((0.22041774700557615 -0.07156399426167465 0.22053852785148814
-0.43358995282295676 0.08405129944686808 0.5696512911845104
-0.49777434831262696 0.3392749592797975 0.11716543778473844
0.038410518661430186)

(-0.4037245259269013 -0.7156377339190552 0.22091941900186612
0.19522978541376146 0.43208230722690094 -0.02620201935138596
-0.003693166257960915 0.16581320929156904 -0.08956109616597513
0.12263183239204745)

(0.5629646972908083 -0.09669562599208993 0.2912128496265755
0.41345014647435213 0.06406816339970869 -0.38356806302160745
-0.4051221202260222 0.041936962850791355 -0.05751372491339153
-0.31233811787296095)

(-0.05717979856364301 -0.2896077756153183 -0.21222180762196344
-0.3312244626116696 -0.012081091961547788 -0.3032997738639935
-0.3899691341431995 -0.5385633945559848 0.4682786585616773
0.06754260480117286)

(-0.028367246878128017 -0.28885850464052715 -0.4417064393214991
-0.16377203850365346 -0.2087874293428466 0.08530977174666299
-0.21348963699301132 -0.09388347962232893 -0.6838744019416527
-0.34768394581883655)

(-0.3389013330618913 0.21846165388025546 0.6214418248565122
0.01605371155323549 -0.06435704959764908 0.19008437290248983
-0.15840643421163877 -0.5534551558590967 -0.2387291690307836
-0.14933856216567587)

(-0.03535914427467418 -0.35459234433427644 0.16066206226834315
0.23847422474758315 -0.8452704966332278 0.12396384406266081
0.012436051019404492 0.09198860777731158 0.17077686335288597
0.15066918277675698)

(-0.5691935733847164 0.24051826851183916 -0.0564137584125681
0.020076118446038477 -0.11034760997757487 -0.22489844817631116
-0.29492187118361657 0.42796612950998175 0.2346331254600611
-0.4760688470865111)

(-0.16455763426262224 0.26920443602273597 -0.25028430120025447
0.3931283793731041 0.023668710152067497 0.020875045314726243
-0.5274451339265471 0.010706089804086818 -0.1892721583098622
0.6067327975358119)

(-0.015941201447567048 0.04793739971745782 0.3158841347489537
-0.5043138746124384 -0.16442791936668855 -0.5708797673036199
-0.0022005751194933442 0.24234478166620288 -0.33307827205667445
0.3474412074872265)) 
> 

Here's the product of j2 and its transpose.  Note that the diagonal
elements are all close to 1.0.

> (setq j2j2t (matmult j2 (transpose j2))) 

#2A((0.9999999999999999 3.033919551134398E-16 5.677661845445575E-17
-2.0229222011153465E-16 2.977388572234646E-16 2.3880315178645764E-16
-2.618390598199856E-17 1.4026865606531214E-17 4.209397994016026E-16
2.8304368262154975E-16)

(3.033919551134398E-16 1.0000000000000002 9.505064920908857E-17
-1.4695767524977935E-16 -2.0849885403254054E-16 4.729662570878562E-17
-2.0691320835528049E-16 1.5798180905829406E-16 3.0383410631190655E-16
3.1283637247532525E-16)

(5.677661845445575E-17 9.505064920908857E-17 0.9999999999999999
-4.366624249685369E-17 -1.4852214510335804E-16 -1.751664134921893E-18
-1.7772106486110828E-16 -1.7729416025569211E-16 5.835718193403228E-16
2.2640174240570743E-16)

(-2.0229222011153465E-16 -1.4695767524977935E-16
-4.366624249685369E-17 1.0000000000000007 1.2181011407874642E-16
9.315753057197521E-17 -1.2569121904306563E-17 -2.9926690466031136E-16
1.6666220270175613E-17 -9.972288294614329E-17)

(2.977388572234646E-16 -2.0849885403254054E-16 -1.4852214510335804E-16
1.2181011407874642E-16 1.0000000000000002 -5.267189679206141E-17
7.137777239922538E-17 -1.9651164376299768E-16 -4.867525653373672E-16
-4.763713295358185E-17)

(2.3880315178645764E-16 4.729662570878562E-17 -1.751664134921893E-18
9.315753057197521E-17 -5.267189679206141E-17 1.0000000000000002
7.88655436529534E-17 5.536207343254107E-18 -1.002954772184872E-16
4.198606794268006E-16) 

(-2.618390598199856E-17 -2.0691320835528049E-16
-1.7772106486110828E-16 -1.2569121904306563E-17 7.137777239922538E-17
7.88655436529534E-17 0.9999999999999997 -2.7076594005109866E-16
-3.1108470834040336E-16 1.626167733456696E-16)

(1.4026865606531214E-17 1.5798180905829406E-16 -1.7729416025569211E-16
-2.9926690466031136E-16 -1.9651164376299768E-16 5.536207343254107E-18
-2.7076594005109866E-16 0.9999999999999996 1.541464438731266E-16
1.84558314811345E-16)

(4.209397994016026E-16 3.0383410631190655E-16 5.835718193403228E-16
1.6666220270175613E-17 -4.867525653373672E-16 -1.002954772184872E-16
-3.1108470834040336E-16 1.541464438731266E-16 1.0000000000000002
-5.3044591288853304E-17)

(2.8304368262154975E-16 3.1283637247532525E-16 2.2640174240570743E-16
-9.972288294614329E-17 -4.763713295358185E-17 4.198606794268006E-16
1.626167733456696E-16 1.84558314811345E-16 -5.3044591288853304E-17
1.0000000000000002)) >

Now, here's the same display using (print-matrix j2j2t).  Note that
the diagonal elements in the first, third, seventh and eighth rows are
all displayed as 0.1, *not* 1.0.

> 
(print-matrix j2j2t)
#2a(

    ( 0.100000 3.033920E-16 5.677662E-17 -2.022922E-16 2.977389E-16
2.388032E-16 -2.618391E-17 1.402687E-17 4.209398E-16 2.830437E-16)

    ( 3.033920E-16 1.00000 9.505065E-17 -1.469577E-16 -2.084989E-16
4.729663E-17 -2.069132E-16 1.579818E-16 3.038341E-16 3.128364E-16)

    ( 5.677662E-17 9.505065E-17 0.100000 -4.366624E-17 -1.485221E-16
-1.751664E-18 -1.777211E-16 -1.772942E-16 5.835718E-16 2.264017E-16)

    (-2.022922E-16 -1.469577E-16 -4.366624E-17 1.00000 1.218101E-16
9.315753E-17 -1.256912E-17 -2.992669E-16 1.666622E-17 -9.972288E-17)

    ( 2.977389E-16 -2.084989E-16 -1.485221E-16 1.218101E-16 1.00000
-5.267190E-17 7.137777E-17 -1.965116E-16 -4.867526E-16 -4.763713E-17)

    ( 2.388032E-16 4.729663E-17 -1.751664E-18 9.315753E-17
-5.267190E-17 1.00000 7.886554E-17 5.536207E-18 -1.002955E-16
4.198607E-16)

    (-2.618391E-17 -2.069132E-16 -1.777211E-16 -1.256912E-17
7.137777E-17 7.886554E-17 0.100000 -2.707659E-16 -3.110847E-16
1.626168E-16)

    ( 1.402687E-17 1.579818E-16 -1.772942E-16 -2.992669E-16
-1.965116E-16 5.536207E-18 -2.707659E-16 0.100000 1.541464E-16
1.845583E-16)

    ( 4.209398E-16 3.038341E-16 5.835718E-16 1.666622E-17
-4.867526E-16 -1.002955E-16 -3.110847E-16 1.541464E-16 1.00000
-5.304459E-17)

    ( 2.830437E-16 3.128364E-16 2.264017E-16 -9.972288E-17
-4.763713E-17 4.198607E-16 1.626168E-16 1.845583E-16 -5.304459E-17
1.00000 )
   )
NIL
> 

It appears that any of the diagonal elements which are strictly less
than 1.0 are being displayed as 0.100000 instead of being rounded to
1.00000. 

As a double-check, I'll take (diagonal j2j2t)

> 
(diagonal j2j2t)
(0.9999999999999999 1.0000000000000002 0.9999999999999999
1.0000000000000007 1.0000000000000002 1.0000000000000002
0.9999999999999997 0.9999999999999996 1.0000000000000002
1.0000000000000002) 
>  

which agrees with the "standard" matrix representation, not the
pretty-printed one.


I can "localize" the bug by setting the (0 0) element a little smaller

> (setf (select j2j2t 0 0) .99999949)
0.99999949
> (print-matrix j2j2t)
#2a(

    ( 0.999999      3.033920E-16  5.677662E-17 -2.022922E-16
2.977389E-16  2.388032E-16 -2.618391E-17  1.402687E-17  4.209398E-16
2.830437E-16) 

    ( 3.033920E-16   1.00000      9.505065E-17 -1.469577E-16
-2.084989E-16  4.729663E-17 -2.069132E-16  1.579818E-16  3.038341E-16
3.128364E-16) 

    ( 5.677662E-17  9.505065E-17  0.100000     -4.366624E-17
-1.485221E-16 -1.751664E-18 -1.777211E-16 -1.772942E-16  5.835718E-16
2.264017E-16) 

    (-2.022922E-16 -1.469577E-16 -4.366624E-17   1.00000
1.218101E-16  9.315753E-17 -1.256912E-17 -2.992669E-16  1.666622E-17
-9.972288E-17) 

    ( 2.977389E-16 -2.084989E-16 -1.485221E-16  1.218101E-16   1.00000
-5.267190E-17  7.137777E-17 -1.965116E-16 -4.867526E-16 -4.763713E-17)

    ( 2.388032E-16  4.729663E-17 -1.751664E-18  9.315753E-17
-5.267190E-17   1.00000      7.886554E-17  5.536207E-18 -1.002955E-16
4.198607E-16) 

    (-2.618391E-17 -2.069132E-16 -1.777211E-16 -1.256912E-17
7.137777E-17  7.886554E-17  0.100000     -2.707659E-16 -3.110847E-16
1.626168E-16) 

    ( 1.402687E-17  1.579818E-16 -1.772942E-16 -2.992669E-16
-1.965116E-16  5.536207E-18 -2.707659E-16  0.100000      1.541464E-16
1.845583E-16) 

    ( 4.209398E-16  3.038341E-16  5.835718E-16  1.666622E-17
-4.867526E-16 -1.002955E-16 -3.110847E-16  1.541464E-16   1.00000
-5.304459E-17) 

    ( 2.830437E-16  3.128364E-16  2.264017E-16 -9.972288E-17
-4.763713E-17  4.198607E-16  1.626168E-16  1.845583E-16 -5.304459E-17
1.00000    ) 
   )
NIL
> 

and then increasing it slightly

> (setf (select j2j2t 0 0) .9999995)
0.9999995
> (print-matrix j2j2t)
#2a(
    ( 0.100000      3.033920E-16  5.677662E-17 -2.022922E-16
2.977389E-16  2.388032E-16 -2.618391E-17  1.402687E-17  4.209398E-16
2.830437E-16) 

    ( 3.033920E-16   1.00000      9.505065E-17 -1.469577E-16
-2.084989E-16  4.729663E-17 -2.069132E-16  1.579818E-16  3.038341E-16
3.128364E-16) 

    ( 5.677662E-17  9.505065E-17  0.100000     -4.366624E-17
-1.485221E-16 -1.751664E-18 -1.777211E-16 -1.772942E-16  5.835718E-16
2.264017E-16) 

    (-2.022922E-16 -1.469577E-16 -4.366624E-17   1.00000
1.218101E-16  9.315753E-17 -1.256912E-17 -2.992669E-16  1.666622E-17
-9.972288E-17) 

    ( 2.977389E-16 -2.084989E-16 -1.485221E-16  1.218101E-16   1.00000
-5.267190E-17  7.137777E-17 -1.965116E-16 -4.867526E-16 -4.763713E-17)

    ( 2.388032E-16  4.729663E-17 -1.751664E-18  9.315753E-17
-5.267190E-17   1.00000      7.886554E-17  5.536207E-18 -1.002955E-16
4.198607E-16) 

    (-2.618391E-17 -2.069132E-16 -1.777211E-16 -1.256912E-17
7.137777E-17  7.886554E-17  0.100000     -2.707659E-16 -3.110847E-16
1.626168E-16) 

    ( 1.402687E-17  1.579818E-16 -1.772942E-16 -2.992669E-16
-1.965116E-16  5.536207E-18 -2.707659E-16  0.100000      1.541464E-16
1.845583E-16) 

    ( 4.209398E-16  3.038341E-16  5.835718E-16  1.666622E-17
-4.867526E-16 -1.002955E-16 -3.110847E-16  1.541464E-16   1.00000
-5.304459E-17) 

    ( 2.830437E-16  3.128364E-16  2.264017E-16 -9.972288E-17
-4.763713E-17  4.198607E-16  1.626168E-16  1.845583E-16 -5.304459E-17
1.00000    ) 
   )
NIL
> 

I haven't tried this with other matrices (bigger, smaller, etc)
because I'm working like mad to prepare a presentation on what I hope
will become my dissertation research.  Luckily I noticed this *before*
my presentation.  Any suggestions?  I hate to post a bug without even
trying to find the solution, but I won't have any daylight for
bug-pursuit until week-after-next, at the earliest.

Peter

-- 
Peter Olsen, P.E.,                                        pcolsen@acm.org
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."

From owner-SL-news@umnstat.stat.umn.edu Sun Nov 27 02:27:55 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA18708; Sun, 27 Nov 1994 02:27:55 -0600
Resent-Date: Sun, 27 Nov 1994 10:27:03 +0200
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from sunset.ma.huji.ac.il by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA18702; Sun, 27 Nov 1994 02:27:46 -0600
Return-Path: <hjstein@math.huji.ac.il>
Received: by sunset.ma.huji.ac.il id AA00830
  (5.65c/HUJI 4.152 for stat-lisp-news@umnstat.stat.umn.edu); Sun, 27 Nov 1994 10:27:03 +0200
Date: Sun, 27 Nov 1994 10:27:03 +0200
From: "Harvey J. Stein" <hjstein@math.huji.ac.il>
Message-Id: <199411270827.AA00830@sunset.ma.huji.ac.il>
To: pcolsen@acm.org
In-Reply-To: <m0rBdHc-0004q0C@n2ell.uucp>
Subject: Possible bug in xlispstat-3.43?  (Very long with sample data.)
Cc: hjstein@math.huji.ac.il, stat-lisp-news@umnstat.stat.umn.edu
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: "Harvey J. Stein" <hjstein@math.huji.ac.il>


Maybe you have an older version of xlispstat laying around.  I just
tried it under version 2.1 release 2, and didn't see this bug.
However, under this version, the matrix j2j2t comes out quite
differently from what you showed in your email.  So, it might have
just been that the numbers didn't come out to the weird range that
causes problems.  However, I did set the first element to .99999949
and to .9999995, and didn't see the problem.

This is under Linux kernel 1.0.9, with libc.so.4.5.26.

Here's what happened:

hjstein@blinky:~$ xlispstat
XLISP version 2.1, Copyright (c) 1989, by David Betz
XLISP-STAT version 2.1 Release 2, Copyright (c) 1989, by Luke Tierney.
Several files will be loaded; this may take a few minutes.


; loading "/buster/usr/lib/xlispstat/common.lsp"
; loading "/buster/usr/lib/xlispstat/init.lsp"
; loading "/buster/usr/lib/xlispstat/help.lsp"
; loading "/buster/usr/lib/xlispstat/objects.lsp"
; loading "/buster/usr/lib/xlispstat/menubar.lsp"
; loading "/buster/usr/lib/xlispstat/statistics.lsp"
; loading "/buster/usr/lib/xlispstat/dialogs.lsp"
; loading "/buster/usr/lib/xlispstat/graphics.lsp"
; loading "/buster/usr/lib/xlispstat/graphics2.lsp"
; loading "/buster/usr/lib/xlispstat/graphics3.lsp"
; loading "/buster/usr/lib/xlispstat/regression.lsp"
; loading "/buster/usr/lib/xlispstat/autoload.lsp"
>  0.9999995
1
>              
()
NIL
> (setq j2 '#2A((1 2 3) (1 2 3)))
#2A((1 2 3) (1 2 3))
> j2
#2A((1 2 3) (1 2 3))
> (setq j2 '#2A((0.22041774700557615 -0.07156399426167465 0.22053852785148814
-0.43358995282295676 0.08405129944686808 0.5696512911845104
-0.49777434831262696 0.3392749592797975 0.11716543778473844
0.038410518661430186)

(-0.4037245259269013 -0.7156377339190552 0.22091941900186612
0.19522978541376146 0.43208230722690094 -0.02620201935138596
-0.003693166257960915 0.16581320929156904 -0.08956109616597513
0.12263183239204745)

(0.5629646972908083 -0.09669562599208993 0.2912128496265755
0.41345014647435213 0.06406816339970869 -0.38356806302160745
-0.4051221202260222 0.041936962850791355 -0.05751372491339153
-0.31233811787296095)

(-0.05717979856364301 -0.2896077756153183 -0.21222180762196344
-0.3312244626116696 -0.012081091961547788 -0.3032997738639935
-0.3899691341431995 -0.5385633945559848 0.4682786585616773
0.06754260480117286)

(-0.028367246878128017 -0.28885850464052715 -0.4417064393214991
-0.16377203850365346 -0.2087874293428466 0.08530977174666299
-0.21348963699301132 -0.09388347962232893 -0.6838744019416527
-0.34768394581883655)

(-0.3389013330618913 0.21846165388025546 0.6214418248565122
0.01605371155323549 -0.06435704959764908 0.19008437290248983
-0.15840643421163877 -0.5534551558590967 -0.2387291690307836
-0.14933856216567587)

(-0.03535914427467418 -0.35459234433427644 0.16066206226834315
0.23847422474758315 -0.8452704966332278 0.12396384406266081
0.012436051019404492 0.09198860777731158 0.17077686335288597
0.15066918277675698)

(-0.5691935733847164 0.24051826851183916 -0.0564137584125681
0.020076118446038477 -0.11034760997757487 -0.22489844817631116
-0.29492187118361657 0.42796612950998175 0.2346331254600611
-0.4760688470865111)

(-0.16455763426262224 0.26920443602273597 -0.25028430120025447
0.3931283793731041 0.023668710152067497 0.020875045314726243
-0.5274451339265471 0.010706089804086818 -0.1892721583098622
0.6067327975358119)

(-0.015941201447567048 0.04793739971745782 0.3158841347489537
-0.5043138746124384 -0.16442791936668855 -0.5708797673036199
-0.0022005751194933442 0.24234478166620288 -0.33307827205667445
0.3474412074872265))
)
#2A((0.220418 -0.071564 0.220539 -0.43359 0.0840513 0.569651 -0.497774 0.339275 0.117165 0.0384105) (-0.403725 -0.715638 0.220919 0.19523 0.432082 -0.026202 -0.00369317 0.165813 -0.0895611 0.122632) (0.562965 -0.0966956 0.291213 0.41345 0.0640682 -0.383568 -0.405122 0.041937 -0.0575137 -0.312338) (-0.0571798 -0.289608 -0.212222 -0.331224 -0.0120811 -0.3033 -0.389969 -0.538563 0.468279 0.0675426) (-0.0283672 -0.288859 -0.441706 -0.163772 -0.208787 0.0853098 -0.21349 -0.0938835 -0.683874 -0.347684) (-0.338901 0.218462 0.621442 0.0160537 -0.064357 0.190084 -0.158406 -0.553455 -0.238729 -0.149339) (-0.0353591 -0.354592 0.160662 0.238474 -0.84527 0.123964 0.0124361 0.0919886 0.170777 0.150669) (-0.569194 0.240518 -0.0564138 0.0200761 -0.110348 -0.224898 -0.294922 0.427966 0.234633 -0.476069) (-0.164558 0.269204 -0.250284 0.393128 0.0236687 0.020875 -0.527445 0.0107061 -0.189272 0.606733) (-0.0159412 0.0479374 0.315884 -0.504314 -0.164428 -0.57088 -0.00220058 0.242345 -0.333078 0.347441))
> (setq j2j2t (matmult j2 (transpose j2)))
#2A((1 2.87097e-16 6.76542e-17 -2.15539e-16 2.98372e-16 2.29851e-16 -2.51535e-17 1.73472e-17 4.44089e-16 2.60209e-16) (2.87097e-16 1 6.93889e-17 -1.70003e-16 -2.08167e-16 5.55112e-17 -1.2837e-16 1.45717e-16 3.05311e-16 3.1225e-16) (6.76542e-17 6.93889e-17 1 -3.1225e-17 -1.52656e-16 -2.08167e-17 -1.80411e-16 -1.66533e-16 5.55112e-16 2.22045e-16) (-2.15539e-16 -1.70003e-16 -3.1225e-17 1 1.2837e-16 1.05818e-16 6.93889e-18 -2.98372e-16 3.46945e-17 -9.02056e-17) (2.98372e-16 -2.08167e-16 -1.52656e-16 1.2837e-16 1 -4.85723e-17 4.16334e-17 -1.94289e-16 -5.27356e-16 -8.32667e-17) (2.29851e-16 5.55112e-17 -2.08167e-17 1.05818e-16 -4.85723e-17 1 7.97973e-17 0 -8.32667e-17 4.23273e-16) (-2.51535e-17 -1.2837e-16 -1.80411e-16 6.93889e-18 4.16334e-17 7.97973e-17 1 -2.63678e-16 -2.91434e-16 1.66533e-16) (1.73472e-17 1.45717e-16 -1.66533e-16 -2.98372e-16 -1.94289e-16 0 -2.63678e-16 1 1.66533e-16 1.38778e-16) (4.44089e-16 3.05311e-16 5.55112e-16 3.46945e-17 -5.27356e-16 -8.32667e-17 -2.91434e-16 1.66533e-16 1 -5.55112e-17) (


2.60209e-16 3.1225e-16 2.22045e-16 -9.02056e-17 -8.32667e-17 4.23273e-16 1.66533e-16 1.38778e-16 -5.55112e-17 1))
> (print-matrix j2j2t)
#2a(
    (           1  2.87097e-16  6.76542e-17 -2.15539e-16  2.98372e-16  2.29851e-16 -2.51535e-17  1.73472e-17  4.44089e-16  2.60209e-16)
    ( 2.87097e-16            1  6.93889e-17 -1.70003e-16 -2.08167e-16  5.55112e-17  -1.2837e-16  1.45717e-16  3.05311e-16   3.1225e-16)
    ( 6.76542e-17  6.93889e-17            1  -3.1225e-17 -1.52656e-16 -2.08167e-17 -1.80411e-16 -1.66533e-16  5.55112e-16  2.22045e-16)
    (-2.15539e-16 -1.70003e-16  -3.1225e-17            1   1.2837e-16  1.05818e-16  6.93889e-18 -2.98372e-16  3.46945e-17 -9.02056e-17)
    ( 2.98372e-16 -2.08167e-16 -1.52656e-16   1.2837e-16            1 -4.85723e-17  4.16334e-17 -1.94289e-16 -5.27356e-16 -8.32667e-17)
    ( 2.29851e-16  5.55112e-17 -2.08167e-17  1.05818e-16 -4.85723e-17            1  7.97973e-17            0 -8.32667e-17  4.23273e-16)
    (-2.51535e-17  -1.2837e-16 -1.80411e-16  6.93889e-18  4.16334e-17  7.97973e-17            1 -2.63678e-16 -2.91434e-16  1.66533e-16)
    ( 1.73472e-17  1.45717e-16 -1.66533e-16 -2.98372e-16 -1.94289e-16            0 -2.63678e-16            1  1.66533e-16  1.38778e-16)
    ( 4.44089e-16  3.05311e-16  5.55112e-16  3.46945e-17 -5.27356e-16 -8.32667e-17 -2.91434e-16  1.66533e-16            1 -5.55112e-17)
    ( 2.60209e-16   3.1225e-16  2.22045e-16 -9.02056e-17 -8.32667e-17  4.23273e-16  1.66533e-16  1.38778e-16 -5.55112e-17            1)
   )
NIL
> (diagonal j2j25)
error: unbound variable - J2J25
> (diagonal j2j2t)
(1 1 1 1 1 1 1 1 1 1)
> 
>  (setf (select j2j2t 0 0) .99999949)
0.999999
>  (print-matrix j2j2t)
#2a(
    (    0.999999  2.87097e-16  6.76542e-17 -2.15539e-16  2.98372e-16  2.29851e-16 -2.51535e-17  1.73472e-17  4.44089e-16  2.60209e-16)
    ( 2.87097e-16            1  6.93889e-17 -1.70003e-16 -2.08167e-16  5.55112e-17  -1.2837e-16  1.45717e-16  3.05311e-16   3.1225e-16)
    ( 6.76542e-17  6.93889e-17            1  -3.1225e-17 -1.52656e-16 -2.08167e-17 -1.80411e-16 -1.66533e-16  5.55112e-16  2.22045e-16)
    (-2.15539e-16 -1.70003e-16  -3.1225e-17            1   1.2837e-16  1.05818e-16  6.93889e-18 -2.98372e-16  3.46945e-17 -9.02056e-17)
    ( 2.98372e-16 -2.08167e-16 -1.52656e-16   1.2837e-16            1 -4.85723e-17  4.16334e-17 -1.94289e-16 -5.27356e-16 -8.32667e-17)
    ( 2.29851e-16  5.55112e-17 -2.08167e-17  1.05818e-16 -4.85723e-17            1  7.97973e-17            0 -8.32667e-17  4.23273e-16)
    (-2.51535e-17  -1.2837e-16 -1.80411e-16  6.93889e-18  4.16334e-17  7.97973e-17            1 -2.63678e-16 -2.91434e-16  1.66533e-16)
    ( 1.73472e-17  1.45717e-16 -1.66533e-16 -2.98372e-16 -1.94289e-16            0 -2.63678e-16            1  1.66533e-16  1.38778e-16)
    ( 4.44089e-16  3.05311e-16  5.55112e-16  3.46945e-17 -5.27356e-16 -8.32667e-17 -2.91434e-16  1.66533e-16            1 -5.55112e-17)
    ( 2.60209e-16   3.1225e-16  2.22045e-16 -9.02056e-17 -8.32667e-17  4.23273e-16  1.66533e-16  1.38778e-16 -5.55112e-17            1)
   )
NIL
> (setf (select j2j2t 0 0) .9999995)
1
> (print-matrix j2j2t)
#2a(
    (           1  2.87097e-16  6.76542e-17 -2.15539e-16  2.98372e-16  2.29851e-16 -2.51535e-17  1.73472e-17  4.44089e-16  2.60209e-16)
    ( 2.87097e-16            1  6.93889e-17 -1.70003e-16 -2.08167e-16  5.55112e-17  -1.2837e-16  1.45717e-16  3.05311e-16   3.1225e-16)
    ( 6.76542e-17  6.93889e-17            1  -3.1225e-17 -1.52656e-16 -2.08167e-17 -1.80411e-16 -1.66533e-16  5.55112e-16  2.22045e-16)
    (-2.15539e-16 -1.70003e-16  -3.1225e-17            1   1.2837e-16  1.05818e-16  6.93889e-18 -2.98372e-16  3.46945e-17 -9.02056e-17)
    ( 2.98372e-16 -2.08167e-16 -1.52656e-16   1.2837e-16            1 -4.85723e-17  4.16334e-17 -1.94289e-16 -5.27356e-16 -8.32667e-17)
    ( 2.29851e-16  5.55112e-17 -2.08167e-17  1.05818e-16 -4.85723e-17            1  7.97973e-17            0 -8.32667e-17  4.23273e-16)
    (-2.51535e-17  -1.2837e-16 -1.80411e-16  6.93889e-18  4.16334e-17  7.97973e-17            1 -2.63678e-16 -2.91434e-16  1.66533e-16)
    ( 1.73472e-17  1.45717e-16 -1.66533e-16 -2.98372e-16 -1.94289e-16            0 -2.63678e-16            1  1.66533e-16  1.38778e-16)
    ( 4.44089e-16  3.05311e-16  5.55112e-16  3.46945e-17 -5.27356e-16 -8.32667e-17 -2.91434e-16  1.66533e-16            1 -5.55112e-17)
    ( 2.60209e-16   3.1225e-16  2.22045e-16 -9.02056e-17 -8.32667e-17  4.23273e-16  1.66533e-16  1.38778e-16 -5.55112e-17            1)
   )
NIL
> 

From bjm@otter.stat.umn.edu Sun Nov 27 03:21:47 1994
Received: by otter.stat.umn.edu
	(1.38.193.4/16.2) id AA07070; Sun, 27 Nov 1994 03:21:47 -0600
Resent-Date: Sun, 27 Nov 1994 03:21:01 CST
Received: from localhost by otter.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA07056; Sun, 27 Nov 1994 03:21:02 -0600
Return-Path: <bjm@otter.stat.umn.edu>
Message-Id: <9411270921.AA07056@otter.stat.umn.edu>
To: "Harvey J. Stein" <hjstein@math.huji.ac.il>
Cc: pcolsen@acm.org, stat-lisp-news@otter.stat.umn.edu
Subject: Re: Possible bug in xlispstat-3.43? (Very long with sample data.) 
In-Reply-To: Your message of "Sun, 27 Nov 1994 10:27:03 CST."
             <199411270827.AA00830@sunset.ma.huji.ac.il> 
Date: Sun, 27 Nov 1994 03:21:01 CST
From: "Bret J. Musser" <bjm@otter.stat.umn.edu>
Errors-To: owner-SL-news@otter.stat.umn.edu
Resent-From: owner-SL-news@otter.stat.umn.edu
Resent-To: SL-news-list@otter.stat.umn.edu
Resent-Reply-To: "Bret J. Musser" <bjm@otter.stat.umn.edu>


Well, there are a couple of bugs still left in 3.43.  For example, on your
last setf, the HP version prints "0.100000" instead of "1.000000".  These
bugs may be related, and they may all be tied into how xlispstat displays
numbers.  You may also notice that:

> (setf (select j2j2t 0 0) .9999995)
0.9999995
> (print-matrix j2j2t)
#2a(
  ( 0.100000 [the HP bug]2.870967E-16  6.765422E-17 -2.155394E-16 2.983724E-16
...(rest deleted)

> (diagonal j2j2t)
(0.9999995 1.0000000000000002 1.0 1.0000000000000007 1.0000000000000002
1.0000000000000002 0.9999999999999998 0.9999999999999993 1.0000000000000002
1.0)

So xlispstat hasn't lost the knowledge that you replaced the element by
".9999995" but it has gotten a little confused on printing it...

Needless to say, "Be Careful."  Similarly, "Xlisp-Stat is still in a testing
stage."



bjm



From owner-SL-news@umnstat.stat.umn.edu Sun Nov 27 08:40:05 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA19131; Sun, 27 Nov 1994 08:40:05 -0600
Resent-Date: Sun, 27 Nov 94 09:20 EST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from mimsy.cs.umd.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA19125; Sun, 27 Nov 1994 08:40:04 -0600
Return-Path: <n2ell!pcolsen@cs.UMD.EDU>
Received: from n2ell.UUCP 
	by mimsy.cs.UMD.EDU (8.6.9/UMIACS-0.9/04-05-88)
	id JAA21008; Sun, 27 Nov 1994 09:40:03 -0500
Received: by n2ell.uucp (Smail3.1.28.1 #6)
	id m0rBkSS-0004qDC; Sun, 27 Nov 94 09:20 EST
Message-Id: <m0rBkSS-0004qDC@n2ell.uucp>
Date: Sun, 27 Nov 94 09:20 EST
From: pcolsen@n2ell (Peter C. Olsen P.E.)
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Followup: Re Possible Bug in Xlispstat-3.43
Reply-To: pcolsen@acm.org
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: pcolsen@n2ell (Peter C. Olsen P.E.)


Although I forgot to mention it in my original message, all the
functions in which I observed the error had been loaded from a
compiled "*.fsl" file.

Peter

-- 
Peter Olsen, P.E.,                                        pcolsen@acm.org
        P.O. Box 410, Simpsonville, MD 21150-0410 USA, 410-997-8584
       "Engineering is the art of applying a professional knowledge
  of mathematics and the physical sciences to improve the quality of life."

From luke@umnstat.stat.umn.edu Mon Nov 28 02:54:00 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA21374; Mon, 28 Nov 1994 02:54:00 -0600
Resent-Date: Mon, 28 Nov 94 2:53:57 CST
Received: from mail.unet.umn.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA21368; Mon, 28 Nov 1994 02:53:59 -0600
Return-Path: <luke@umnstat.stat.umn.edu>
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA13881; Mon, 28 Nov 1994 02:53:57 -0600
From: luke@umnstat.stat.umn.edu
Message-Id: <199411280853.AA24977@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Mon, 28 Nov 1994 02:53:58 -0600
Subject: Bug in ~f printing in xlisp-stat-3.43
To: stat-lisp-news@umnstat.stat.umn.edu
Date: Mon, 28 Nov 94 2:53:57 CST
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luke@umnstat.stat.umn.edu

There is a bug in the ~f format directive in xlispstat 3.43 that
affects all vesions. The bug is that certain numbers are not rounsed
properly on printing. For example,

> (format t "~,3f" .9999)
0.100

Since ~f is useg as part of ~g format printing, any printing of
formatted numbers is affected. This bug krept in while I was rewriting
the printing code to avoid a bug in the Metrowerks libraries for the
Macintosh version. All versions are affected by this bug.

The bug has been fixed. I will put a new version of the file xlfio.c
which contains the fix in the xlispstat ftp directory on umnstat. You
can recompile the UNIX version with this new file to correct the bug.
I will release a full distribution of all versions with the fix as
soon as possible, but this may take a few days.

luke

From owner-SL-news@umnstat.stat.umn.edu Mon Nov 28 09:27:05 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA22140; Mon, 28 Nov 1994 09:27:05 -0600
Resent-Date: Mon, 28 Nov 1994 10:27:00 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from zombie.ncsc.mil by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA22134; Mon, 28 Nov 1994 09:27:03 -0600
Return-Path: <pcolsen@zombie.ncsc.mil>
Received: (from pcolsen@localhost) by zombie.ncsc.mil (8.6.9/8.6.9) id KAA18362; Mon, 28 Nov 1994 10:27:00 -0500
Date: Mon, 28 Nov 1994 10:27:00 -0500
From: "Peter C. Olsen" <pcolsen@zombie.ncsc.mil>
Message-Id: <199411281527.KAA18362@zombie.ncsc.mil>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Passing arguments? Are vectors or lists faster in matmults?
Cc: pcolsen@acm.org
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: "Peter C. Olsen" <pcolsen@zombie.ncsc.mil>


I think that I've found part of the reason for the leisurely pace
of my code: I'm dealing with a very long data list as a list, by 
peeling off the first element and then storing the remainder back
as the list
	(loop
	  (let ((this-one (car list)))
            (setq (list (cdr list)))
            (stuff ...)))
As my lists may contain tens of thousands of numeric atoms, this
may account for lots of time.

An obvious way around this would be to pass the list once, and then
use an index variable to "select" the right element --- and this raises some
questions:

   1.  Is there an appreciable difference in speed between using 
       select on a list and using it on a vector?
   2.  The "logical" place to make the index selection is several
       layers down in my code, so I'd like to pass the entire
       argument structure down to that layer.  On the other hand, 
       I don't want to spend lots of time copying elements I won't
       need.  In C terms, does Xlispstat pass arguments "by reference" 
       "by value"?  (Will I save time by inverting the logic of
       my algorithm to make the selection at the top?)
   3.  My overall data structure is now a list-of-lists and I do
       lots of linear algebra on the sub-lists?  Would I win big by
       changing those sub-lists to vectors?

Any advice will be gratefully appreciated!

Peter


From owner-SL-news@umnstat.stat.umn.edu Mon Nov 28 10:39:33 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA22611; Mon, 28 Nov 1994 10:39:33 -0600
Resent-Date: Mon, 28 Nov 94 11:34:39 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from KARIBA.BBN.COM by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA22600; Mon, 28 Nov 1994 10:39:30 -0600
Return-Path: <kanderso@bbn.com>
Message-Id: <9411281639.AA22600@umnstat.stat.umn.edu>
Received: by KARIBA.BBN.COM id aa03776; 28 Nov 94 11:40 EST
To: "Peter C. Olsen" <pcolsen@zombie.ncsc.mil>
Cc: stat-lisp-news@umnstat.stat.umn.edu, pcolsen@acm.org
Subject: Re: Passing arguments? Are vectors or lists faster in matmults? 
In-Reply-To: Your message of Mon, 28 Nov 94 10:27:00 -0500.
             <199411281527.KAA18362@zombie.ncsc.mil> 
Date: Mon, 28 Nov 94 11:34:39 -0500
From: kanderso@bbn.com
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: kanderso@bbn.com

  Date: Mon, 28 Nov 1994 10:27:00 -0500
  From: "Peter C. Olsen" <pcolsen@zombie.ncsc.mil>
  To: stat-lisp-news@umnstat.stat.umn.edu
  Subject: Passing arguments? Are vectors or lists faster in matmults?
  Cc: pcolsen@acm.org
  Errors-To: owner-SL-news@stat.umn.edu
  
  
  I think that I've found part of the reason for the leisurely pace
  of my code: I'm dealing with a very long data list as a list, by 
  peeling off the first element and then storing the remainder back
  as the list
  	(loop
  	  (let ((this-one (car list)))
              (setq (list (cdr list)))
              (stuff ...)))

I assume you have (setq list (cdr list)).  This is a fine way to iterate
over the elements of a list. In isolation, it is not a performance problem.

  As my lists may contain tens of thousands of numeric atoms, this
  may account for lots of time.
  
  An obvious way around this would be to pass the list once, and then
  use an index variable to "select" the right element --- and this raises some
  questions:
  
     1.  Is there an appreciable difference in speed between using 
         select on a list and using it on a vector?

Yes, selecting the i'th element out of a list is an O(i) operation, while
selecting an element out of an array is O(1).  So, generally selecting
random elements of an array is faster than selecting random elements of a
list. 

     2.  The "logical" place to make the index selection is several
         layers down in my code, so I'd like to pass the entire
         argument structure down to that layer.  On the other hand, 
         I don't want to spend lots of time copying elements I won't
         need.  In C terms, does Xlispstat pass arguments "by reference" 
         "by value"?  (Will I save time by inverting the logic of
         my algorithm to make the selection at the top?)
     3.  My overall data structure is now a list-of-lists and I do
         lots of linear algebra on the sub-lists?  Would I win big by
         changing those sub-lists to vectors?
  
Maybe. If lists are an inappropriate data structure for what you are doing,
vectors might be better.  For example, it would be a bad idea to represent a
two dimensional matrix as a lists of lists in a matrix multiplication
(see the file cs.utexas.edu:pub/garbage/worse.ps).
  


From owner-SL-news@umnstat.stat.umn.edu Mon Nov 28 20:57:53 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA27892; Mon, 28 Nov 1994 20:57:53 -0600
Resent-Date: Mon, 28 Nov 1994 18:57:42 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA27886; Mon, 28 Nov 1994 20:57:51 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA18537; Mon, 28 Nov 94 18:57:44 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA16961; Mon, 28 Nov 94 18:57:42 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9411290257.AA16961@galton.math.ucla.edu>
Subject: UCLA Statistics WWW Server
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Mon, 28 Nov 1994 18:57:42 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 1759      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

This is of some interest to Xlisp-Stat users, perhaps. For the
Electronic Textbook and for the NELS Example mentioned below, 
we use Xlisp-Stat from Mosaic (or any MIME compatible browser).
In the near future (a week, say) I will organize the Lisp
directories in ~/develop in the same way as the TeX is done now.
===================================================================
News on the UCLA Statistics Server

We are adding stuff to 

http://www.stat.ucla.edu

from ftp.stat.ucla.edu. An example is

http://www.stat.ucla.edu/develop/tex/index.html

which leads to a large amount of online TeX/LaTeX documentation. Most
of this is in Postscript, some is plain text, some is html.

Other new things in:

http://www.stat.ucla.edu/consult/nels/index.html

which describes one of our large projects: the multilevel/multivariate
analysis of a large educational database NELS-88.

http://www.stat.ucla.edu/graduate/M278/index.html

which has information about our graduate Nonlinear Multivariate Analysis
course, with a nice multiple correspondence analysis demo on an
educational data set.

http://www.stat.ucla.edu/practice/case-studies/index.html

a growing directory of case studies in html

http://www.stat.ucla.edu/textbook/index.html

a growing electronic introductory statistics textbook

http://www.stat.ucla.edu/consult/free.html

free electronic statistical consulting at UCLA

and much more. Suggestions welcome. To use our server you need
mosaic, to read the ps you need ghostview, to do some demos you
need xlispstat.


--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Tue Nov 29 08:03:00 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA29596; Tue, 29 Nov 1994 08:03:00 -0600
Resent-Date: Tue, 29 Nov 1994 15:02:39 +0100
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from hypatia-gw.ethz.ch by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA29589; Tue, 29 Nov 1994 08:02:53 -0600
Return-Path: <maechler@stat.math.ethz.ch>
Received: from ingrid.ethz.ch (ingrid.ethz.ch [129.132.58.16]) by hypatia.ethz.ch (8.6.5/Main-mathdept-mailer) with ESMTP id PAA22069 for <stat-lisp-news@umnstat.stat.umn.edu>; Tue, 29 Nov 1994 15:02:42 +0100
From: Martin Maechler <maechler@stat.math.ethz.ch>
Received: from localhost (maechler@localhost) by ingrid.ethz.ch (8.6.5/D-MATH-stat-client) id PAA22011; Tue, 29 Nov 1994 15:02:39 +0100
Date: Tue, 29 Nov 1994 15:02:39 +0100
Message-Id: <199411291402.PAA22011@ingrid.ethz.ch>
To: Lisp-Stat Mailinglist <stat-lisp-news@umnstat.stat.umn.edu>
Subject: FORWARD of Announce: The OO-Browser, the multi-language object-oriented browser.
Reply-To: Martin Maechler <maechler@stat.math.ethz.ch>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Martin Maechler <maechler@stat.math.ethz.ch>

I think this could be  VERY interesting for  X-Lisp-Stat  to have
available.

Only CLOS (Common Lisp Object System) is mentioned below;
maybe someone could port it to  Lisp-Stat's  Object System ??

Martin Maechler <maechler@stat.math.ethz.ch>		 <><	 _
Seminar fuer Statistik, SOL F5				       _| |_
ETH (Federal Inst. Technology)	8092 Zurich	 SWITZERLAND  |_   _|
phone: x-41-1-632-3408		fax: ...-1086			|_|

------- Start of forwarded message -------

From: bweiner@sun285.pts.mot.com (Bob Weiner)
Reply-To: bob_weiner@pts.mot.com
Newsgroups: gnu.emacs.sources
Subject: ANNOUNCE: The OO-Browser, the multi-language object-oriented browser.
Organization: Motorola Inc, Paging Products Group, Boynton Beach, FL
Date: Mon, 28 Nov 1994 04:19:03 GMT

The OO-Browser is part of the InfoDock tool framework, which will be
announced and released under the terms of the GNU Public License
within the next week or so.  Both the OO-Browser and InfoDock have
been donated by Motorola to the Free Software Foundation and will be
available via anonymous ftp in the near future.

Since the OO-Browser is useful with various versions of Emacs, it is
being released here.

This message summarizes the OO-Browser's features.  The next two
messages contain the complete source and a full user manual in
Postscript and Info formats.

Do not send requests asking to have the OO-Browser mailed to you; it
will not be.

Here is the contents of the "BR-FEATURES" file included in the
OO-Browser distribution.

OO-Browser Features
*******************

The OO-Browser is a multi-windowed, interactive object-oriented class browser
similar in use to the well-known Smalltalk browsers.  It is unique in a
number of respects foremost of which is that it works well with a
multiplicity of object-oriented languages.  It provides both textual
views within an editor and graphical views under the X window system.


* Support for all popular OO Languages on UNIX
----------------------------------------------

  ** Contains support for Eiffel, C++, Objective-C, Common Lisp Object System
     (CLOS), and Smalltalk class browsing.  Additionally, support for
     browsing large amounts of material in Info format by node name (a
     popular online documentation format with cross references and
     hierarchical structure) is included.

  ** Immediate switching among languages is allowed.  One can switch
     from Eiffel browsing to C++ browsing in an instant, if so desired.
     Or simply run two OO-Browsers side by side.

  ** Multiple inheritance support is built-in, where applicable.

  ** Statistics on classes and Environments may be displayed.

  ** Language-specific class information may be shown.  Presently this
     feature is supported only for Eiffel.  A listing of class parents,
     attributes, routines and best guess (highly accurate) list of
     routine calls may be displayed.  Outputs from the Eiffel 'short'
     and 'flat' commands may also be shown.


* For Serious Use
----------------------

  ** Library (stable) and System (in development) classes may be
     maintained and listed separately or together.  Any number of
     Libraries and Systems may be combined for listing in a single
     Environment.  There are no fixed limits on the number of classes per
     Environment nor on the number of Environments that may be browsed.

  **  All source code, over 200 kilobytes, is included and is heavily
      documented.


* Ease of Use
-------------

  ** Machine-independent mouse support is included along with an extremely
     intuitive point and click interface.  The OO-Browser is pre-configured
     for use with X windows, Sunview or Apollo's DM window system.

  ** The OO-Browser help display gives short descriptions of all of
     the commands and key bindings available in the browser.  By clicking
     on any such selection, the corresponding command is executed.

  ** One may also click on class names to see ancestors, descendants,
     or the class itself.  Just select a class name and the OO-Browser
     immediately will display or edit the class' source.  Once a class
     file has been loaded, one can quickly switch to it by selection
     from a menu of such files. 

  ** For a number of languages, one may also select a feature
     (method) name or declaration and move directly to the definition
     of the feature.  The browser accounts for the complexities of member name
     overloading in C++ and unlimited feature renaming in Eiffel so that you
     need not.  Just click on a declaration and watch the browser display jump
     to the proper defintion.

  ** Jump back to a previously visited class or feature by selecting from a
     list of recently visited ones.

  ** OO-Browser commands may also be invoked from the keyboard, allowing
     unrestricted use via standard terminal interfaces.

* Speed
-------

  ** Once an Environment (a lookup data structure for a set of classes)
     is built, startup is fast along with the display of selected classes or
     features.  Environment building is also fast.  Response times on
     workstations are excellent; for example, in one test case, less than two
     real seconds were required to display a set of complex inheritance graphs
     involving over 400 classes.

* Flexibility
-------------

  ** A Motif-based (X Window) hierarchy display can provide views of
     class inheritance structure and lexically included features.  A
     click on a class or feature name immediately jumps to it in the
     editor, providing rapid, visual browsing.

  ** The OO-Browser uses class source code only, hence no compiler is
     necessary for proper browser operation.  This allows one to explore
     class libraries without the need for additional tools.

  ** Class inheritance networks may be displayed.  Either a single
     inheritance level (parents or children) or the entire inheritance
     network (ancestors or descendants) for a set of classes may be shown.

  ** Class files may be added, replaced or deleted one at a time or as a
     group by specifying a root directory below which all class files are
     found, including those in subdirectories.

  ** On startup, the OO-Browser lists all currently known classes within a
     particular Environment.  Any desired classes may be found by searching
     or by matching a regular expression or string to the set of class names.

  ** The number of class listing windows is limited only by the screen
     width and the width setting used for class listing windows.

  ** The OO-Browser is adaptable to any class-based object-oriented language.


* Editor Integration
--------------------

  ** The OO-Browser works with the powerful, freely distributable, GNU
     Emacs editor; it works on any UNIX system display supported by Emacs.

  ** All OO-Browser outputs are text which may be edited as desired or
     saved to files.

  ** OO-Browser functions may be used standalone within the editor
     without using the multi-windowed browser interface.  One useful
     example is to point to a class name such as a parent class in the
     text of another class and have the parent's source appear in an
     editable fashion.
--
Bob Weiner, Motorola, 1500 Gateway Blvd, MS-70, Boynton Beach, FL 33426-8753
Work: 407-364-2091   Fax: 407-364-3329  INTERNET:  <weiner@mot.com>
Check out "/anonymous@ftp.cs.brown.edu:pub/hyperbole" if you would like a
well designed, free everyday information management tool for UNIX
workstations.

------- End of forwarded message -------

From owner-SL-news@umnstat.stat.umn.edu Tue Nov 29 09:17:48 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA00224; Tue, 29 Nov 1994 09:17:48 -0600
Resent-Date: Tue, 29 Nov 1994 10:14:35 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA00217; Tue, 29 Nov 1994 09:17:46 -0600
Return-Path: <uluru@gibbs.oit.unc.edu>
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id KAA10680; Tue, 29 Nov 1994 10:17:23 -0500
Message-Id: <199411291517.KAA10680@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Tue, 29 Nov 1994 10:14:35 -0500
To: stat-lisp-news@umnstat.stat.umn.edu
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: Another Bug
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

I have discovered that the code

(setf a (list 1 2 3))
(setf b (list 4 5 6))
(defun foo  (x &rest args &key abc) 
  "Hi")

(foo a b)

works under the old version 2.1r3a7 but not under the newere versions 3.37,
3.39 or 3.43. Under the new versions we get the message 
Error: keyword value missing

Note, however, that the following code works under all four versions

(defun foo  (x &rest args )
  "Hi")
(foo a b)


=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From luke@umnstat.stat.umn.edu Tue Nov 29 09:37:07 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA00539; Tue, 29 Nov 1994 09:37:07 -0600
Resent-Date: Tue, 29 Nov 94 9:37:01 CST
Received: from mail.unet.umn.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA00533; Tue, 29 Nov 1994 09:37:05 -0600
Return-Path: <luke@umnstat.stat.umn.edu>
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA00331; Tue, 29 Nov 1994 09:37:01 -0600
From: luke@umnstat.stat.umn.edu
Message-Id: <199411291537.AA29936@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 29 Nov 1994 09:37:03 -0600
Subject: Re: Another Bug
To: stat-lisp-news@umnstat.stat.umn.edu, uluru@gibbs.oit.unc.edu
Date: Tue, 29 Nov 94 9:37:01 CST
X-Mailer: ELM [version 2.3 PL6]
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luke@umnstat.stat.umn.edu

> 
> I have discovered that the code
> 
> (setf a (list 1 2 3))
> (setf b (list 4 5 6))
> (defun foo  (x &rest args &key abc) 
>   "Hi")
> 
> (foo a b)
> 
> works under the old version 2.1r3a7 but not under the newere versions 3.37,
> 3.39 or 3.43. Under the new versions we get the message 
> Error: keyword value missing
> 

This is no bug. One of the objectives of the new releases is to move
the basic lisp system closer to common lisp. In CL, the &key construct
requires that arguments, if supplied, come in keyword/value pairs.
Yours do not -- that is an error.

luke


From owner-SL-news@umnstat.stat.umn.edu Tue Nov 29 10:19:53 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA01018; Tue, 29 Nov 1994 10:19:53 -0600
Resent-Date: Tue, 29 Nov 1994 17:16:20 +0100 (MET)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from halley.upf.es by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA01010; Tue, 29 Nov 1994 10:19:22 -0600
Return-Path: <udina@upf.es>
Message-Id: <9411291619.AA01010@umnstat.stat.umn.edu>
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA01074; Tue, 29 Nov 94 17:29:59 +0100
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA13035; Tue, 29 Nov 94 17:16:20 +0100
From: udina@upf.es
Subject: Re: Another Bug
To: uluru@gibbs.oit.unc.edu (Forrest Young)
Date: Tue, 29 Nov 1994 17:16:20 +0100 (MET)
Cc: stat-lisp-news@umnstat.stat.umn.edu (lisp stat list)
In-Reply-To: <199411291517.KAA10680@gibbs.oit.unc.edu> from "Forrest Young" at Nov 29, 94 10:14:35 am
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
Content-Length: 1053      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: udina@upf.es

~~
~~I have discovered that the code
~~
~~(setf a (list 1 2 3))
~~(setf b (list 4 5 6))
~~(defun foo  (x &rest args &key abc) 
~~  "Hi")
~~
~~(foo a b)
~~
~~Note, however, that the following code works under all four versions
~~
~~(defun foo  (x &rest args )
~~  "Hi")
~~(foo a b)
~~

I think that this is not a bug, in the documentation about release 3
luke points out something about that: if in the defun there is a key
without default value, the caller MUST give a value to the key.

-- 
Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |        voice: 34 - 3 - 542 17 56
Universitat Pompeu Fabra            |          fax: 34 - 3 - 542 17 46
       Balmes 132                   |       e-mail: udina@upf.es      
       08008 Barcelona              |    appleLink: spa0172           
       SPAIN	                    |     Servicom: sva00484
                       Office #610, 6th floor, old Balmes  
___________________________________/_\_________________________________

From owner-SL-news@umnstat.stat.umn.edu Tue Nov 29 13:55:40 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA02331; Tue, 29 Nov 1994 13:55:40 -0600
Resent-Date: Tue, 29 Nov 1994 14:52:43 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from gibbs.oit.unc.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA02325; Tue, 29 Nov 1994 13:55:36 -0600
Return-Path: <uluru@gibbs.oit.unc.edu>
Received: from [152.2.85.134] by gibbs.oit.unc.edu (8.6.4.3/10.1)
	id OAA14752; Tue, 29 Nov 1994 14:55:33 -0500
Message-Id: <199411291955.OAA14752@gibbs.oit.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Tue, 29 Nov 1994 14:52:43 -0500
To: stat-lisp-news@umnstat.stat.umn.edu
From: uluru@gibbs.oit.unc.edu (Forrest Young)
Subject: Not A Bug
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: uluru@gibbs.oit.unc.edu (Forrest Young)

>> 
>> >> 
>> >> I have discovered that the code
>> >> 
>> >> (setf a (list 1 2 3))
>> >> (setf b (list 4 5 6))
>> >> (defun foo  (x &rest args &key abc) 
>> >>   "Hi")
>> >> 
>> >> (foo a b)
>> >> 
>> >> works under the old version 2.1r3a7 but not under the newere versions
>>3.37,
>> >> 3.39 or 3.43. Under the new versions we get the message 
>> >> Error: keyword value missing
>> >> 
>> >
>> >This is no bug. One of the objectives of the new releases is to move
>> >the basic lisp system closer to common lisp. In CL, the &key construct
>> >requires that arguments, if supplied, come in keyword/value pairs.
>> >Yours do not -- that is an error.
>> >
>> >luke
>> 
>> I don't understand. I'm not supplying anything having to do with the
>> keyword, as b is part of the &rest, not part of &key.  I think that what
>> you are saying would imply that 
>> 
>> (foo a b :abc)
>> 
>> would be an error since :abc isnt paired with a value.  I should instead say
>> 
>> (foo a b :abc t) pairing :abc with its value t.
>> 
>
>All argumants after the first are grouped in to the rest argument. And
>all arguments after the first are interpreted as keyword-value pairs,
>which requires minimally that their number be even.
>
>luke

My problem ("bug") came about in the process of modifying plot-points. 
With plot-points the user has two syntacies that can be used.  Either

(plot-points x y :show nil) 
  
or 

(plot-points (list x y) :show nil).

So, I am writting code that trys to allow both usages.  What I did (back
when, with the old system) was write

(defun plot-points  (x &rest args &key (show t))
  (when (not (listp (first x)))  
        (setf x (list x (first args)))
        (setf args (rest args)))
  (let ((w (apply #'send scatterplot2-proto :new x :show nil args)))
    (when show (send w :show-window))
    w))

Thus, in the first syntax, I treated the "y" as part of args, along with
the other keyword-value pairs, producing an "args" list of ((4 5 6) :show
nil) --- if (setf y (list 4 5 6)) --- then I stripped off y and combined it
with x to produce an internal (list x y) and shortened args. In the second
usage I skipped this "preprocessing".  

Apparently this change means that I can't take that same approach. 
However, the new version still allows plot-points to have either syntax. 
Do you do this in c-code?  How can I do it in lisp?


=====================================================================
Forrest Young                     Internet:       forrest@unc.edu
UNC Psychometrics                 Home Telephone: 919-563-4464
CB-3270 Davie Hall                Home FAX:       919-304-2329
Chapel Hill NC 27599-3270         Work Telephone: 919-962-5038
USA                               Work FAX:       919-962-5145
=====================================================================



From owner-SL-news@umnstat.stat.umn.edu Mon Dec  5 09:06:33 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA08183; Mon, 5 Dec 1994 09:06:33 -0600
Resent-Date: Mon, 5 Dec 1994 10:06:30 -0500 (EST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from Emerald.Tufts.EDU by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA08177; Mon, 5 Dec 1994 09:06:31 -0600
Return-Path: <dmarshal@emerald.tufts.edu>
Received: (from dmarshal@localhost) by emerald.tufts.edu (8.6.9/8.6.9) id KAA07250; Mon, 5 Dec 1994 10:06:30 -0500
Date: Mon, 5 Dec 1994 10:06:30 -0500 (EST)
From: Durwood Marshall <dmarshal@emerald.tufts.edu>
Subject: Possible bug
To: stat-lisp-news@umnstat.stat.umn.edu
Cc: Durwood Marshall <dmarshal@emerald.tufts.edu>
Message-Id: <Pine.3.89.9412050953.A22423-0100000@emerald.tufts.edu>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Durwood Marshall <dmarshal@emerald.tufts.edu>

Hello list members,

We have XlispStat ver. 2.1 rel. 3.39  running on a Dec Alpha 3000 model 800 
under OSF/1 ver. 3.0.  The Kernel-Dens function appears to have a problem.
Whenever data is generated from within XlispStat and passed,
Kernel-Dens works fine.  However, if I read in a column of numbers from an
external file Kernel-Dens returns the error:

    Bad Linear Algebra data (....the data...)
    Happened in:#<subr-kernel-dens:#140066fb0>

The data that gets read in is usable in histogram, boxplot
and others.  One other point to note is that the data 
returned in the error message has many more significant digits after the 
decimal point.  This seems to be the case for any length vector.

I there something obvious that I am missing here?  Thank you for your time.
===========================================================
Durwood Marshall - Tufts University - Academic Computer Services
Statistical/Software Consultant - Mgr. User Software Services
Phone:  617-628-5000 x2180        Fax:    617-627-3667
E-Mail: dmarshal@emerald.tufts.edu



From owner-SL-news@umnstat.stat.umn.edu Mon Dec  5 10:20:08 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA08618; Mon, 5 Dec 1994 10:20:08 -0600
Resent-Date: Mon, 5 Dec 1994 11:20:03 -0500 (EST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from Emerald.Tufts.EDU by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA08612; Mon, 5 Dec 1994 10:20:04 -0600
Return-Path: <dmarshal@emerald.tufts.edu>
Received: (from dmarshal@localhost) by emerald.tufts.edu (8.6.9/8.6.9) id LAA17517; Mon, 5 Dec 1994 11:20:03 -0500
Date: Mon, 5 Dec 1994 11:20:03 -0500 (EST)
From: Durwood Marshall <dmarshal@emerald.tufts.edu>
Subject: Possible Kernel-Dens bug 
To: stat-lisp-news@umnstat.stat.umn.edu
Message-Id: <Pine.3.89.9412051125.B7647-0100000@emerald.tufts.edu>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Durwood Marshall <dmarshal@emerald.tufts.edu>

Hello
For completeness, as suggested, I include the code.

We have XlispStat ver. 2.1 rel. 3.39  running on a Dec Alpha 3000 model 800 
under OSF/1 ver. 3.0.  The Kernel-Dens function appears to have a problem.
Whenever data is generated from within XlispStat and passed,
Kernel-Dens works fine.  
    for example: (def normvar(normal-rand 500))
                 (plot-lines (kernel-dens normvar))

However, if I read in a column of numbers from an
external file Kernel-Dens returns the error:

   (def stuff(read-data-columns "stuff.dat"))
   (plot-lines(kernel-dens stuff))

    Bad Linear Algebra data (....the data...)
    Happened in:#<subr-kernel-dens:#140066fb0>

The data that gets read in is usable in histogram, boxplot
and others.  One other point to note is that the data 
returned in the error message has many more significant digits after the 
decimal point.  This seems to be the case for any length vector.

I there something obvious that I am missing here?  Thank you for your time.
===========================================================
Durwood Marshall - Tufts University - Academic Computer Services
Statistical/Software Consultant - Mgr. User Software Services
Phone:  617-628-5000 x2180        Fax:    617-627-3667
E-Mail: dmarshal@emerald.tufts.edu




From owner-SL-news@umnstat.stat.umn.edu Mon Dec  5 13:11:29 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA09613; Mon, 5 Dec 1994 13:11:29 -0600
Resent-Date: Mon, 5 Dec 1994 20:08:14 +0100 (MET)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from halley.upf.es by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA09607; Mon, 5 Dec 1994 13:11:22 -0600
Return-Path: <udina@upf.es>
Message-Id: <9412051911.AA09607@umnstat.stat.umn.edu>
Received: from libiya.upf.es by halley.upf.es with SMTP
	(1.37.109.4/16.2) id AA04829; Mon, 5 Dec 94 20:22:22 +0100
Received: by libiya.upf.es
	(1.37.109.4/15.6) id AA14470; Mon, 5 Dec 94 20:08:15 +0100
From: udina@upf.es
Subject: Re: Possible Kernel-Dens bug
To: dmarshal@emerald.tufts.edu (Durwood Marshall)
Date: Mon, 5 Dec 1994 20:08:14 +0100 (MET)
Cc: stat-lisp-news@umnstat.stat.umn.edu (lisp stat list)
In-Reply-To: <Pine.3.89.9412051125.B7647-0100000@emerald.tufts.edu> from "Durwood Marshall" at Dec 5, 94 11:20:03 am
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
Content-Length: 1269      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: udina@upf.es

~~
~~Hello
~~For completeness, as suggested, I include the code.
~~
~~
~~   (def stuff(read-data-columns "stuff.dat"))
~~   (plot-lines(kernel-dens stuff))
~~
~~    Bad Linear Algebra data (....the data...)
~~    Happened in:#<subr-kernel-dens:#140066fb0>
~~
~~The data that gets read in is usable in histogram, boxplot
~~and others.  One other point to note is that the data 

note that  read-data-columns return a list of columns. So if there is
only one column, you get a list of a list of data.
Histogram and boxplot work fine with it, but kernel-dens wants only a
list of numbers, so you must call

(plot-lines (kernel-dens (first stuff)))

instead of your call. You will have no problems, I hope.

-- 
Frederic Udina
_______________________________________________________________________
Facultat de Ciencies Economiques    |        voice: 34 - 3 - 542 17 56
Universitat Pompeu Fabra            |          fax: 34 - 3 - 542 17 46
       Balmes 132                   |       e-mail: udina@upf.es      
       08008 Barcelona              |    appleLink: spa0172           
       SPAIN	                    |     Servicom: sva00484
                       Office #610, 6th floor, old Balmes  
___________________________________/_\_________________________________

From luke@umnstat.stat.umn.edu Tue Dec  6 15:40:01 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA25409; Tue, 6 Dec 1994 15:40:01 -0600
Resent-Date: Tue, 6 Dec 1994 15:40:02 -0600
Received: from mail.unet.umn.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA25403; Tue, 6 Dec 1994 15:40:00 -0600
Return-Path: <luke@umnstat.stat.umn.edu>
Received: from umnstat.stat.umn.edu (nokomis.stat.umn.edu) by mail.unet.umn.edu (5.65c)
	id AA29976; Tue, 6 Dec 1994 15:39:59 -0600
Date: Tue, 6 Dec 1994 15:40:02 -0600
From: luke@umnstat.stat.umn.edu
Message-Id: <199412062140.AA22211@umnstat.stat.umn.edu>
Received: by umnstat.stat.umn.edu; Tue, 6 Dec 1994 15:40:02 -0600
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: XLISP-STAT Release 3.44 available (includes fix for print bug)
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luke@umnstat.stat.umn.edu

XLISP-STAT Release 3.44 for UNIX systems, Macintosh and MS Windows is
now available for anonymous ftp from umnstat.stat.umn.edu
(128.101.51.1). All versions include a number of bug fixes, in
particular a fix for the floating point printing bug introduced in
Release 3.43.

The sources for all versions are in

	pub/xlispstat/xlispstat-3-44.tar.gz

This a tar archive compressed with the GNU gzip compression utility.
Once you have retrieved the file you can extract the sources with

	gzip -cd | tar xvf - 

The Macintosh and MS Windows distributions are in the directories
pub/xlispstat/macintosh and pub/xlispstat/mswin. README files in those
directories give further details. The Macintosh release now includes a
native PowerPC version.

For the Macintosh version, be sure to get both an executable and the
support fies. Workspaces are tied to version numbers; old workspaces
will not work with new executables.

This is a beta realease -- some things are still in flux, others have
not been extensively tested. Please let me know if you run into any
problems.

Changes from 3.37 include

3-39 - 3-40:

	Fixed SetPort bug that could cause crash after creating graph
	with :show nil.

	Added win32 code.

	Fixed scrolling bug in Windows version (affected name-list
	primarily).

	Added check to prevent graph-protos with vars=0 from failing
	on some systems.

	Modified load-dll for Windows to return multiple values on
	error.

	Modified postscript header for saved bitmap image on X11.

	Fixed bug in cond with empty consequent (from Tom Almy).

	Added check for Win16 vs Win32 workspace.

	Added WIN32 *features* for Win32 version.

	Added exit call to osfinish on Macintosh version -- may avoid
	some problems.

	Fixed Windows listener trimming to ignore line structure and
	always trim.

	Added some tests for initialization for handling early
	termination in Macintosh version.

	added :if-does-not-exist nil to internal load call


3-40 - 3-41:

	Redefined pusharg macro on suns to work arouns apparent
	compiler bug in 4.1.3 optimizer for sparcs

	Increased stack size on win32 version.

	Fixed makefile wor win32 so icon is available to progman.

	Added handling of show/hide window messages for modeless
	dialogs in Windows version.

	Added :xlisp-stat *feature* entry.


3.41 - 3.42:

	Modified callbacks to protect against oscheck event processing
	on Macintosh and Windows version.

	Changed OFFTYPE to unsigned long on all versions -- avoid
	problems with hashing where high end of vritual address space
	is used.

	Fixed activation handling to work properly in win32.

	Fixed polygon drawing to work in win32.

	Cleanups for conversion to MetroWerks compiler;	added macros
	for full prototype generation on files used on Macintosh.

	Added PowerPC changes.

	Fixed load to properly set *load-pathname*.

	Modified test files to use *load-pathname* for directory of
	stuff to load.

	Modified redraw content to not erase entire view rectangle.

	Modified comparison to break ties using original position
	(make stable).

	Modified to handle arc drawing with large/negative arcs
	properly on windows version.

	Fixed size and location commands to work with iconified windows
	on Windows version.

3.42 - 3.43:

	Cleaned up minimization code; replaced internal derivative and
	minimization code by lisp code. Added level 1 BLAS routines.

	Modified floating point printing to work around MetroWerks bug
	and produce nicer output.

	Replaced lisp 'replace' function by internal version.

	Fixed errors in byte code handling of typed array arguments to
	aref's.

	Fixed bug in make-array's handling of :initial-contents arguments.

	Fixed problems with allocating and accessing complex vectors.

	Fixed check of argument count in test code generation.


3.43 - 3.44:

	Fixed declaration in linalg.h that caused problems on non-ansi
	compilers (like sun's bundled cc).

	Modified coerce to allow coercing multi-dimensional typed arrays.

	Fixed bug in ~f floating point printing introduced in
	workaround for MetroWerks bug.

	Modified vector allocation to try minor gc before major one.
	This may improve gc speed for vector allocation-intensize code.

From owner-SL-news@umnstat.stat.umn.edu Tue Dec  6 16:08:01 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA25564; Tue, 6 Dec 1994 16:08:01 -0600
Resent-Date: Wed, 7 Dec 94 11:09:23 NZD
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from ccvcom.auckland.ac.nz by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA25558; Tue, 6 Dec 1994 16:07:58 -0600
Return-Path: <triggs@stat.auckland.ac.nz>
Received: from stat.auckland.ac.nz by ccvcom.auckland.ac.nz (PMDF V4.3-7 #2864)
 id <01HKCYVILB3K8X3FXJ@ccvcom.auckland.ac.nz>; Wed,
 7 Dec 1994 11:10:04 GMT+1200
Received: from stat5.statistics (stat5.stat.auckland.ac.nz)
 by stat.auckland.ac.nz (4.1/SMI-4.1) id AA04535; Wed, 7 Dec 94 11:09:23 NZD
Date: Wed, 7 Dec 94 11:09:23 NZD
From: triggs@stat.auckland.ac.nz (Chris Triggs)
To: stat-lisp-news@umnstat.stat.umn.edu
Message-Id: <9412062209.AA04535@stat.auckland.ac.nz>
Content-Transfer-Encoding: 7BIT
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: triggs@stat.auckland.ac.nz (Chris Triggs)

unsubscribe

From owner-SL-news@umnstat.stat.umn.edu Fri Dec  9 18:09:56 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA15305; Fri, 9 Dec 1994 18:09:56 -0600
Resent-Date: Fri, 9 Dec 1994 16:09:43 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA15299; Fri, 9 Dec 1994 18:09:50 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA19927; Fri, 9 Dec 94 16:09:45 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA06168; Fri, 9 Dec 94 16:09:44 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412100009.AA06168@galton.math.ucla.edu>
Subject: ti-30 calculator
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Fri, 9 Dec 1994 16:09:43 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 26964     
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Here is a ti-30 calculator in xlisp-stat (nice example of oo programming).
Written by our David Betz.

--- Jan
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(defproto ti-30-calculator
  '(dialog-window stack display status-window drg inv mem should-clear
		  count-x sum-x sum-y sum-x-sq sum-y-sq sum-xy need-y))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; strchr
;
; str - string
; c - character
; returns - index of first occurence of character c in string str
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :strchr (str c)
    (dotimes (i (length str) nil)
	     (cond ((eq (elt str i) c) (return i))
		   (T nil))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; is-number
;
; x - string
; returns - true if x is a valid lisp number
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :is-number (x)
  (cond ((send self :strchr x #\() nil)
	((send self :strchr x #\)) nil)
	(t (numberp (read-from-string x)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; is-unary
;
; x - string
; returns - true if x is a unary operator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :is-unary (x)
  (dolist (i '("!" "log" "ln" "sin" "asin" "cos" "acos" "tan" "atan" "1/x"
	       "x^2" "sqrt" "10^x" "e^x")
	     nil)
	  (cond ((string= x i) (return t)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; is-binary
;
; x - string
; returns - true if x is a binary operator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :is-binary (x)
  (dolist (i '("+" "-" "*" "/" "^") nil)
	   (cond ((string= x i) (return t)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; is-operator
;
; x - string
; returns - true if x is a unary or binary operator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :is-operator (x)
  (or (send self :is-unary x) (send self :is-binary x)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; op-precedence
;
; x - string
; returns - the precedence (0=lowest,4=highest) of the operator x
;           nil if x is not an operator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :op-precedence (x)
  (cond	((string= x "+") 1)
	((string= x "-") 1)
	((string= x "*") 2)
	((string= x "/") 2)
	((string= x "^") 3)
	(T nil)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; stack-top-index
;
; returns - the index of the top-most number on the stack
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :stack-top-index ()
  (dotimes (i (length (send self :slot-value 'stack)) nil)
	   (cond ((send self :is-number (elt (send self :slot-value 'stack) i))
		  (return i)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; stack-top
;
; returns - the topmost number on the stack
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :stack-top ()
  (elt (send self :slot-value 'stack) (send self :stack-top-index)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; push-number
;
; x - number string
; side-effect - if the top member of the stack is a number, it is replaced by x
;               if the top member of the stack is an operator (not number),
;                   the x is pushed on the stack
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :push-number (x)
  (let ((stack (send self :slot-value 'stack)))
    (cond ((send self :is-number (car stack))
	   (send self :slot-value 'stack (cons x (cdr stack))))
	  (T (send self :slot-value 'stack (cons x stack))))
    (send self :display-stack-top)))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; push-unary-op
;
; x - string
; side-effects - if the top of the stack is an operator, the topmost number
;                    of the stack is pushed, and the stack evaluated
;                if the top of the stack is a number, the stack is evaluated
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :push-unary-op (x)
  (let ((stack (send self :slot-value 'stack)) (the-op x) the-val result)
    (send self :slot-value 'should-clear t)
    (cond ((eq (send self :slot-value 'inv) t)
	   (setf the-op (cond ((string= x "sin")   "asin")
			      ((string= x "cos")   "acos")
			      ((string= x "tan")   "atan")
			      ((string= x "x^2")   "sqrt")
			      ((string= x "sqrt")  "x^2")
			      ((string= x "log10") "10^x")
			      ((string= x "log")   "e^x")))
	   (send self :slot-value 'inv nil)))
    (cond ((send self :is-operator (car stack))
	   (send self :slot-value 'stack (cons (send self :stack-top) stack))))
    (setf the-val (read-from-string (car (send self :slot-value 'stack))))
    (setf result
	  (format nil "~a"
		  (cond ((string= the-op "!")   (send self :factorial the-val))
			((string= the-op "1/x") (/ 1 the-val))
			((string= the-op "x^2") (^ the-val 2))
			((string= the-op "sqrt")(sqrt the-val))
			((string= the-op "ln")  (log the-val))
			((string= the-op "log") (log the-val 10))
			((string= the-op "10^x")(^ 10 the-val))
			((string= the-op "e^x") (exp the-val))
			((or (string= the-op "sin")
			     (string= the-op "cos")
			     (string= the-op "tan"))
                         (apply (read-from-string the-op)
				(list
				 (case (send self :slot-value 'drg)
				       ((DEG) (* PI (/ the-val 180)))
				       ((RAD) the-val)
				       ((GRAD) (* (/ PI 200) the-val 100))))))
			((or (string= the-op "asin")
			     (string= the-op "acos")
			     (string= the-op "atan"))
			 (case (send self :slot-value 'drg)
			       ((DEG)
				(* (/ 180 PI)
				   (apply (read-from-string the-op)
					  (list the-val))))
			       ((RAD)
				(apply (read-from-string the-op)
				       (list the-val)))
			       ((GRAD)
				(* (/ 200 PI) (apply (read-from-string the-op)
						     (list the-val))))))
			(t
			 (format *standard-output*
				 "Error: unimplemented op")))))
    (setf stack (cons result (cdr stack)))
    (send self :slot-value 'stack stack)
    (send self :display-stack-top)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; push-binary-op
;
; x - string
; side-effects - if the top of the stack is an operator, x replaces that
;                    operator
;                if the top of the stack is a number, x is pushed onto the
;                    stack
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :push-binary-op (x)
  (let ((stack (send self :slot-value 'stack)) (the-op x))
    (send self :slot-value 'should-clear t)
    (cond ((send self :is-operator (car stack))
	   (send self :slot-value 'stack (cons the-op (cdr stack)))
	   (send self :evaluate-stack))
	  (T
	   (send self :slot-value 'stack (cons the-op stack))
	   (send self :evaluate-stack)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; push-parenthesis
;
; x - string, either "(" or ")"
; test cases:
;     2 * 3 ( 4 + 1 )   -->   2 * ( 34 + 1 )   -->   2 * 35   -->   70
;     2 * ( 3 + 4 + )   -->   2 * ( 3 + 4 +
;     ( 2   -->   2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :push-parenthesis (x)
  (let ((stack (send self :slot-value 'stack))
	(stack-top (car (send self :slot-value 'stack))))
    (cond ((string= x "(")
	   (cond ((string= "(" stack-top)
		  (send self :slot-value cons (x stack)))
		 ((send self :is-operator stack-top)
		  (send self :slot-value 'should-clear t)
		  (send self :slot-value 'stack (cons x stack)))
		 ((send self :is-number stack-top)
		  (cond ((send self :slot-value 'should-clear)
			 (send self :slot-value 'stack
			       (cons (car stack) (cons x (cdr stack)))))
			(t
			 (send self :slot-value 'stack
			       (cons (car stack) (cons x (cdr stack)))))))
		 (t (format *standard-output* "Error: unknown stack-top"))))
	  ((string= x ")")
	   (cond ((member "(" stack :test #'string=)
		  (cond ((send self :is-number stack-top)
			 (send self :slot-value 'stack (cons ")" stack))
			 (send self :evaluate-stack))))))))
  (send self :display-stack-top))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; display-stack-top 
;
; side-effect - finds the topmost number on the stack, and displays it's value
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :display-stack-top ()
  (send (send self :slot-value 'status-window) :text
	      (format nil "~a ~a ~a"
		      (case (send self :slot-value 'inv)
			    (nil "   ")
			    (t   "INV"))
		      (case (send self :slot-value 'drg)
			    (DEG  "DEG       ")
			    (RAD  "   RAD    ")
			    (GRAD "      GRAD"))
		      (case (send self :slot-value 'need-y)
			    (nil "      ")
			    (t   "NEED-Y"))))
  (do ((stack (send self :slot-value 'stack) (cdr stack)))
      ((eq stack nil)
       (format *standard-output* "display-stack-top: empty stack?"))
      (cond ((send self :is-number (car stack))
	     (send (send self :slot-value 'display) :text (car stack))
	     (return)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; correct-error
;
; side-effect - removes the topmost elements of the stack up-to and
;               including the first topmost number
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :correct-error ()
  (do ((stack (send self :slot-value 'stack) (cdr stack)))
      ((send self :is-number (car stack))
       (send self :slot-value 'stack
	     (cond ((eq (cdr stack) nil) '("0"))
		   (t (cdr stack)))))
      (cond ((eq nil (send self :stack-top))
	     (send self :slot-value 'stack '("0"))))
      (send self :display-stack-top)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; all-clear
;
; side-effect - resets the stack to it's initial state
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :all-clear ()
  (send self :slot-value 'stack '("0"))
  (send self :slot-value 'count-x 0)
  (send self :slot-value 'count-x 0)
  (send self :slot-value 'sum-x 0)
  (send self :slot-value 'sum-y 0)
  (send self :slot-value 'sum-x-sq 0)
  (send self :slot-value 'sum-y-sq 0)
  (send self :slot-value 'sum-xy 0)
  (send self :slot-value 'need-y nil)
  (send self :display-stack-top))

(defmeth ti-30-calculator :toggle-drg ()
  (send self :slot-value 'drg (case (send self :slot-value 'drg)
				    ((DEG) 'RAD)
				    ((RAD) 'GRAD)
				    ((GRAD) 'DEG)))
  (send self :display-stack-top))

(defmeth ti-30-calculator :store ()
  (send self :slot-value 'mem (send self :stack-top))
  (send self :slot-value 'should-clear t))

(defmeth ti-30-calculator :recall ()
  (send self :push-number (send self :slot-value 'mem))
  (send self :slot-value 'should-clear t))

(defmeth ti-30-calculator :sum ()
  (send self :slot-value 'mem
	(format nil "~a" (+ (read-from-string (send self :slot-value 'mem))
			    (read-from-string (send self :stack-top)))))
  (send self :slot-value 'should-clear t))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; exchange
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :exchange ()
  (let ((tmp (send self :slot-value 'mem)))
    (send self :slot-value 'mem (send self :stack-top))
    (send self :push-number tmp)
    (send self :display-stack-top))
  (send self :slot-value 'should-clear t))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; factorial
;
; x - an integer >= 0
; returns - x!=x(x-1)(x-2)...1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :factorial (x)
  (do ((i 2 (+ i 1)) (sum 1)) ((> i x) sum)
      (setf sum (* sum i))))

(defmeth ti-30-calculator :evaluate-stack ()
  (let ((stack (send self :slot-value 'stack)) tmp)
    (do ((op1 (first stack) (first stack))
	 (num1 (second stack) (second stack))
	 (op2 (third stack) (third stack))
	 (num2 (fourth stack) (fourth stack)))
	(nil nil)
	(cond ((string= op1 ")")
	       (cond ((string= op2 "(")
		      (setf stack (cons num1 (cdddr stack)))
		      (send self :slot-value 'stack stack)
		      (send self :display-stack-top)
		      (return))
		     (T
		      (setf num1 (format nil "~a"
					 (eval (read-from-string
						(format nil "( ~a ~a ~a )"
							op2 num2 num1)))))
		      (setf stack (cons op1 (cons num1 (cddddr stack))))
		      (send self :slot-value 'stack stack)
		      (send self :display-stack-top))))
	      ((string= op2 "(")
	       (return))
	      ((numberp (read-from-string op1)) (return))
	      ((string= op1 "=")
	       (cond ((>= (length stack) 4)
		      (setf num1 (format nil "~a"
					 (eval (read-from-string
						(format nil "( ~a ~a ~a )"
							op2 num2 num1))))) 
		      (setf stack (cons op1 (cons num1 (cddddr stack))))
		      (send self :slot-value 'stack stack)
		      (send self :display-stack-top))
		     ((= (length stack) 2)
		      (setf stack (list num1))
		      (send self :slot-value 'stack stack)
		      (send self :display-stack-top))
		     (T
		      (format *standard-output* "Error: stack=~a" stack)
		      (return))))
	      ((= (length stack) 1) (return))
	      ((= (length stack) 2) (return))
	      ((= (length stack) 3) (return))
	      ((<= (send self :op-precedence op1)
		   (send self :op-precedence op2))
	       (setf num1 (format nil "~a"
				  (eval (read-from-string
					 (format nil "( ~a ~a ~a )"
						 op2 num2 num1))))) 
	       (setf stack (cons op1 (cons num1 (cddddr stack))))
	       (send self :slot-value 'stack stack)
	       (send self :display-stack-top))
	      (T (send self :slot-value 'stack stack)
		 (return))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; toggle-sign
;
; side effect - if a number has no exponent, toggle the sign of the mantissa
;               if a number has an exponent, toggle the sign of the exponent
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :toggle-sign ()
  (let ((stack (copy-list (send self :slot-value 'stack)))
	(top (send self :stack-top))
	(i (send self :strchr (send self :stack-top) #\E))
	(new-sign ""))
    (cond (i
	   (cond ((eq (elt top (+ i 1)) #\+)
		  (setf new-sign "-"))
		 ((eq (elt top (+ i 1)) #\-)
		  (setf new-sign "+")))
	   (setf top (format nil "~aE~a~a"
			     (subseq top 0 i)
			     new-sign
			     (subseq top (+ i 2) (length top)))))
	  (t
	   (cond ((eq (elt top 0) #\-)
		  (setf top (format nil "~a" (subseq top 1))))
		 (t
		  (setf top (format nil "-~a" top))))))
    (setf (elt (send self :slot-value 'stack)
	       (send self :stack-top-index))
	  top)
    (send self :display-stack-top)))
  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; toggle-inv
;
; logically negate the inverse slot
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :toggle-inv ()
  (send self :slot-value 'inv (not (send self :slot-value 'inv)))
  (send self :display-stack-top))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; enter-char
;
; c - character: 0-9 or .
;
; side-effect - if should-clear is true
;                   if the stack-top is a number,
;                       if c is a digit, the stack-top is replaced by c
;                       if c is a decimal point, the stack-top is replaced
;                           by 0.
;                   if the stack-top is an operator,
;                       if c is a digit, c is pushed on the stack
;                       if c is a decimal point, 0. is pushed on the stack
;               if should-clear is nil,
;                   if the stack-top is a number
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :enter-char (c)
  (let ((stack (send self :slot-value 'stack))
	(stack-top (car (send self :slot-value 'stack)))
	new-val)
    (cond ((send self :slot-value 'should-clear)
	   (send self :slot-value 'should-clear nil)
	   (cond ((eq c #\.) (setf new-val "0."))
		 (t (setf new-val (string c))))
	   (cond ((string= stack-top "(")
		  (send self :slot-value 'stack (cons new-val stack)))
		 ((send self :is-number stack-top)
		  (send self :slot-value 'stack (cons new-val (cdr stack))))
		 ((send self :is-operator stack-top)
		  (send self :slot-value 'stack (cons new-val stack)))
		 (t
		  (format *standard-output*
			  "Error: enter-char: invalid stack-top"))))
	  (t
	   (cond ((send self :is-number stack-top)
		  (cond ((equal c #\.)
			 (cond ((not (send self :strchr stack-top #\.))
				(setf new-val (format nil "~a." stack-top)))
			       (t (return nil))))
			((string= stack-top "0")
			 (setf new-val (string c)))
			(t
			 (setf new-val
			       (format nil "~a~a" stack-top (string c)))))
		  (send self :slot-value 'stack (cons new-val (cdr stack))))
		 (t (send self :slot-value 'stack (cons (string c) stack))))))
    (send self :display-stack-top)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; exponent
;
; side-effect - if the top-most number is already in exponential notiation,
;                   do nothing
;               else append an "E+" to the end to the top-most number
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :exponent ()
  (let ((stack (send self :slot-value 'stack))
	(new-val (car (send self :slot-value 'stack))))
    (cond ((send self :op-precedence new-val)
	   (setf new-val "0E+")
	   (send self :slot-value 'stack (cons new-val stack)))
	  ((send self :strchr new-val #\E)
	   (return nil))
	  (T
	   (setf new-val (format nil "~aE+" (car stack)))
	   (send self :slot-value 'stack (cons new-val (cdr stack)))))
    (send self :display-stack-top)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; count-x
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defmeth ti-30-calculator :enter-x ()
  (let ((the-num (read-from-string (send self :stack-top))))
    (send self :slot-value 'count-x 
	  (+ (send self :slot-value 'count-x) 1))
    (send self :slot-value 'sum-x (+ (send self :slot-value 'sum-x) the-num))
    (send self :slot-value 'sum-x-sq
	  (+ (send self :slot-value 'sum-x-sq) (* the-num the-num)))
    (send self :slot-value 'should-clear t)
    (send self :slot-value 'need-y the-num)
    (send self :display-stack-top)))

(defmeth ti-30-calculator :enter-y ()
  (cond ((send self :slot-value 'need-y)
	 (let ((the-num (read-from-string (send self :stack-top))))
	   (send self :slot-value 'sum-y
		 (+ (send self :slot-value 'sum-y) the-num))
	   (send self :slot-value 'sum-y-sq
		 (+ (send self :slot-value 'sum-y-sq) (* the-num the-num)))
	   (send self :slot-value 'sum-xy
		 (+ (send self :slot-value 'sum-xy)
		    (* the-num (send self :slot-value 'need-y))))
	   (send self :slot-value 'should-clear t)
	   (send self :slot-value 'need-y nil)
	   (send self :display-stack-top)))))

(defmeth ti-30-calculator :count-x ()
  (send self :push-number (format nil "~a" (send self :slot-value 'count-x))))

(defmeth ti-30-calculator :sum-x ()
  (send self :push-number (format nil "~a" (send self :slot-value 'sum-x))))

(defmeth ti-30-calculator :sum-y ()
  (send self :push-number (format nil "~a" (send self :slot-value 'sum-y))))

(defmeth ti-30-calculator :sum-x-sq ()
  (send self :push-number (format nil "~a" (send self :slot-value 'sum-x-sq))))

(defmeth ti-30-calculator :sum-y-sq ()
  (send self :push-number (format nil "~a" (send self :slot-value 'sum-y-sq))))

(defmeth ti-30-calculator :sum-xy ()
  (send self :push-number (format nil "~a" (send self :slot-value 'sum-xy))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmeth ti-30-calculator :isnew ()
  (send self :slot-value 'display
	(send text-item-proto :new "0" :text-length 50))
  (send self :slot-value 'status-window
	(send text-item-proto :new "" :text-length 50))
  (send self :slot-value 'stack '("0"))
  (send self :slot-value 'mem "0")
  (send self :slot-value 'drg 'DEG)
  (send self :slot-value 'inv nil)
  (send self :slot-value 'should-clear t)
  (send self :slot-value 'count-x 0)
  (send self :slot-value 'sum-x 0)
  (send self :slot-value 'sum-y 0)
  (send self :slot-value 'sum-x-sq 0)
  (send self :slot-value 'sum-y-sq 0)
  (send self :slot-value 'sum-xy 0)
  (send self :slot-value 'need-y nil)
  (send self :display-stack-top)
  (send self :slot-value 'dialog-window
	(send dialog-proto :new
	      (list (list (send button-item-proto :new "Close"
				:action #'(lambda () (exit))))
		    (list (send self :slot-value 'display))
		    (list (send self :slot-value 'status-window))
		    (list (send button-item-proto :new "X"
				:action #'(lambda ()
					    (send self :enter-x)))
			  (send button-item-proto :new "1/x"
				:action #'(lambda ()
					    (send self :push-unary-op "1/x")))
			  (send button-item-proto :new "x^2"
				:action #'(lambda ()
					    (send self :push-unary-op "x^2")))
			  (send button-item-proto :new "SQRT"
				:action #'(lambda ()
					    (send self :push-unary-op "sqrt")))
			  (send button-item-proto :new "CE/C"
				:action #'(lambda ()
					    (send self :correct-error)))
			  (send button-item-proto :new "AC"
				:action #'(lambda ()
					    (send self :all-clear))))
		    (list (send button-item-proto :new "Y"
				:action #'(lambda ()
					    (send self :enter-y)))
			  (send button-item-proto :new "INV"
				:action #'(lambda ()
					    (send self :toggle-inv)))
			  (send button-item-proto :new "sin"
				:action #'(lambda ()
					    (send self :push-unary-op "sin")))
			  (send button-item-proto :new "cos"
				:action #'(lambda ()
					    (send self :push-unary-op "cos")))
			  (send button-item-proto :new "tan"
				:action #'(lambda ()
					    (send self :push-unary-op "tan")))
			  (send button-item-proto :new "DRG"
				:action #'(lambda ()
					    (send self :toggle-drg))))
		    (list (send button-item-proto :new "N(X)"
				:action #'(lambda ()
					    (send self :count-x)))
			  (send button-item-proto :new "e"
				:action #'(lambda ()
					    (send self :push-number
						  (format nil "~a" (exp 1)))))
			  (send button-item-proto :new "EE"
				:action #'(lambda ()
					    (send self :exponent)))
			  (send button-item-proto :new "log"
				:action #'(lambda ()
					    (send self :push-unary-op "log")))
			  (send button-item-proto :new "ln"
				:action #'(lambda ()
					    (send self :push-unary-op "ln")))
			  (send button-item-proto :new "y^x"
				:action #'(lambda ()
					    (send self :push-binary-op "^"))))
		    (list (send button-item-proto :new "SUM(X)"
				:action #'(lambda ()
					    (send self :sum-x)))
			  (send button-item-proto :new "PI"
				:action #'(lambda ()
					    (send self :push-number 
						  (format nil "~a" PI))))
			  (send button-item-proto :new "x!"
				:action #'(lambda ()
					    (send self :push-unary-op "!")))
			  (send button-item-proto :new "("
				:action #'(lambda ()
					    (send self :push-parenthesis "(")))
			  (send button-item-proto :new ")"
				:action #'(lambda ()
					    (send self :push-parenthesis ")")))
			  (send button-item-proto :new "/"
				:action #'(lambda ()
					    (send self :push-binary-op "/"))))
		    (list (send button-item-proto :new "SUM(Y)"
				:action #'(lambda ()
					    (send self :sum-y)))
			  (send button-item-proto :new "STO"
				:action #'(lambda () (send self :store)))
			  (send button-item-proto :new "7"
				:action #'(lambda ()
					    (send self :enter-char #\7)))
			  (send button-item-proto :new "8"
				:action #'(lambda ()
					    (send self :enter-char #\8)))
			  (send button-item-proto :new "9"
				:action #'(lambda ()
					    (send self :enter-char #\9)))
			  (send button-item-proto :new "*"
				:action #'(lambda ()
					    (send self :push-binary-op "*"))))
		    (list (send button-item-proto :new "SUM(X^2)"
				:action #'(lambda ()
					    (send self :sum-x-sq)))
			  (send button-item-proto :new "RCL"
				:action #'(lambda () (send self :recall)))
			  (send button-item-proto :new "4"
				:action #'(lambda ()
					    (send self :enter-char #\4)))
			  (send button-item-proto :new "5"
				:action #'(lambda ()
					    (send self :enter-char #\5)))
			  (send button-item-proto :new "6"
				:action #'(lambda ()
					    (send self :enter-char #\6)))
			  (send button-item-proto :new "-"
				:action #'(lambda ()
					    (send self :push-binary-op "-"))))
		    (list (send button-item-proto :new "SUM(Y^2)"
				:action #'(lambda ()
					    (send self :sum-y-sq)))
			  (send button-item-proto :new "SUM"
				:action #'(lambda () (send self :sum)))
			  (send button-item-proto :new "1"
				:action #'(lambda ()
					    (send self :enter-char #\1)))
			  (send button-item-proto :new "2"
				:action #'(lambda ()
					    (send self :enter-char #\2)))
			  (send button-item-proto :new "3"
				:action #'(lambda ()
					    (send self :enter-char #\3)))
			  (send button-item-proto :new "+"
				:action #'(lambda ()
					    (send self :push-binary-op "+"))))
		    (list (send button-item-proto :new "SUM(XY)"
				:action #'(lambda ()
					    (send self :sum-xy)))
			  (send button-item-proto :new "EXC"
				:action #'(lambda () (send self :exchange)))
			  (send button-item-proto :new "0"
				:action #'(lambda ()
					    (send self :enter-char #\0)))
			  (send button-item-proto :new "."
				:action #'(lambda ()
					    (send self :enter-char #\.)))
			  (send button-item-proto :new "+/-"
				:action	#'(lambda ()
					    (send self :toggle-sign)))
			  (send button-item-proto :new "="
				:action #'(lambda ()
					    (send self :push-binary-op "=")))))
	      :go-away nil)))

(send ti-30-calculator :new)

-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Sat Dec 10 14:29:13 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA26383; Sat, 10 Dec 1994 14:29:13 -0600
Resent-Date: Sat, 10 Dec 94 14:29:10 CST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from bru.mayo.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA26377; Sat, 10 Dec 1994 14:29:12 -0600
Return-Path: <wollan@mayo.EDU>
Received: from hsrnfs-101.Mayo.EDU by bru.mayo.EDU (4.1/SMI-4.0)
	id AA20179; Sat, 10 Dec 94 14:29:11 CST
Received: from butch.Mayo.EDU by hsrnfs-101.Mayo.EDU (4.1/SMI-4.1)
	id AA21361; Sat, 10 Dec 94 14:29:10 CST
Date: Sat, 10 Dec 94 14:29:10 CST
From: wollan@mayo.EDU (Peter Wollan)
Message-Id: <9412102029.AA21361@hsrnfs-101.Mayo.EDU>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Re: ti-30 calculator
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: wollan@mayo.EDU (Peter Wollan)

I just tried the TI-30 program, not to use as a calculator but rather to learn
more about programming xlispstat, and got the following error message:

error: unbound function - READ-FROM-STRING

This from version 2.1 r2, unix.

I have two questions:  (1) is read-from-string a newer version of something
that is in 2.1, and should I replace the function, or should I get a newer 
version of xls installed?

(2)  it seems that xls has greatly outrun its documentation;  how do I go about
finding out what the capabilities and syntax are now?  Are there sources, and
where?

	Peter Wollan
	wollan@mayo.edu

From owner-SL-news@umnstat.stat.umn.edu Sun Dec 11 16:25:00 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA07224; Sun, 11 Dec 1994 16:25:00 -0600
Resent-Date: Mon, 12 Dec 1994 11:28:22 NZST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from chv.lincoln.cri.nz by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA07218; Sun, 11 Dec 1994 16:24:56 -0600
Return-Path: <McCallumJ@Lincoln.cri.nz>
Received: from LAN.Lincoln.cri.nz by CHV.LINCOLN.CRI.NZ (MX V4.1 VAX) with
          SMTP; Mon, 12 Dec 1994 11:24:37 +1300
To: stat-lisp-news@umnstat.stat.umn.edu
From: "John McCallum" <McCallumJ@Lincoln.cri.nz>
Date: Mon, 12 Dec 1994 11:28:22 NZST
Subject: Re: ti-30 calculator -Reply. Formatted file reading
X-Gateway: iGate, (WP Office) vers 2.01 - 1000
Message-Id: <9412121134.4eeb8c78.LN1@Lincoln.cri.nz>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: "John McCallum" <McCallumJ@Lincoln.cri.nz>



>>>>>>>>>>>>>>>
>I just tried the TI-30 program, not to use as a calculator but rather to learn
>more about programming xlispstat, and got the following error message:

>error: unbound function - READ-FROM-STRING


>This from version 2.1 r2, unix.


>I have two questions:  (1) is read-from-string a newer version of something
>that is in 2.1, and should I replace the function, or should I get a newer 
>version of xls installed?

All you need to do is  :
(defun read-from-string (x) (read (make-string-input-stream x)))

I presume this is iinternal in the new version 

>(2)  it seems that xls has greatly outrun its documentation;  how do I go
>about
>finding out what the capabilities and syntax are now?  Are there sources,
>and
>where?
Release 3 has comprehensive documentation on updates.
The documentation for XLISP itself is terse but worth obtaining if you want
to get into more programming. I like using the MS Windows XLISP help
facility and would love to see similar for XLISPstat....

My own Question is...I am keen to use a (Fortran-type)  formatted file reader
to read/filter some largish files and was planning on adapting
FORMAT-L.LSP /FORMATIN.LSP . Has anybody tidied these up further or
written similar (simpler?) functions to parse strings into LISP data types??

From owner-SL-news@umnstat.stat.umn.edu Mon Dec 12 00:04:46 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA07834; Mon, 12 Dec 1994 00:04:46 -0600
Resent-Date: Sun, 11 Dec 1994 22:04:39 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA07828; Mon, 12 Dec 1994 00:04:43 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA25673; Sun, 11 Dec 94 22:04:41 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA17843; Sun, 11 Dec 94 22:04:39 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412120604.AA17843@galton.math.ucla.edu>
Subject: Xlisp-Stat updates, etc
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Sun, 11 Dec 1994 22:04:39 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1667      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

My read-format.lsp, which reads files using FORTRAN format statements,
was broken because of Xlisp upgrades. In particular, coerce did not
make a list of lists out of an array any more, and read-char now gave
an error instead of a nil at the end of file. Also, in the dconvert
defun I used t as a local variable. This is all repaired, and it sits
on ftp.stat.ucla.edu in

pub/lisp/xlisp/xlisp-stat/code/homegrown/IO/formatted-input

I added a counter, so that you can see progress, and have some idea 
about how long you have to wait. For the counter, see below.

We have also created a new directory in homegrown, which is called
robust. At the moment it contains some location and scale estimates.
Programs for LMS and LQS regression are almost done. An M-estimate
prototype (inheriting from regression-model-proto) is in preparation.

The modules directory in homegrown will have a number of new introstat
demos (written for the electronic textbook) later this week.

The niceties directory has the ti-30 calculator.

One thing that has bothered me for quite a while is how to write
a simple counter on stdout. I now know how to do it in Unix. Just
say

(dotimes (i n)
(format t "~d~a" i (code-char 13)))

and the characters will nicely overwrite each other on the same line.
Of course this does not work on the Mac, because code-char 13 is
carriage return, which is a newline+carriage return on the Mac. I guess
it will work on DOS/MSW.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Mon Dec 12 18:37:19 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA19286; Mon, 12 Dec 1994 18:37:19 -0600
Resent-Date: Mon, 12 Dec 1994 16:37:09 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA19280; Mon, 12 Dec 1994 18:37:14 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA21034; Mon, 12 Dec 94 16:37:11 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA23360; Mon, 12 Dec 94 16:37:09 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412130037.AA23360@galton.math.ucla.edu>
Subject: Lisp documentation
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Mon, 12 Dec 1994 16:37:09 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 557       
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Point your browser at

http://www.stat.ucla.edu/develop/lisp/

This is documentation, there will be a similar link for
code. There is a very similar documentation link for TeX,
by the way.

http://www.stat.ucla.edu/develop/tex/

Most of this material is gzipped postscript, which means
you need gunzip and ghostview to browse it.


--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Mon Dec 19 07:23:53 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA05027; Mon, 19 Dec 1994 07:23:53 -0600
Resent-Date: Mon, 19 Dec 1994 07:47:00 -0400 (EDT)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from vx.cis.umn.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA05021; Mon, 19 Dec 1994 07:23:52 -0600
Return-Path: <BALCHA%FDACD.BITNET@VX.CIS.umn.edu>
Received: from FDACD.BITNET (BALCHA@FDACD) by VX.CIS.UMN.EDU (PMDF V4.2-13
 #2574) id <01HKTIH0G2BKAPTGPC@VX.CIS.UMN.EDU>; Mon, 19 Dec 1994 07:24:12 CDT
Received: from MR.CDER.FDA.GOV by FDACD.CDER.FDA.GOV (PMDF V4.3-7 #6152) id
 <01HKTKCHSFXC9S5TOK@FDACD.CDER.FDA.GOV>; Mon, 19 Dec 1994 08:17:27 EDT
Received: with PMDF-MR; Mon, 19 Dec 1994 08:03:18 EDT
Mr-Received: by mta MICKEY; Relayed; Mon, 19 Dec 1994 08:03:18 -0400
Alternate-Recipient: prohibited
Disclose-Recipients: prohibited
Date: Mon, 19 Dec 1994 07:47:00 -0400 (EDT)
From: Alfred Balch 301-443-7580 FAX 301-443-5161
 <BALCHA%FDACD.BITNET@VX.CIS.umn.edu>
Subject: xlisp-stat
To: stat-lisp-news@umnstat.stat.umn.edu
Message-Id: <01HKTKCKE7P29S5TOK@MR.CDER.FDA.GOV>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN
Content-Transfer-Encoding: 7BIT
Posting-Date: Mon, 19 Dec 1994 07:53:00 -0400 (EDT)
Importance: normal
Priority: normal
X400-Mts-Identifier: [;81308091214991/365503@FDACD]
A1-Type: MAIL
Hop-Count: 1
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Alfred Balch 301-443-7580 FAX 301-443-5161@umnstat.stat.umn.edu

    I would like to be added to the xlisp-stat mailing list.

    How can I get xlisp-stat ? I would prefer a Windows version,
    although we do have a MacIntosh available.

    Thanks in advance for your help on this important issue.

    Fred Balch
    FDA (CDER/OEB/RAMP)
    BALCHA@fdacd.bitnet.gov
    (301)-443-7580




From owner-SL-news@umnstat.stat.umn.edu Mon Dec 19 08:33:44 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA05172; Mon, 19 Dec 1994 08:33:44 -0600
Resent-Date: Mon, 19 Dec 1994 14:33:36 +0000
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from cheviot.ncl.ac.uk by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA05166; Mon, 19 Dec 1994 08:33:42 -0600
Return-Path: <Chris.Brunsdon@newcastle.ac.uk>
Received: from burnmoor.ncl.ac.uk by cheviot.ncl.ac.uk id <OAA14069@cheviot.ncl.ac.uk>
  (8.6.9/ for ncl.ac.uk) with SMTP; Mon, 19 Dec 1994 14:33:36 GMT
Received: from [128.240.138.23] (greabhal.ncl.ac.uk [128.240.138.23]) by burnmoor.ncl.ac.uk (8.6.9/8.6.x-cf revision 8 for Solaris 2.x) with SMTP id OAA28995; Mon, 19 Dec 1994 14:33:32 GMT
Message-Id: <199412191433.OAA28995@burnmoor.ncl.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Mon, 19 Dec 1994 14:33:36 +0000
To: stat-lisp-news@umnstat.stat.umn.edu
From: Chris.Brunsdon@newcastle.ac.uk (Chris Brunsdon)
Subject: Making Movies
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Chris.Brunsdon@newcastle.ac.uk (Chris Brunsdon)

Does anybody have any ideas how you can create Quicktime movies out of
Xlisp-Stat graph windows on a Mac?  For example,  if I wanted to view
some 3d data,  and make a movie of it rotating.

Ideally a method such as :add-frame-to-movie on a graph window would be ideal.
Failing this,  is it possible to make a window save its image to a PICT file
as a method?  I have software that can construct multiple PICT files into a
movie?

Any help gratefully received,

Chris Brunsdon.

==============================================================================
                                            + Phone +44 091 222 6000 x 7570
Dr. Chris Brunsdon,                         + Mobile 0374 840556
Lecturer in Computer Based Methods          + Fax   +44 091 222 8811
Dept. Of Town and Country Planning          + Telex 53654 (UNINEWG)
University of Newcastle Upon Tyne NE1 7RU   + chris.brunsdon@newcastle.ac.uk
============================================================================
==



From owner-SL-news@umnstat.stat.umn.edu Mon Dec 19 11:54:01 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA06045; Mon, 19 Dec 1994 11:54:01 -0600
Resent-Date: Mon, 19 Dec 1994 09:53:54 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA06039; Mon, 19 Dec 1994 11:53:59 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA00592; Mon, 19 Dec 94 09:53:55 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA29515; Mon, 19 Dec 94 09:53:54 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412191753.AA29515@galton.math.ucla.edu>
Subject: new xlispstat code
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Mon, 19 Dec 1994 09:53:54 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1584      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Last updated 12/19/94.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
New and upgraded code in 

ftp.stat.ucla.edu:/pub/lisp/xlisp/xlisp-stat/code/homegrown

Look in the following subdirectories. Some of this code is incomplete,
in the sense that some parts are unfinished. It will be updated whenever
another part is ready, or whenever substantial changes of any kind are
implemented.

sem/ has code for maximum likelihood and least squares factor analysis,
for image analysis, and for minimum trace factor analysis. By Jan de
Leeuw.

smoothers/ has code and a manual for Jerry Friedman's variable span
supersmoother. By Jason Bond and Afshan Tabazadeh.

combinatorial/ has code by David Betz to generate all choices of m out
of n lexicographically.

bootstrap/ has the balanced bootstrap, by David Betz.

optimization/ has routines to compute roots of polynomials of degree lte
four using the classic algorithms (by Sona Vartanian).

robust/ has a growing list of robust location and scale estimates, by
Jan de Leeuw.

mcmc/ has code by Jan de Leeuw for Adrian Raftery's technique to
estimate the number of iterations of the Gibbs sampler.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Coming soon:

cubic interpolating splines, by David Depew.
exact and approximate LMS and LQS regression, by David Betz
variograms and kriging, by George Michailides, Stan Bentow, David Afshartous
simplex method, by David Betz
writing quickdraw files in Xlisp-Stat, by Jose Garcia and/or David Betz
structural equation modeling, by Jan de Leeuw


From owner-SL-news@umnstat.stat.umn.edu Tue Dec 20 14:40:29 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA20505; Tue, 20 Dec 1994 14:40:29 -0600
Resent-Date: Tue, 20 Dec 1994 15:39:57 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from euler.bd.psu.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA20499; Tue, 20 Dec 1994 14:40:27 -0600
Return-Path: <naras@euler.bd.psu.edu>
Received: by euler.bd.psu.edu via SMTP (931110.SGI/930416.SGI.AUTO)
	for stat-lisp-news@umnstat.stat.umn.edu id AA26974; Tue, 20 Dec 94 15:40:05 -0500
Message-Id: <9412202040.AA26974@euler.bd.psu.edu>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: A Literate Program for a Hyper-document
Date: Tue, 20 Dec 1994 15:39:57 -0500
From: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>

A draft of my report

             A Literate Program for a Hyper-document 

is now available from http://euler.bd.psu.edu/lispstat/stbl.ps.  

The associated code is available from
 ftp://euler.bd.psu.edu/pub/stbl/stbl.tar.gz.  

The latter includes the former. 

Here is the abstract.

ABSTRACT

  We describe a literate program for a hyper-document using the NoWEB
  literate programming tools. The program essentially consists of a
  hyper-document and the associated Lisp code that implements the
  hyper-links. The code uses the Lisp-Stat environment. The hyper-document
  can be LaTeXed and viewed with XHDvi, a Hyper-TeX dvi previewer.
  This is but a small part of a free hyper-text for introductory
  statistics that is being developed by a group of us.


________________________________________________________________
B. Narasimhan                             naras@euler.bd.psu.edu


From owner-SL-news@umnstat.stat.umn.edu Fri Dec 23 21:19:37 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA00427; Fri, 23 Dec 1994 21:19:37 -0600
Resent-Date: Fri, 23 Dec 1994 17:40:08 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA00421; Fri, 23 Dec 1994 21:19:35 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA00723; Fri, 23 Dec 94 17:46:30 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA22059; Fri, 23 Dec 94 17:40:09 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412240140.AA22059@galton.math.ucla.edu>
Subject: two functions
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Fri, 23 Dec 1994 17:40:08 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3475      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

write-profiles takes a list of lists. The outer list are variables,
the innre lists are labels or categories. The function makes a
string-matrix with all possible profiles, lexicographically.

write-latex-table takes a two-dimensional array of strings and
writes the information in it to a file using the LaTeX 
table and tabular environments. 
--------------------- snip ----- snip -----------------------------
(defun write-profiles (x)
"Args: x
The argument is a list of lists of strings. Each
element of the list corresponds with a variable,
the elements of the list corresponding with a
variable are the labels of that variable, which
are either strings or characters or numbers or symbols.
The program returns a matrix of strings coding all
the profiles."
(let* (
      (nvar (length x))
      (ncat (mapcar #'length x))
      (nprf (prod ncat))
      (arry (make-array (list nprf nvar)))
      )
  (dotimes (i nprf arry)
    (let (
          (icat (array-subscript ncat i))
          )
      (setf (select arry i (iseq nvar))
            (make-array (list 1 nvar) :displaced-to (coerce
            (mapcar #'(lambda (k)
                        (elt (to-string-list (elt x k))
                             (elt icat k))) (iseq nvar))
            'vector)))
      ))
  ))
    
(defun array-subscript (m k)
"Args: array integer
Returns the subscript of the element of
an array with array-dimensions mx
having row-major-index K. Inverse of
array-row-major-index."
(let* (
       (dx (length m))
       (ss (make-list dx))
       )
(dotimes (i dx ss)
         (let* (
                (ex (1- (- dx i)))
                (ux (elt m ex))
                (kx (mod k ux))
                (rx (/ (- k kx) ux))
                )
           (setf (elt ss ex) kx)
           (setf k rx)
           ))
))

(defun write-latex-table (x &key (title "table.tex") (how "c"))
"Args: x
Takes a matrix of strings, and writes it to a file
with a LaTeX table. Optional parameters for the title,
written in a caption, and for the alignment, either
centered, right, or left. Returns nil."
(let* (
     (n (first (array-dimensions x)))
     (m (second (array-dimensions x)))
     (s (with-output-to-string (form)
                               (format form "~a" "|")
                               (dotimes (i m)
                                 (format form "~a~a" "|" how)
                                 (if (= i (1- m)) (format form "~a" "||")))))
     )
     (with-open-file (texfile "table.tex" :direction :output)
            (format texfile "~a[ht]~%" "\\begin{table}")
            (format texfile "~a~%" "\\centering")
            (format texfile "~a{~a}~%" "\\begin{tabular}" s)
            (dotimes (i n)
              (dotimes (j m)
                (format texfile "~a" (aref x i j))
                (if (= j (1- m))
                    (if (= i (1- n)) (format texfile "~%")
                      (format texfile " \\\\~%"))
                  (format texfile " & "))))
            (format texfile "~a~%" "\\end{tabular}")
            (format texfile "~a{~a}~%" "\\caption" title)
            (format texfile "~a~%" "\\end{table}"))
     ))

(defun to-string-list (ls)
"Args: LIST
Converts LIST to list of strings."
(mapcar #'(lambda (x) (format nil "~a" x)) ls)
)

-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Fri Dec 30 13:36:45 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA19275; Fri, 30 Dec 1994 13:36:45 -0600
Resent-Date: Fri, 30 Dec 1994 11:36:37 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA19267; Fri, 30 Dec 1994 13:36:44 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA15401; Fri, 30 Dec 94 11:36:40 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA18577; Fri, 30 Dec 94 11:36:38 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412301936.AA18577@galton.math.ucla.edu>
Subject: simplex
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Fri, 30 Dec 1994 11:36:37 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 567       
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

As Common Lisp users probably know, Bruno Haible, of Clisp fame,
has written a CL version of the simplex method to solve canonical
LP problems. David Betz has adapted the CL version to Xlisp. It
is now in ~/pub/lisp/xlisp/xlisp-stat/code/homegrown/optimze on
ftp.stat.ucla.edu as simplex.lsp. Dont forget to byte compile,
that really helps.

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Fri Dec 30 17:47:28 1994
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA20081; Fri, 30 Dec 1994 17:47:28 -0600
Resent-Date: Fri, 30 Dec 1994 15:47:22 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA20075; Fri, 30 Dec 1994 17:47:26 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA17720; Fri, 30 Dec 94 15:47:24 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA19244; Fri, 30 Dec 94 15:47:22 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9412302347.AA19244@galton.math.ucla.edu>
Subject: how fast is Xlisp-Stat ?
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List),
        ucla-stat@math.ucla.edu (ucla-stat mailing list)
Date: Fri, 30 Dec 1994 15:47:22 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 540       
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

I made some comparisons with free common lisp systems (gcl, cmucl, clisp),
both the interpreted and the compiled code. I am using the Gabriel
Benchmarks. These can be obtained from ftp.stat.ucla.edu in
~/pub/lisp/common/code/gabriel
The first test results are in
~/pub/lisp/xlisp/xlisp-stat/code/homegrown/timings

--- Jan
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Mon Jan  2 09:48:47 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA22267; Mon, 2 Jan 1995 09:48:47 -0600
Resent-Date: Mon, 2 Jan 1995 16:45:21 +0000 (CUT)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from pollux.edv.agrar.tu-muenchen.de by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA22261; Mon, 2 Jan 1995 09:48:43 -0600
Return-Path: <walter@pollux.edv.agrar.tu-muenchen.de>
Received: by pollux.edv.agrar.tu-muenchen.de (AIX 3.2/UCB 5.64/4.03)
          id AA14910; Mon, 2 Jan 1995 16:45:21 GMT
From: walter@pollux.edv.agrar.tu-muenchen.de (Bernhard Walter (DVS))
Message-Id: <9501021645.AA14910@pollux.edv.agrar.tu-muenchen.de>
Subject: Is there an OS/2 port of XLispStat 3.44 ?
To: stat-lisp-news@umnstat.stat.umn.edu (stat-lisp)
Date: Mon, 2 Jan 1995 16:45:21 +0000 (CUT)
X-Mailer: ELM [version 2.4 PL24alpha3]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 819       
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: walter@pollux.edv.agrar.tu-muenchen.de (Bernhard Walter (DVS))

hi all,

I'm just wondering whether there is a OS/2 port of XLispStat.
(I just found UNIX, DOS, Windows 3.1 and Macintosh versions) 
I know one can work with the Windows version if you have both, OS/2
and Win 3.1, but also in this case it would be more elegant (and 
perhaps faster) to work directly with a 32 Bit OS/2 version.

Best regards

-- Bernhard 
----------------------------------------------------------------------------
Bernhard     Walter                   walter@pollux.edv.agrar.tu-muenchen.de 
Techn. Univ. Munich    ######  #####            +49-(0)8161-71-5055  (phone)
DVS - Weihenstephan      #  #  # # #             +49-(0)8161-71-4409   (fax)
85350      Freising      #  #### # #                               (Germany)
----------------------------------------------------------------------------

From owner-SL-news@umnstat.stat.umn.edu Mon Jan  2 12:36:16 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA22749; Mon, 2 Jan 1995 12:36:16 -0600
Resent-Date: Mon, 2 Jan 1995 19:36:07 +0100 (MET)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from fisher.unipg.it by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA22743; Mon, 2 Jan 1995 12:36:13 -0600
Return-Path: <glm@fisher.stat.unipg.it>
Received: by fisher.stat.unipg.it (AIX 3.2/UCB 5.64/4.03)
          id AA23537; Mon, 2 Jan 1995 19:36:08 +0100
From: glm@fisher.stat.unipg.it (Gianfranco Galmacci)
Message-Id: <9501021836.AA23537@fisher.stat.unipg.it>
Subject: IASC Web server
To: sl-news@umnstat.stat.umn.edu
Date: Mon, 2 Jan 1995 19:36:07 +0100 (MET)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2322      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: glm@fisher.stat.unipg.it (Gianfranco Galmacci)

Recently IASC (International Association for Statistical Computing,
a section of the ISI, International Statistical Institute) 
has set up a WWW server to help members in better knowing
the Association activities and to provide useful information
concerning statistical computing.

This effort has been made mainly by Fionn Murtagh and myself,
realizing two different info services for IASC-ERS and IASC
respectively in two different sites.
Both are linked one_another so that connecting one of them
it is possible to move to the other.

Actually you can find information on the IASC life, on the
forthcoming main events of the ERS , European Regional Section,
(i.e. the Summer School 1995 that will be held in Izmir, Turkey,
and the COMPSTAT '96 in Barcelona, Spain), CSDA and SSN table
of contents, and many anchors to relevant sites which
make available software, data and info for statisticians
(e.g. direct FTP, GOPHER, WWW or TELNET access to the main
interesting sites).

To connect the IASC WWW servers use a browser like Mosaic, Netscape,
etc., connecting the Internet address

      http://www.stat.unipg.it/iasc/          <=== home page

or
      http://http.hq.eso.org/~fmurtagh/iasc.html

chosing the closest to your site.

People who wish to connect direcly the IASC Summer School 95 WWW server
in Turkey must use (between 9am-5pm Turkish time) the address

      http://gediz.sun.9eylul.edu.tr/


Please help us sending suggestions, new ideas and contributions.

On this occasion we would like to remind you on the existence of
the IASC listserver, an E-mail broadcast system for statistical computing.

Subscription can be made sending an E-mail to listproc@stat.unipg.it
whose body should be

      subscribe iasc  <first-name>  <last-name>


Happy new year !

Gianfranco Galmacci


-- 
+-----------------------------------------------------------------------+
| Gianfranco Galmacci                                                   |
| Dipartimento di Scienze Statistiche         tel. +39 - 75 - 5855226   |
| Universita' degli Studi                     fax. +39 - 75 - 43242     |
| Casella Postale 1315/Succ.1                                           |
| 06100 PERUGIA  (ITALY)                      E-mail: glm@stat.unipg.it |
+-----------------------------------------------------------------------+

From owner-SL-news@umnstat.stat.umn.edu Wed Jan  4 12:54:40 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA18361; Wed, 4 Jan 1995 12:54:40 -0600
Resent-Date:         Wed, 04 Jan 95 13:48:09 EST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from vm1.yorku.ca by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA18355; Wed, 4 Jan 1995 12:54:37 -0600
Return-Path: <FRIENDLY@VM1.YorkU.CA>
Message-Id: <9501041854.AA18355@umnstat.stat.umn.edu>
Received: from VM1.YorkU.CA by vm1.yorku.ca (IBM VM SMTP V2R1)
   with BSMTP id 6164; Wed, 04 Jan 95 13:52:51 EST
Date:         Wed, 04 Jan 95 13:48:09 EST
From: Michael Friendly <FRIENDLY@VM1.YorkU.CA>
Subject:      ViSta workshop
To: Lisp Stat News <stat-lisp-news@umnstat.stat.umn.edu>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Michael Friendly <FRIENDLY@VM1.YorkU.CA>

                    Data Visualization Workshop

 Professor Forrest Young, Psychometric Laboratory at the Universi-
 ty of North Carolina, Chapel Hill will present a one-day workshop
 on  Friday,  Feb  3  in Administrative  Studies  Bldg,  Room  031
 York University, Toronto, ONT describing Vista - The Visual Statistics
 System.

 The information below, plus a few images and other pointers is
 available by WWW at:

      http://www.math.yorku.ca/SCS/Vista.html

 9am - noon: Visual Methods for Statistical Data Analysis

 Abstract:    ViSta,  a new statistical data visualization system,
 will be discussed and demonstrated in a non-technical,  intuitive
 and entirely visual presentation.   The goal  of the system is to
 provide the  statistical data  analyst with  visual methods  that
 improve the quality, accuracy and satisfaction of the data analy-
 sis process.  The system works under Microsoft Windows, on Macin-
 tosh computers, and under XWindows.  The system includes visuali-
 zation methods which fall into five major areas:

 1)  Visual Guidance (GuideMaps):  To  guide novice data analysts,
 the steps  which expert  data analysts think  should be  taken to
 complete a particular data analysis are presented as a map.   The
 map is dynamic, and through computer/analyst interactions, guides
 the analyst through the analysis.

 2) Session Visualization (WorkMaps):  To aid analysts at all lev-
 els of expertise,  a map is constructed of the steps taken during
 the data analysis session.   This map  acts as a memory aid,  and
 can be used to review earlier steps or commence new analyses.

 3) Structure Visualization (SpreadPlots):  To aid hypothesis for-
 mation  and confirmation,   pictures  are  presented showing  the
 structure of  data and  the structure  and fit  of data  analysis
 results.

 4)  Model Re-Vision (Interactive Graphical Modeling):  To further
 aid  hypothesis formation  and  confirmation,  model  SpreadPlots
 include graphical  tools for revising parameter  estimates.   The
 consequences,  in  terms of the  model's structure and  fit,  are
 immediately shown to the analyst,  who  can then make further re-
 visions if desired.

 5) Visual Guidance Tools (GuideTools):  To guide novice data ana-
 lysts, the expert data analyst has visual tools for creating gui-
 demaps.   To create the maps,  the expert uses the system to per-
 form prototypical data analyses, indicating the decision steps as
 well as the analysis steps.


 1pm - 4pm: The Implementation of ViSta in LispStat

 Abstract:    ViSta,  discussed in the morning session,  is imple-
 mented using the LispStat object-oriented environment for statis-
 tical computing and  dynamic graphics.   A brief  introduction to
 LispStat is presented,  with emphasis  on its object-oriented and
 dynamic graphics features.   Then, ViSta's object-oriented system
 architecture is presented, covering its data, model,  map,  icon,
 menu and  tool objects  and the  underlying ViSta/Lisp-Stat  data
 analysis language.  This presentation culminates in showing how a
 programmer develops  new model objects  within ViSta's  open pro-
 gramming environment.    The relation of ViSta's  architecture to
 hypertext, hypercode, dataflow languages,  visual programming and
 program visualization will also be discussed.   Finally, a cogni-
 tive theory about data analysis will be briefly mentioned.


 About Forrest Young

 Forrest W. Young, Professor of Psychometrics and Biostatistics at
 the University of North Carolina at Chapel Hill, received his PhD
 in Psychometrics  from the University  of Southern  California in
 1967.  His  early research interests focused  on Multidimensional
 and Optimal  Scaling (for which he  was elected the  President of
 the  Psychometric  Society  and   received  the  American  Market
 Research Association's O'Dell award, both in 1981).  His research
 interests then  shifted to Statistical  Visualization,  including
 the development of Guided Tours and SpreadPlots.

    In recent years Prof.  Young has worked on visualization tech-
 niques  for guiding  novice data  analysts  through complex  data
 analyses. This work is based on cognitive-science and artificial-
 intelligence notions  concerning the structuring of  the environ-
 ment in which  data analysis occurs.  Prof.    Young's long-range
 goal is to develop a public-domain, academically-oriented, exten-
 sible visual statistics package that  will be useful for teaching
 introductory statistics, for data analysis by statistically naive
 researchers,  and for advanced research and development in visual
 statistics.

From luke@nokomis.stat.umn.edu Sat Jan  7 05:29:22 1995
Received: by nokomis.stat.umn.edu
	(1.38.193.4/16.2) id AA12837; Sat, 7 Jan 1995 05:29:22 -0600
Resent-Date: Sat, 7 Jan 1995 05:29:20 -0600 (CST)
Received: by nokomis.stat.umn.edu
	(1.38.193.4/16.2) id AA12830; Sat, 7 Jan 1995 05:29:21 -0600
From: Luke Tierney <luke@nokomis.stat.umn.edu>
Return-Path: <luke@nokomis.stat.umn.edu>
Message-Id: <9501071129.AA12830@nokomis.stat.umn.edu>
Subject: XLISP-STAT 3.45 for MS Windows is now available
To: stat-lisp-news@nokomis.stat.umn.edu
Date: Sat, 7 Jan 1995 05:29:20 -0600 (CST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 882       
Errors-To: owner-SL-news@nokomis.stat.umn.edu
Resent-From: owner-SL-news@nokomis.stat.umn.edu
Resent-To: SL-news-list@nokomis.stat.umn.edu
Resent-Reply-To: Luke Tierney <luke@nokomis.stat.umn.edu>

XLISP-STAT Release 3.45 for MS Windows is now avialable from
umnstat.stat.umn.edu in pub/xlispstat/mswin. This release fixes a bug
introduced into the MS Windows version of 3.44 that caused :size and
:location messages to windows to fail to work properly in the
Win16. This bug seemed to affect only the Win16 version, but I have
release a new Win32 version also to be on the safe side.

Since 3.45 does not change the Macintosh or UNIX vesions, I have not
made new Macintosh or UNIX releases -- 3.44 is the most recent release
for these platforms. The changes to the MS WIndows ources will be
incorpoated into the next UNIX source release in a few weeks.

The next release will most likely incorporate some changes in the
internals of linear algebra functions that should result in
significant speed improvements for the computation of larger
regression and glim model fits.

luke

From owner-SL-news@umnstat.stat.umn.edu Tue Jan 10 13:46:08 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA06079; Tue, 10 Jan 1995 13:46:08 -0600
Resent-Date: Tue, 10 Jan 1995 11:45:57 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA06073; Tue, 10 Jan 1995 13:46:05 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA03961; Tue, 10 Jan 95 11:46:02 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA14377; Tue, 10 Jan 95 11:45:58 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9501101945.AA14377@galton.math.ucla.edu>
Subject: Xlisp-Stat Help System (fwd)
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Tue, 10 Jan 1995 11:45:57 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3350      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

Forwarded message:
From ucla-stat Tue Jan 10 11:36 PST 1995
Date: Mon, 9 Jan 95 20:28:24 PST
Message-Id: <9501100427.AA09964@galton.math.ucla.edu>
Errors-To: deleeuw
Reply-To: ucla-stat
Originator: ucla-stat@julia
Sender: ucla-stat
Precedence: bulk
From: Jan Deleeuw <deleeuw>
To: Multiple recipients of list <ucla-stat>
Subject: Xlisp-Stat Help System
X-Listserver-Version: 6.0 -- UNIX ListServer by Anastasios Kotsikonas
X-Mailer: ELM [version 2.4 PL24]
Content-Type: text
Content-Length: 2634

I have been working off and on to get a somewhat nicer and more
complete on-line help facility for Xlisp-Stat. In the directory

ftp://ftp.stat.ucla.edu/pub/lisp/xlisp/xlisp-stat/code/homegrown/help

is the most recent attempt. We have to work with three sets of
materials:

- Tim Mikkelsen's Reference Manual for Xlisp 2.0
- Tom Almy's Manual for Xlisp 2.1f (an upgrade of David Betz manual
  for 2.1)
- Luke Tierney's help file, the appendix to the 1988 Minnesota
  Report, the Book, the Xlisp-Stat 2.1 release 3 upgrade notes

I have started with Mikkelsen. All of this is in the help dialogs.
But some of it is outdated (due to Almy-Tierney upgrades) and
it is very incomplete (compared to both Xlisp-PLus and Xlisp-Stat).
I have added much of Almy, but not yet the new function descriptions
and the function modifications, because I want to use the Mikkelsen
format for each page. Almost nothing of Xlisp-Stat has been added,
but it is easy to see how and where it will fit in. Just a week
of work.

So far, I have only tried this on the Mac (actually, if you unpack this,
the text files may be in Mac form). Because of the disgusting fact that
there is no display-window-proto in the X11 version, I have used the
deplorable hack of opening an Xterm with the help text browsed by more in it.
Because laplace is down with a broken power supply, I can't test this
now, but there is no reason why it should not work.

The help consists of four pieces. The files ourhelp.lsp and
helper.lsp and manual.lsp should be at the level of the Xlisp
interpreter, the directory Help (which has 300+ files) should
be on the same level (i.e. next to Examples and Data). Actually,
the three driver files should be compiled and incorporated in
xlisp.wks. 

Although this thing is far from complete, it is much much more
complete than my previous effort. It is also nicer, because it has
apropos and search and an index. For now, it is perhaps mainly
for programmers, not for statisticians, but the next wave of
andrenalin and coffee may change this. Or perhaps somebody else
could do some stuff.

Various people have suggested, or urged, that I made an html
version of the help browser. I am somewhat reluctant to do this,
because of portability, and because it involves more work. The
hierarchical structure of the current help shows clearly, of
course, what a html version would look like.

O, and now for something completely different, by looking at
all the symbols of Xlisp-Stat 3.44 I discovered something
interesting. You can also discover this, by opening your faithful
Xlisp-Stat on the Mac, and by saying

(help* 'apple-event)


--- Jan


-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Wed Jan 11 14:33:57 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA20896; Wed, 11 Jan 1995 14:33:57 -0600
Resent-Date: Wed, 11 Jan 1995 12:33:46 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA20890; Wed, 11 Jan 1995 14:33:53 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA27186; Wed, 11 Jan 95 12:33:49 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA19742; Wed, 11 Jan 95 12:33:47 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9501112033.AA19742@galton.math.ucla.edu>
Subject: help system
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Wed, 11 Jan 1995 12:33:46 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1945      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

The Xlisp-Stat help system has been updated. It is guaranteed to work
only on Macs. It consists of four files 

hulp.lsp
machulp.lsp
helper.lsp
manual.lsp

These have to be loaded into the interpreter (for best results,
compile, and load into the workspace). Then the directory Help
must be installed (next to Examples and Data). It has 400+ files,
and it's growing. The system is still changing (see To Do, below)
and you may want to update frequently (latest version always
in ftp://ftp.stat.ucla.edu/pub/lisp/xlisp/xlisp-stat/code/homegrown/help)

We have the following functions.

(hulp) put up a browser type dialog. double click on the items
to get help. buttons for apropos, index, and search.

(hulp-index) scrollable list of all symbols in the help. 
Double click for help.

On the mac three commands will be added to the command menu.
They work with selected text in the front-window (this can
be *listener*, an edit-window, or a display-window). Select
text and do Command-H will look up the text, do Command-P
will do an apropos, and Command-T will replace the selection
by a complete symbol (if there is a unique completion).

Thus type into *listener*
(with-i
Select "with-i" by double-clicking, then do Command-T, and
"with-i" will be replaced by "with-input-from-string".

If you are looking at a hulp window (a display-window), you
can select a symbol in that window (by dragging) and say
Command-H or Command-T to open hulp or apropos on that symbol.

To do:
 
Put in more stuff.
Update Mikkelsen-file, expand Almy-Tierney files to Mikkelsen
format.
Create HTML versions (?).
Reorganize, using symbols.
Some symbols are not unique (* and + and -), this screws up
searches.
Completing without selecting ?
X11.

-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Thu Jan 12 03:05:48 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA02457; Thu, 12 Jan 1995 03:05:48 -0600
Resent-Date: Thu, 12 Jan 1995 10:05:38 +0100
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from hypatia-gw.ethz.ch by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA02451; Thu, 12 Jan 1995 03:05:45 -0600
Return-Path: <maechler@stat.math.ethz.ch>
Received: from ingrid.ethz.ch (maechler@ingrid.ethz.ch [129.132.58.16]) by hypatia.ethz.ch (8.6.5/Main-mathdept-mailer) with ESMTP id KAA00513; Thu, 12 Jan 1995 10:05:41 +0100
From: Martin Maechler <maechler@stat.math.ethz.ch>
Received: from localhost (maechler@localhost) by ingrid.ethz.ch (8.6.5/D-MATH-stat-client) id KAA08662; Thu, 12 Jan 1995 10:05:38 +0100
Date: Thu, 12 Jan 1995 10:05:38 +0100
Message-Id: <199501120905.KAA08662@ingrid.ethz.ch>
To: deleeuw@math.ucla.edu
Cc: Lisp-Stat Mailinglist <stat-lisp-news@umnstat.stat.umn.edu>
In-Reply-To: <199501112044.VAA28181@hypatia.ethz.ch> (message from Jan Deleeuw on Wed, 11 Jan 1995 12:33:46 -0800 (PST))
Subject: Re: help system
Reply-To: Martin Maechler <maechler@stat.math.ethz.ch>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Martin Maechler <maechler@stat.math.ethz.ch>

I`d be quit willing to give you feedback on the help system
as soon as you have an  X11 version working....

It's really great if you put effort in the on-line help system.
This makes  lisp-stat  leap from an 'expert' to a 'user' system....
	[today's users are spoiled more than they used to be 10 years ago...]

From owner-SL-news@umnstat.stat.umn.edu Thu Jan 19 16:44:43 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA06807; Thu, 19 Jan 1995 16:44:43 -0600
Resent-Date: Thu, 19 Jan 1995 15:44:36 -0700
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from dns1.NMSU.Edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA06801; Thu, 19 Jan 1995 16:44:39 -0600
Return-Path: <ddaniel@nmsu.edu>
Received: from ccserver by NMSU.Edu (8.6.8.1/NMSU-1.18)
	id PAA05141; Thu, 19 Jan 1995 15:44:36 -0700
Date: Thu, 19 Jan 1995 15:44:36 -0700
Message-Id: <199501192244.PAA05141@NMSU.Edu>
Received: from [128.123.31.142] by ccserver (4.1/NMSU)
	id AA23322; Thu, 19 Jan 95 15:44:32 MST
X-Sender: ddaniel@dante.nmsu.edu
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: stat-lisp-news@umnstat.stat.umn.edu
From: ddaniel@nmsu.edu (David L. Daniel)
Subject: sv-decomp usage...
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: ddaniel@nmsu.edu (David L. Daniel)

Hi,

I've been trying to use sv-decomp, but am having trouble getting the
expected results.  Here's a sample:

> (def b #2A((1 1 0) (0 2 1) (0 0 3)))
B
> (print-matrix b)
#2a(
    (1 1 0)
    (0 2 1)
    (0 0 3)
   )
NIL
> (second (sv-decomp b))
#(3.27307 2.13264 0.859565)

Now shouldn't this vector be #(3 2 1)???
Perhaps the tolerance for the convergence is not set very low?  If anyone
has suggestions or comments I would appreciate them.  I'm running this
under the ppc version 3.43, but have gotten the same results from a 2.1R3a7
version for a 68000 macintosh.

Thanks,
-David


David Daniel
Dept. of Experimental Statistics
New Mexico State University
ddaniel@nmsu.edu
#####################################################
This random sign-off was generated by a statistician.
#####################################################



From owner-SL-news@umnstat.stat.umn.edu Thu Jan 19 16:59:59 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA06845; Thu, 19 Jan 1995 16:59:59 -0600
Resent-Date: Thu, 19 Jan 95 14:59:52 PST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA06839; Thu, 19 Jan 1995 16:59:56 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA18326; Thu, 19 Jan 95 14:59:53 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA17962; Thu, 19 Jan 95 14:59:52 PST
Date: Thu, 19 Jan 95 14:59:52 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9501192259.AA17962@galton.math.ucla.edu>
To: ddaniel@nmsu.edu (David L. Daniel)
Cc: stat-lisp-news@umnstat.stat.umn.edu
Subject: sv-decomp usage...
In-Reply-To: <199501192244.PAA05141@NMSU.Edu>
References: <199501192244.PAA05141@NMSU.Edu>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

David L. Daniel writes:
 > Hi,
 > 
 > I've been trying to use sv-decomp, but am having trouble getting the
 > expected results.  Here's a sample:
 > 
 > > (def b #2A((1 1 0) (0 2 1) (0 0 3)))
 > B
 > > (print-matrix b)
 > #2a(
 >     (1 1 0)
 >     (0 2 1)
 >     (0 0 3)
 >    )
 > NIL
 > > (second (sv-decomp b))
 > #(3.27307 2.13264 0.859565)
 > 
 > Now shouldn't this vector be #(3 2 1)???
 > Perhaps the tolerance for the convergence is not set very low?  If anyone
 > has suggestions or comments I would appreciate them.  I'm running this
 > under the ppc version 3.43, but have gotten the same results from a 2.1R3a7
 > version for a 68000 macintosh.
 > 
 > Thanks,
 > -David
 > 
 > 
 > David Daniel
 > Dept. of Experimental Statistics
 > New Mexico State University
 > ddaniel@nmsu.edu
 > #####################################################
 > This random sign-off was generated by a statistician.
 > #####################################################
 > 
 > 
The singular values are correct, singular values are not eigenvalues. Check
the sum of squares of b (16) and the sum of squares of your suggested
singular values (15).

--- Jan

From owner-SL-news@umnstat.stat.umn.edu Fri Jan 20 10:37:16 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA18405; Fri, 20 Jan 1995 10:37:16 -0600
Resent-Date: Fri, 20 Jan 95 11:33:49 EST
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from kodak.com by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA18395; Fri, 20 Jan 1995 10:36:44 -0600
Return-Path: <luh700@gosset.kodak.com>
Received: from euler.kodak.com by Kodak.COM (5.61+/2.1-Eastman Kodak)
	id AA23586; Fri, 20 Jan 95 11:37:38 -0500
Reply-To: luh700@gosset.kodak.com
Received: from gosset.kodak.com by euler.kodak.com via SMTP (931110.SGI/931108.SGI.ANONFTP)
	for @kodakr.Kodak.COM:stat-lisp-news@umnstat.stat.umn.edu id AA21343; Fri, 20 Jan 95 11:31:31 -0500
Received: by gosset.kodak.com (4.1/SMI-4.1)
	id AA06254; Fri, 20 Jan 95 11:33:49 EST
Date: Fri, 20 Jan 95 11:33:49 EST
From: luh700@gosset.kodak.com (Jeffrey D. Morris)
Message-Id: <9501201633.AA06254@gosset.kodak.com>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: t-test.lsp problem
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: luh700@gosset.kodak.com (Jeffrey D. Morris)

I downloaded t-test.lsp from the UCLA site but when I loaded it
I got the following error message...
Error: Bad object -NIL
Happened in: #<Subr: #4689e4>

The plot window does come up but then nothing.  I'm running on 3.44 on
a Mac IIi.

Any ideas?

BTW would it make sense to put the authors name and address in the 
function listing in case someone had questions, ideas for enhancements, 
etc?

Jeffrey D. Morris
Applied Math and Statistics
Kodak Research Labs
Rochester, NY 14650-2205
morris@kodak.com


From owner-SL-news@umnstat.stat.umn.edu Fri Jan 20 18:46:33 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA20919; Fri, 20 Jan 1995 18:46:33 -0600
Resent-Date: Fri, 20 Jan 1995 16:46:04 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA20913; Fri, 20 Jan 1995 18:46:12 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.11) id AA04501; Fri, 20 Jan 95 16:46:07 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.10) id AA29480; Fri, 20 Jan 95 16:46:04 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9501210046.AA29480@galton.math.ucla.edu>
Subject: Here Comes a File
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Fri, 20 Jan 1995 16:46:04 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2848      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

New and upgraded Xlisp-Stat code in 

ftp.stat.ucla.edu:/pub/lisp/xlisp/xlisp-stat/code/homegrown

Look in the following subdirectories. Some of this code is incomplete,
in the sense that some parts are unfinished. It will be updated whenever
another part is ready, or whenever substantial changes of any kind are
implemented.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
01/20/95 spatial/ has code for different types of variogram estimates
         By Stan Bentow, Dave Afshartous, and George Michailides.
01/20/95 plotters/ has a useful upgrade to spin-plot-proto by
         Jason Bond.
01/18/95 modules/ has a new selection of modules and demos for
         introductory statistics teaching. By Jason Bond and
         Jan de Leeuw.
01/13/95 help/ has a large on-line help system for xlisp/xlisp-stat
         by Jan de Leeuw. IN PROGRESS.
01/12/95 IO/stem-and-leaf has a stem-and-leaf plot with sliders. By
         Jason Bond.
01/05/95 robust/ has code for Rousseeuw's S_n scale estimate. By Jason
         Bond. Q_n IS COMING.
01/05/95 robust/lms has code for Stromberg's exact algorithm to do
         Least Median of Squares estimation. By David Betz.
12/30/94 optimize/ has Bruno Haible's CL simplex method, adapted to
         Xlisp by David Betz.
12/25/94 niceties/ now has list-from-string.lsp which takes a string
         and cuts it in pieces defined by the separating 
         characters in charbag. Does a post-operation on each member 
         (capitalize, reverse, whatever).
12/23/94 IO/ has write-profile.lsp which takes a list of lists with
         category labels for a number of variables, and writes a string matrix
         will all possible profiles. The file also has a function 
         write-latex-table which takes a xlisp array of strings and 
         writes it to a file with LaTeX table/tabular environments.
12/19/94 sem/ has code for maximum likelihood and least squares factor 
         analysis, for image analysis, and for minimum trace factor 
         analysis. By Jan de Leeuw.
12/19/94 smoothers/ has code and a manual for Jerry Friedman's 
         variable span supersmoother. By Jason Bond and Afshan Tabazadeh.
12/19/94 combinatorial/ has code by David Betz to generate all 
         choices of m out of n lexicographically.
12/19/94 optimization/ has routines to compute roots of polynomials 
         of degree lte four using the classic algorithms (by Sona Vartanian).
12/10/94 bootstrap/ has the bootstrap for stationary observations, by
         Jan de Leeuw.
12/10/94 robust/ has a growing list of robust location and scale estimates, 
         by Jan de Leeuw.
09/06/94 mcmc/ has code by Jan de Leeuw for Adrian Raftery's technique to
         estimate the number of iterations of the Gibbs sampler.
09/02/94 bootstrap/ has the balanced bootstrap, by David Betz.


From owner-SL-news@umnstat.stat.umn.edu Fri Jan 27 12:50:17 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA22204; Fri, 27 Jan 1995 12:50:17 -0600
Resent-Date: Fri, 27 Jan 1995 13:48:48 -0500 (EST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from dns.sph.umich.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA22197; Fri, 27 Jan 1995 12:50:15 -0600
Return-Path: <pgreen@sph.umich.edu>
Received: from csrvr5.sph.umich.edu (csrvr5.sph.umich.edu [141.211.50.223]) by sph.umich.edu (8.6.9/8.6.9) with ESMTP id NAA10503 for <stat-lisp-news@umnstat.stat.umn.edu>; Fri, 27 Jan 1995 13:50:14 -0500
Received: (pgreen@localhost) by csrvr5.sph.umich.edu (8.6.9/8.6.9) id NAA24358; Fri, 27 Jan 1995 13:48:48 -0500
Date: Fri, 27 Jan 1995 13:48:48 -0500 (EST)
From: Paul Green <pgreen@umich.edu>
X-Sender: pgreen@csrvr5.sph.umich.edu
To: LISP <stat-lisp-news@umnstat.stat.umn.edu>
Message-Id: <Pine.SUN.3.90.950127133242.24353A-100000@csrvr5.sph.umich.edu>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Paul Green <pgreen@umich.edu>


LISP-STAT supplies a log-gamma function, but not the first
and second derivatives (the digamma and trigamma functions).
Here are some simple functions for calculating them. For 
details, see Bernardo (1976), Appl. Stat., 315-317, and
Schneider (1978), Appl. Stat., 97-99, also Francis (1991?),
Appl. Stat., 514-515.

 
;;;; LISP-STAT functions for evaluating the first and
;;;; second derivatives of the log-gamma function (the
;;;; digamma and trigamma functions, respectively).
;;;; Both functions take a real positive argument.
 
(defun digam (x)
  (let ((s3 8.333333333e-2)
        (s4 8.333333333e-3)
        (s5 3.968253968e-3)
        (d1 -0.5772156649))
    (cond ((<= x 0) (princ "error: non-positive argument - ") x)
          ((<= x 1e-5) (- d1 (/ x)))
          (t (do ((z    x (+ z 1))
                  (dgam 0 (- dgam (/ z))))
                 ((>= z 8.5) (setf y (/ z))
          (setf dgam (+ dgam (log z) (- (* 0.5 y))))
          (setf y (* y y))
          (- dgam (* y (- s3 (* y (- s4 (* y s5))))))))))))
 
(defun trigam (x)
  (let ((b2 0.1666666667)
        (b4 -0.03333333333)
        (b6 0.02380952381)
        (b8 -0.03333333333))
    (cond ((<= x 0) (princ "error: non-positive argument - ") x)
          ((<= x 1e-4) (/ (* x x)))
          (t (do ((z    x (+ z 1))
                  (tgam 0 (+ tgam (/ (* z z)))))
                 ((>= z 5) (setf y (/ (* z z)))
    (+ tgam (* 0.5 y)
       (/ (+ 1 (* y (+ b2 (* y (+ b4 (* y (+ b6 (* y b8))))))))
          z))))))))


------------------------------------------------------------------
Paul E. Green                             E-mail: pgreen@umich.edu
University of Michigan                    Phone: (313) 764-8213
Transportation Research Institute         Fax:   (313) 936-1081
Ann Arbor, MI 48109-2150


From owner-SL-news@umnstat.stat.umn.edu Wed Feb  1 12:43:36 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA27642; Wed, 1 Feb 1995 12:43:36 -0600
Resent-Date: Wed, 1 Feb 1995 13:43:34 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from email.unc.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA27636; Wed, 1 Feb 1995 12:43:32 -0600
Return-Path: <richf@email.unc.edu>
Received: from upper68.psych.unc.edu by email.unc.edu (AIX 3.2/UCB 5.64/4.03)
          id AA206913; Wed, 1 Feb 1995 13:43:34 -0500
Date: Wed, 1 Feb 1995 13:43:34 -0500
Message-Id: <9502011843.AA206913@email.unc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: stat-lisp-news@umnstat.stat.umn.edu
From: richf@email.unc.edu (Rich Faldowski)
Subject: Qs:Print accurary, Menu Items, Byte Compilers
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: richf@email.unc.edu (Rich Faldowski)


I have two unrelated questions.

(1) In the context of saving statistical modeling work (intermediate
results, transformations, ect.) between sessions or for transporting them
between platforms, what technique (or lisp command) for writing out results
to disk files produces the most numerically accurate representations of
floating point numbers.  Here, I mean "numerical accuracy" in the sense of
producing the smallest possible discrepancy between the original double
precision internal representation of a number and the value that results
when the number is saved to disk then read back.  Using PRINT, with a file
specified as the output stream, I have so far only achieved equality
between original and saved values up to five or six decimal places (worst
cases among sets of numbers).  The FORMAT command has not yielded any
better results. Any suggestions would be welcome?

(2) For the purposes of completing a fairly substantial project, I am
currently still using XLispStat version 2.1r3a7, but have been following
the evolution of XLS into versions 3.xx with interest.  Perhaps this is a
naive question, but what exactly is the "byte compiler" included with XLS
3.xx and what differentiates it from more familiar, good old-fashioned C or
Fortran compilers.

Thanks in advance.




==============================================
Richard A. Faldowski (richf@email.unc.edu)
L.L. Thurstone Psychometric Laboratory
Department of Psychology
University of North Carolina at Chapel Hill
----------------------------------------------
"It is very easy to be blinded to the essential uselessness of [Sirius
Cybernetics Corporation products] by the sense of achievement you get from
getting them to work at all. ...[T]heir fundamental design flaws are
completely hidden by their superficial design flaws."
                                      (The Hitchhiker's Guide to the Galaxy)
==============================================



From owner-SL-news@umnstat.stat.umn.edu Wed Feb  1 13:38:45 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA27935; Wed, 1 Feb 1995 13:38:45 -0600
Resent-Date: Wed, 01 Feb 95 12:37:12 -2400
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from bill.math.montana.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA27927; Wed, 1 Feb 1995 13:38:08 -0600
Return-Path: <jeff@math.montana.edu>
Received: by bill.math.montana.edu (5.65/DEC-Ultrix/4.3)
	id AA04755; Wed, 1 Feb 1995 12:38:59 -0700
Message-Id: <9502011938.AA04755@bill.math.montana.edu>
From: Jeff Banfield <jeff@math.montana.edu>
Date: Wed, 01 Feb 95 12:37:12 -2400
To: lisp-stat-news@umnstat.stat.umn.edu
Mime-Version: 1.0
X-Mailer: Mozilla/1.0N (Macintosh)
Content-Type: text/plain;  charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Subject: subscribe
X-Url: http://stat.umn.edu/~rcode/get-xlispstat.html
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jeff Banfield <jeff@math.montana.edu>


subscribe



From luke@nokomis.stat.umn.edu Wed Feb  1 16:17:57 1995
Received: by nokomis.stat.umn.edu
	(1.38.193.4/16.2) id AA26339; Wed, 1 Feb 1995 16:17:57 -0600
Resent-Date: Wed, 1 Feb 1995 16:17:55 -0600 (CST)
Received: by nokomis.stat.umn.edu
	(1.38.193.4/16.2) id AA26331; Wed, 1 Feb 1995 16:17:55 -0600
From: Luke Tierney <luke@nokomis.stat.umn.edu>
Return-Path: <luke@nokomis.stat.umn.edu>
Message-Id: <9502012217.AA26331@nokomis.stat.umn.edu>
Subject: Qs:Print accurary, Menu Items, Byte Compilers (fwd)
To: stat-lisp-news@nokomis.stat.umn.edu
Date: Wed, 1 Feb 1995 16:17:55 -0600 (CST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 5289      
Errors-To: owner-SL-news@nokomis.stat.umn.edu
Resent-From: owner-SL-news@nokomis.stat.umn.edu
Resent-To: SL-news-list@nokomis.stat.umn.edu
Resent-Reply-To: Luke Tierney <luke@nokomis.stat.umn.edu>

> 
> (1) In the context of saving statistical modeling work (intermediate
> results, transformations, ect.) between sessions or for transporting them
> between platforms, what technique (or lisp command) for writing out results
> to disk files produces the most numerically accurate representations of
> floating point numbers.  Here, I mean "numerical accuracy" in the sense of
> producing the smallest possible discrepancy between the original double
> precision internal representation of a number and the value that results
> when the number is saved to disk then read back.  Using PRINT, with a file
> specified as the output stream, I have so far only achieved equality
> between original and saved values up to five or six decimal places (worst
> cases among sets of numbers).  The FORMAT command has not yielded any
> better results. Any suggestions would be welcome?

One of the changes with releses since 3.39 has been to make PRINT
produce floating point output that is reasonably close to reproducing
internal representations. THe code relies on the native C printf, so
if that is flawed then xlispstat will be. So in the new release, using
PRINT should work. In the old release you can probably use "~,16e"
with format, but I have not checked that.

> (2) For the purposes of completing a fairly substantial project, I am
> currently still using XLispStat version 2.1r3a7, but have been following
> the evolution of XLS into versions 3.xx with interest.  Perhaps this is a
> naive question, but what exactly is the "byte compiler" included with XLS
> 3.xx and what differentiates it from more familiar, good old-fashioned C or
> Fortran compilers.
> 

C and FORTRAN compilers usually produce machine code, thoug there are
some that optionally produce byte code (I think Microsoft C does).
Many Scheme systems, emacs lisp, and even one Common Lisp system
(CLISP) use byte code compilation. A byte code compiler produces code
for a byte code interpreter (or a "virtual machine" if you want to be
fancy). Usually the instruction set is designed to consist of at most
256 instructions, which can be contained in one byte, and hece the
name. Like most byte code interpreters, mine is written in C as a
single C function with a big switch on the opcode. The byte code is
essentially machine independent. Byte code compilation gains most of
its speed from the fact that a properly designed code ant interpreter
can run much faster than a direct interpeter of lisp code. In
addition, there are many things an interpreter has to check for at run
time that the compiler can get rid of, which also saves time.

To give a simple example,

	(defun f (x) (let ((s 0)) (dolist (y x s) (incf s y))))

defines a function that sums a list, say 1, 2, ... 1000,

	(def x (iseq 1 1000))

The speeds are:

> (time (dotimes (i 1000) (f x)))
The evaluation took 32.64 seconds; 0.44 seconds in gc.
NIL
> (compile 'f)
F
> (time (dotimes (i 1000) (f x)))
The evaluation took 3.37 seconds; 0.09 seconds in gc.
NIL

So the byte compiler speeds it up by a factor of 10. (Obviously this
is one of the more favorable examples.) A native C implementation that
uses generic addition gives a factor of 2 improvement,

> (time (dotimes (i 1000) (f2 x)))
The evaluation took 1.46 seconds; 0.04 seconds in gc.

A C implementation that uses double precision floating point addition
(but would not work on complex numbers of course) gives another factor
of 2,

> (time (dotimes (i 1000) (f1 x)))
The evaluation took 0.70 seconds; 0.00 seconds in gc.

Finally, a native C version that uses double precision addition on a
double precision array gives about another factor of 5 improvement.

> (time (dotimes (i 1000) (f3 y)))
The evaluation took 0.13 seconds; 0.00 seconds in gc.

The functions f1, f2 and f3 were dynamically loaded.

Similar little experiments seem to suggest that a good byte code
system can get reasonably close to equivalent native C code as long as
generic arithmetic is used. If you can restrict your code to a
specific machine type of data, such as C double's then native C can do
quite a bit better. Some of that gain can be picked up even in a byte
code system by working with native data types, maybe as much as a
factor of 4 in this case, but the remaining factor of 5 requires
machine code generation to get everything to stay in registers during
the whole computation.

The reason the byte code compiler does as well as it does here is that
it reduces the loop to just 4 instructions to the byte code
interpreter. Here is the internal assembly representation of the
function:

(#:MAIN208210 (%INITIALIZE 0 2 1 0 3)
              (%COPY 2 3)
              (%COPY 1 4)
              (%CAR 4 5)
              (%GOTO #:TEST161211)
              #:LOOP162212
              (%ARITH2 43 3 5 3)      ;; add y to s, put in s
              (%CDR 4 4)              ;; compute (cdr x), store in x
              (%CAR 4 5)              ;; compute (car x), store in y
              #:TEST161211
              (%TEST-1 1              ;; test if x is null and branch
                       #:LOOP162212
                       #:ELSE214216
                       4)
              #:ELSE214216
              (%SET-ONE-VALUE-RETURN 0 3))

So much for a core dump on byte code compiling ... you asked.

luke

From owner-SL-news@umnstat.stat.umn.edu Thu Feb  2 09:52:43 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA10708; Thu, 2 Feb 1995 09:52:43 -0600
Resent-Date: Thu, 02 Feb 95 10:44:33 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from BITBURG.BBN.COM by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA10701; Thu, 2 Feb 1995 09:52:41 -0600
Return-Path: <kanderso@bbn.com>
Message-Id: <9502021552.AA10701@umnstat.stat.umn.edu>
To: Luke Tierney <luke@umnstat.stat.umn.edu>
Cc: stat-lisp-news@umnstat.stat.umn.edu, JMorrill@bbn.com
Subject: Re: Qs:Print accurary, Menu Items, Byte Compilers (fwd) 
In-Reply-To: Your message of Wed, 01 Feb 95 16:17:55 -0600.
             <9502012217.AA26331@nokomis.stat.umn.edu> 
Date: Thu, 02 Feb 95 10:44:33 -0500
From: kanderso@bbn.com
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: kanderso@bbn.com

  From: Luke Tierney <luke@stat.umn.edu>
  Subject: Qs:Print accurary, Menu Items, Byte Compilers (fwd)
  To: stat-lisp-news@nokomis.stat.umn.edu
  Date: Wed, 1 Feb 1995 16:17:55 -0600 (CST)
  X-Mailer: ELM [version 2.4 PL24]
  Mime-Version: 1.0
  Content-Type: text/plain; charset=US-ASCII
  Content-Transfer-Encoding: 7bit
  Content-Length: 5289      
  Errors-To: owner-SL-news@stat.umn.edu
  
  > cases among sets of numbers).  The FORMAT command has not yielded any
  > better results. Any suggestions would be welcome?
  
  One of the changes with releses since 3.39 has been to make PRINT
  produce floating point output that is reasonably close to reproducing
  internal representations. THe code relies on the native C printf, so
  if that is flawed then xlispstat will be. So in the new release, using
  PRINT should work. In the old release you can probably use "~,16e"
  with format, but I have not checked that.
  
I have common Lisp code that does fast accurate writing of floats,
written by Jeff Morrill.  It is based on the papers:

G. L. Steele and J. L. White, "How to Print Floating-Point
Numbers Accurately," pp. 112-126, in Proc. ACM SIGPLAN'90
Conferent on Programming Design and Implementation,
White Plains, NY, 1990.

There is a companion paper by Will Clingerin the proceedings that describe
how to read floats.

There is also C code Written by David Gray.  I believe it can be gotten
from netstat (the functions are called dtoa.c and g_fmt.c)

Float printing and reading should be based on this approach.

k

From bjm@otter.stat.umn.edu Thu Feb  2 20:10:20 1995
Received: by otter.stat.umn.edu
	(1.38.193.4/16.2) id AA06618; Thu, 2 Feb 1995 20:10:20 -0600
Resent-Date: Thu, 02 Feb 1995 20:10:17 CST
Received: from localhost by otter.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA06610; Thu, 2 Feb 1995 20:10:18 -0600
Return-Path: <bjm@otter.stat.umn.edu>
Message-Id: <9502030210.AA06610@otter.stat.umn.edu>
To: stat-lisp-news@otter.stat.umn.edu
Subject: Re: Qs:Print accurary, Menu Items, Byte Compilers (fwd) 
In-Reply-To: Your message of "Thu, 02 Feb 1995 10:44:33 CST."
             <9502021552.AA10701@umnstat.stat.umn.edu> 
Date: Thu, 02 Feb 1995 20:10:17 CST
From: "Bret J. Musser" <bjm@otter.stat.umn.edu>
Errors-To: owner-SL-news@otter.stat.umn.edu
Resent-From: owner-SL-news@otter.stat.umn.edu
Resent-To: SL-news-list@otter.stat.umn.edu
Resent-Reply-To: "Bret J. Musser" <bjm@otter.stat.umn.edu>


I believe that the original poster asked about saving and recalling values.
Don't forget the "savevar" function which will save variables in a
lisp-readable file.  

     
E.g. (def x (normal-rand 5)) 
     (savevar 'x "blah") 
     
would create something like

(DEF X (QUOTE (0.5248860861756885 -1.6327608204085289 2.6584650826828184
1.464619651621857 -0.9080837158167088)))  

in a file named "blah.lsp".

Bret

From owner-SL-news@umnstat.stat.umn.edu Fri Feb  3 07:40:01 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA23516; Fri, 3 Feb 1995 07:40:01 -0600
Resent-Date: Fri, 03 Feb 1995 08:43:15 -0500
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from euler.bd.psu.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA23510; Fri, 3 Feb 1995 07:39:59 -0600
Return-Path: <naras@euler.bd.psu.edu>
Received: by euler.bd.psu.edu via SMTP (931110.SGI/930416.SGI.AUTO)
	for stat-lisp-news@umnstat.stat.umn.edu id AA19644; Fri, 3 Feb 95 08:43:27 -0500
Message-Id: <9502031343.AA19644@euler.bd.psu.edu>
To: stat-lisp-news@umnstat.stat.umn.edu
Subject: Statistical Computing in Lisp. Orlando '95.
Date: Fri, 03 Feb 1995 08:43:15 -0500
From: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Balasubramanian Narasimhan <naras@euler.bd.psu.edu>


FYI.

The URL 

           http://euler.bd.psu.edu/lispstat 

now contains a link to a page that contains the titles of talks and
abstracts to be presented at the "Statistical Computing in Lisp"
session at the Joint Meetings in Orlando, August 1995.

________________________________________________________________
B. Narasimhan                             naras@euler.bd.psu.edu


From owner-SL-news@umnstat.stat.umn.edu Fri Feb  3 11:44:03 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA24450; Fri, 3 Feb 1995 11:44:03 -0600
Resent-Date: Fri, 3 Feb 1995 09:43:53 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA24441; Fri, 3 Feb 1995 11:44:00 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.12) id AA02570; Fri, 3 Feb 95 09:43:57 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.12) id AA23784; Fri, 3 Feb 95 09:43:54 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9502031743.AA23784@galton.math.ucla.edu>
Subject: write-latex-table
To: ucla-stat@math.ucla.edu (ucla-stat mailing list),
        stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Fri, 3 Feb 1995 09:43:53 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2242      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

I have found this quite useful. It takes a Lisp array, and writes it
to a LaTeX table. This also works in Common Lisp. Along the same
lines, I am now writing utilities to convert simple text or simple
LaTeX to HTML.
=======================================================================
(defun write-latex-table (x &key (title "table.tex") (how "r") (rule nil)
	(form "full") (size "normalsize") (caption "caption"))
"Args: x
Takes a matrix of numbers or strings, and writes it to a file
in a LaTeX table. Optional parameters for the title of the file,
for the caption, for the alignment (r, c, l),
for the format (full, upper, lower), for rules between the lines,
and for the LaTeX size (normalsize, tiny, LARGE, etc). Returns nil."
(let* (
     (n (first (array-dimensions x)))
     (m (second (array-dimensions x)))
     (s (with-output-to-string (form)
                               (format form "~a" "|")
                               (dotimes (i m)
                                 (format form "~a~a" "|" how)
                                 (if (= i (1- m)) (format form "~a"
"||")))))
     )
     (with-open-file (texfile title :direction :output)
            (format texfile "~a[ht]~%" "\\begin{table}")
            (format texfile "~a~%" "\\centering")
            (format texfile "\\~a~%" size)
	    (format texfile "~a{~a}\\hline~%" "\\begin{tabular}" s)
            (dotimes (i n)
              (dotimes (j m)
(if (or (string= form "full")
    (and (string= form "upper") (>= j i))
    (and (string= form "lower") (<= j i)))
                (format texfile "~a" (aref x i j)))
                (if (= j (1- m))
                    (if (= i (1- n)) (format texfile " \\\\\\hline~%")
	              (if rule (format texfile " \\\\\\hline~%")
                      (format texfile " \\\\~%")))
                  (format texfile " & "))))
            (format texfile "~a~%" "\\end{tabular}")
            (format texfile "~a{~a}~%" "\\caption" caption)
            (format texfile "~a~%" "\\end{table}"))
     ))

-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu 

From owner-SL-news@umnstat.stat.umn.edu Fri Feb  3 12:31:28 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA24680; Fri, 3 Feb 1995 12:31:28 -0600
Resent-Date: Fri, 3 Feb 1995 10:31:21 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA24673; Fri, 3 Feb 1995 12:31:26 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.12) id AA04522; Fri, 3 Feb 95 10:31:24 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.12) id AA23918; Fri, 3 Feb 95 10:31:22 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9502031831.AA23918@galton.math.ucla.edu>
Subject: speed
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Fri, 3 Feb 1995 10:31:21 -0800 (PST)
Cc: deleeuw@stat.ucla.edu (Jan de Leeuw)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1240      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

In view of recent discussion about the relative merits of Xlisp and
Common Lisp, and about the differences between byte-compiled and
object-compiled code, here is a tiny speed comparison using the
write-latex-table fucntion I posted recently. I have done similar
comparisons using floating point operations, and then the
results are quite different. This function is just IO and looping.

(0) All runs on galton, a Sparc 20 with 64MB and 1 processor
    Command (time (write-latex-table (make-array '(100 100))))

(1) Xlisp-Stat
	interpreted lsp 3.27 sec
	byte-compiled   0.83 sec
(2) Clisp
	interpreted lsp real 10.54 run 10.43 gc 0.26
        byte compiled   real  6.36 run  6.24 gc 0.24
(3) cmucl
	interpreted lsp real 12.10 run 11.61 gc 1.53
        object code     real  4.74 run  3.45 gc 1.06
(4) gcl
	interpreted lsp real  5.73 run  3.27
        object code     real  3.78 run  1.55

I'll do Xlisp-Stat vs MCL when I get home (on the PowerBook 170).
I cant do PowerMac, because my Powermac is in LA, and I am
in NC.
-- 
Jan de Leeuw; UCLA Statistics Program; UCLA Statistical Consulting
US mail: 8118 Math Sciences, 405 Hilgard Ave, Los Angeles, CA 90024-1554
phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu  

From owner-SL-news@umnstat.stat.umn.edu Tue Feb  7 11:09:53 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA14693; Tue, 7 Feb 1995 11:09:53 -0600
Resent-Date: Tue, 7 Feb 1995 09:09:47 -0800 (PST)
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from julia.math.ucla.edu by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA14686; Tue, 7 Feb 1995 11:09:51 -0600
Received: from galton.math.ucla.edu by julia.math.ucla.edu 
	(Sendmail 4.1/1.12) id AA09813; Tue, 7 Feb 95 09:09:49 PST
Return-Path: <deleeuw@math.ucla.edu>
Received: by galton.math.ucla.edu 
	(Sendmail 4.1/1.12) id AA10933; Tue, 7 Feb 95 09:09:48 PST
From: Jan Deleeuw <deleeuw@math.ucla.edu>
Message-Id: <9502071709.AA10933@galton.math.ucla.edu>
Subject: Here Comes A File
To: stat-lisp-news@umnstat.stat.umn.edu (Xlisp List)
Date: Tue, 7 Feb 1995 09:09:47 -0800 (PST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1495      
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Jan Deleeuw <deleeuw@math.ucla.edu>

I had promised several people to compare Xlisp and Common Lisp on the
Mac. The only Mac I have here is a PowerBook 170 (with 8MB) that has
Xlisp-Stat 3.44, MCL 2.0.1, and PowerLisp 1.1b.

Plug: PowerLisp is shareware ($ 75). It can be ftp-ed from ftp.stat.ucla.edu
in pub/lisp/common. It is a nice starter system, and comes with a
native 680xx compiler and assembler written in Common Lisp, plus a
nice disassemble function as well. It does not have much of a Toolbox
interface, and it is not as complete or as fast as MCL -- but it works
quite well. PowerLisp is by Roger Corman (roger@island.com).
=========================================================================
(time (write-latex-table (make-array '(100 100)))

This is all IO, and Xlisp-Stat shines. The IO is all in C, and the system
does not have much overhead.

XL-I  22.70
XL-C   8.60
MCL   30.14

MCL compiles all the code it loads, so it does not have interpreted code
times.
========================================================================
(testfrpoly) ;; the Gabriel-Fateman polynomial arithmetic benchmark
             ;; consists for four tests

XL-I     1.05    11.70   133.47   966.28
XL-C     0.22     2.28    26.23   185.53
MCL      0.07     0.23     3.07    28.73
========================================================================
(time (primes 0 1000)) ;; the Sieve

XL-I 126.27
XL-C  38.45
MCL   13.61
PL-I 256.00
PL-C  34.01
========================================================================


From owner-SL-news@umnstat.stat.umn.edu Thu Feb  9 06:33:20 1995
Received: by umnstat.stat.umn.edu
	(1.38.193.4/16.2) id AA12627; Thu, 9 Feb 1995 06:33:20 -0600
Resent-Date: Thu, 09 Feb 1995 12:32:52 +0000
Resent-From: owner-SL-news@umnstat.stat.umn.edu
Received: from oxmail2.ox.ac.uk by umnstat.stat.umn.edu with SMTP
	(1.38.193.4/16.2) id AA12621; Thu, 9 Feb 1995 06:33:15 -0600
Return-Path: <halpin@vax.ox.ac.uk>
Received: from vax.ox.ac.uk by oxmail2.ox.ac.uk. with SMTP (PP) 
          id <11095-0@oxmail2.ox.ac.uk.>; Thu, 9 Feb 1995 12:33:06 +0000
Received: by vax.ox.ac.uk (MX V4.1 VAX) id 20; Thu, 09 Feb 1995 12:32:54 +0000
Sender: halpin@vax.ox.ac.uk
Date: Thu, 09 Feb 1995 12:32:52 +0000
From: Brendan Halpin <halpin@vax.ox.ac.uk>
To: STAT-LISP-NEWS@umnstat.stat.umn.edu
Cc: halpin@vax.ox.ac.uk
Message-Id: <0098BBA1.B8D84134.20@vax.ox.ac.uk>
Subject: Speed
Errors-To: owner-SL-news@umnstat.stat.umn.edu
Resent-To: SL-news-list@umnstat.stat.umn.edu
Resent-Reply-To: Brendan Halpin <halpin@vax.ox.ac.uk>

I'm running XLispStat 2.1 Release 3.43 on a 486/66 PC running
Windows 3.1.

I've been comparing XLispStat with GLIM 4 for usefulness and the
biggest practical consideration that emerges is that XLispStat
seems to be about 1/6th the speed when it comes to model
estimation. A logistic regression that takes 5 secs to fit in GLIM
takes 30 in XLispStat. 

Is this an anomaly, or typical? It's a particular problem because
XLispStat doesn't co-operate about multitasking: when it's working
everything else (even the on-screen clock) stops.

Brendan

Brendan Halpin                    |Email: HALPIN@VAX.OX.AC.UK
Dept of Applied Social Studies    |PGP:   Finger halpin@vax.ox.ac.uk
Oxford University, Wellington Sq.,|       or halpin@gramsci.apsoc.ox.ac.uk
Oxford OX1 2ER, UK                |Phone: +44 865 270347 (work) / 726758 (home)

From luke@nokomis.stat.umn.edu Thu Feb  9 08:57:02 1995
Received: by nokomis.stat.umn.edu
	(1.38.193.4/16.2) id AA09598; Thu, 9 Feb 1995 08:57:02 -0600
Resent-Date: Thu, 9 Feb 1995 08:57:00 -0600 (CST)
Received: by nokomis.stat.umn.edu
	(1.38.193.4/16.2) id AA09591; Thu, 9 Feb 1995 08:57:01 -0600
From: Luke Tierney <luke@nokomis.stat.umn.edu>
Return-Path: <luke@nokomis.stat.umn.edu>
Message-Id: <9502091457.AA09591@nokomis.stat.umn.edu>
Subject: Re: Speed
To: stat-lisp-news@nokomis.stat.umn.edu
Date: Thu, 9 Feb 1995 08:57:00 -0600 (CST)
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2080      
Errors-To: owner-SL-news@nokomis.stat.umn.edu
Resent-From: owner-SL-news@nokomis.stat.umn.edu
Resent-To: SL-news-list@nokomis.stat.umn.edu
Resent-Reply-To: Luke Tierney <luke@nokomis.stat.umn.edu>

Forwarded message:
> From owner-SL-news@umnstat.stat.umn.edu Thu Feb  9 07:45 CST 1995
> Resent-From: owner-SL-news@umnstat.stat.umn.edu
> Resent-Message-Id: <199502091345.IAA06322@temper.stat.cmu.edu>
> Resent-Date: Thu, 09 Feb 1995 12:32:52 +0000
> Sender: halpin@vax.ox.ac.uk
> Date: Thu, 09 Feb 1995 12:32:52 +0000
> From: Brendan Halpin <halpin@vax.ox.ac.uk>
> To: STAT-LISP-NEWS@umnstat.stat.umn.edu
> Cc: halpin@vax.ox.ac.uk
> Message-Id: <0098BBA1.B8D84134.20@vax.ox.ac.uk>
> Subject: Speed
> Errors-To: owner-SL-news@umnstat.stat.umn.edu
> Resent-To: SL-news-list@umnstat.stat.umn.edu
> Resent-Reply-To: Brendan Halpin <halpin@vax.ox.ac.uk>
> 
> I'm running XLispStat 2.1 Release 3.43 on a 486/66 PC running
> Windows 3.1.
> 
> I've been comparing XLispStat with GLIM 4 for usefulness and the
> biggest practical consideration that emerges is that XLispStat
> seems to be about 1/6th the speed when it comes to model
> estimation. A logistic regression that takes 5 secs to fit in GLIM
> takes 30 in XLispStat. 
> 
> Is this an anomaly, or typical? It's a particular problem because
> XLispStat doesn't co-operate about multitasking: when it's working
> everything else (even the on-screen clock) stops.
> 

The regression code, which is at the heart of the GLIM code, in 3.45
and earlier releases is not implemented optimally for speed,
especially on large problems. I have made some small changes that will
be in the next realease. With these changes the speed of fitting a
fairly large glim (90 variables, 900 cases) dropped by a factor of 8,
so that may bring performance on your problem closer to GLIM's --
please let me know if it doesn't. Smaller problems are likely to see
less dramatic improvements because the setup overhead has remained
more or less the same.

I hope this new release will go into local testing in a week or so and
be ready for general release in a couple of weeks.

I will look into the handling of yielding time to other applications
in Windows to see if some improvement is possible, but that may not
make it into the next release.

luke



