Programs

I often write programs for doing specific tasks. I've decided to list them all here. Some of these were written under duress in order to get a job done fast. However, I do appreciate hearing any comments or suggestions about them. Send mail to me at naras@stat.Stanford.EDU.


Frequently Asked Questions

I cannot seem to get your .tgz files since your web server is sending out the wrong MIME type!
No matter what the MIME type, you can always save a link. If you are using Netscape or Microsoft Internet Explorer, you can save the link by using the right mouse button on the link. A menu will give you a choice for saving the link. On the Mac, the same effect can be achieved by holding the mouse button down on the link for about 1 or 2 seconds.
I don't know how to handle your tarred and Gzipped files on the PC!
Go to www.winzip.com and download the WinZip program. Use it.

The Current List

I use Noweb for almost all my programming. Here is the current list.

CIS Manipulation
Transferring Splus Objects
Dynamic Loading in Splus
Dynamic Display of Changing Posterior in Bayesian Survival Analysis: The Software
Exploring Tierney's new shared library mechanism in Lisp-Stat
Creating DLL's for use with Lisp-Stat
The Mersenne Twister in Java

CIS Manipulation
This quick-and-dirty Perl script does something that Ingram Olkin asked of me. It counts the number of single author and multiple author papers listed in the CIS database with some minor modifications.
Last updated February 26, 1996. Noweb Source HTML version Postscript version Perl Source
Transferring Splus Objects
When one moves from a Sun to say an SGI, the S objects need to be converted into a suitable form for the new machine. This is trivial to do if one only has a single .Data directory, but a chore if such directories are scattered all over the place under subdirectories. I had to do this for our department last year when we moved from DEC to SGI and found this simple program indispensable.

Note When I initially announced this program, I made a stupid mistake: that of not checking my Emacs buffer in to revision control before moving the files to my web-space. So the initial program was incorrect. I have since corrected this oversight.

Last updated May 20, 1997. Noweb Source HTML version Postscript version S source
Dynamic Loading in Splus
I've been asked many questions on this topic and so I decided to write a little note both for my own use as well as others. This is a quick guide to the topic of dynamic loading.
Last updated May 20, 1997. Noweb Source HTML version Postscript version PDF version
Dynamic Display of Changing Posterior in Bayesian Survival Analysis: The Software
Software for dynamically varying hyperparameters in a survival analysis setting. This is joint work with Hani Doss.

If you want the software, literate program, data files, and everything, it is available here as a tarred and gzipped file. The file is big, about 25MB in size, but contains everything so that you can reproduce our work. In addition, you get a package of utilities for Lisp-Stat programming that you can use freely. If you want a glimpse of what the program can do, here's the README file.

The software uses routines written in C for speed. It works without modification on Windows 95/NT and Unix, except that in the latter case, a configure/make sequence tailors the stuff to the particular flavour of Unix. We don't have a version for the Mac because we don't know how to make a library for dynamic loading on the Mac.

Since the paper is to appear in a volume on Bayesian Statistics, we don't know what copyright violations we might incur if we include the paper here. But do email me if you are interested.

In the paper, we consider the problem of estimating an unknown distribution function F in the presence of censoring under the conditions that a parametric model is believed to hold approximately. We use a Bayesian approach, in which the prior on F is a mixture of Dirichlet distributions. A hyperparameter of the prior determines the extent to which this prior concentrates its mass around the parametric family. A Gibbs sampling algorithm to estimate the posterior distributions of the parameters of interest is reviewed. An importance sampling scheme enables us to use the output of the Gibbs sampler to very quickly recalculate the posterior when we change the hyperparameters of the prior. The calculations can be done sufficiently fast to enable the dynamic display of the changing posterior as the prior hyperparameters are varied.

Last updated May 27, 1998. Everything! HTML version Postscript version PDF version
Exploring Tierney's new shared library mechanism in Lisp-Stat
This is the story of my experiments with Lisp-Stat dynamic loading. You can obtain the whole tar bundle here.
Last updated Feb 19, 1998. Noweb Source HTML version Postscript version PDF version
Creating DLL's for use with Lisp-Stat
Describes how to create DLL's for use with Lisp-Stat. You can obtain the whole tar bundle here.
Last updated May 27, 1998. Noweb Source HTML version Postscript version PDF version
The Mersenne Twister in Java
A transcription of the Mersenne Twister Generator in Java. You can obtain the whole tar bundle here. The tar bundle contains all the documents as well as the Java programs.

On September 30, 1998, Brett Neumeier sent me a modified version of my code which is also included in the tar bundle.

On Aug 10, 1999, Sean Luke(seanl@cs.umd.edu) sent me newer versions of MersenneTwister.java and MersenneTwisterFast.java

Last updated September 30, 1998. Everything! HTML version Postscript version PDF version


Last modified: Tue Aug 10 17:31:33 PDT 1999