Wed Feb 26 18:32:47 1992  Russell G. Almond  (almond at thyme)

	* Documentation Cleanup  trying to get all code to conform to
	JAM's definitions package specification.  Also fixing up bugs and
	inconsistencies as I find them.  

	* Finally have cleaned up *save-messages* behavior in monte carlo
	and verified prob mode monte carlo.  

	* Implemented a "belief mode" lognormal model.  Its rather stupid,
	but its better than an error message.

Tue Oct 16 16:24:11 1990  Russell Almond  (almond at belgica)

	* Started fooling with the Allegro CL port.  Changed the global
	value of lisp:*readtable* with tpl:setq-default to try and get rid
	of franz-kludge for character bindings.  Added clay interface to
	JAM's clay graphics package.  Still pretty primative.  

Fri Aug 11 00:30:02 1989  Russell Almond  (almond at hustat)

	* Run the optimizing compilier on the code.

Wed Aug  9 16:16:13 1989  Russell Almond  (almond at hustat)

	* Changed the way that sinks work.  Sinks now tag an attribute
	rather than a belief function.  Sinks have three properties :sink
	which is the name of the attribute sunk (defaults to the attribute
	name, but can be used to put pretty names on ugly attributes)
	:sink-source which is a belief function.  :sink-value is the value
	of the sink associated with a node.

	* added new structure fifo-list to utils.  Not needed but pretty. 

Sun Aug  6 23:25:10 1989  Russell Almond  (almond at hustat)

	* Changed layered-list back to (test-list #'one-sc-tff) fast-ff
	does not handle different sized attributes as well.

Sat Aug  5 15:02:59 1989  Russell Almond  (almond at hustat)

	* Added the nuke stuff.  There are 6 additional files.  
		bymachine.lisp (utils) -- machine dependent stuff
		  (including RNG)
		lowdist.lisp (common) -- common distribution stuff
		distbel.lisp (belief) -- belief function dist stuff
		distprob.lisp (prob) -- potential dist stuff
		readnuke.lisp (subshell) -- read macros for failure
		  analsys
		monte.lisp (shell) -- monte-carlo shell stuff.
	The new package subshell resides above the inherited package but
	below the rules package on the heirarchy.  

	* Added :failure and :poisson keywords to defatt.  Also fixed
	logical-true and logical-false so that they understand :poisson
	variables (0 is false all others are true).

	* Added nominal function slot to distribution.

	* Made layered-list a hook.  Removed old-layered-list entierly and
	moved test-list to the graphs.lisp file.  old-layered-list is now
	available as (test-list #'core-list).  layered-list now calls by
	default fast-ff which is a fast version of the fewest fill-ins
	algorithm which does the leaf checking as it goes.  Moved one-ff
	to graphs.lisp

	* Added :op (defaults to #'+) keyword to projection operators, for
	Pearl style maximizing projection.  Added mix function which
	produces mixture distributions.

Fri Aug  4 12:47:24 1989  Russell Almond  (almond at hustat)

	* Added :nograph and :sink options to the basic read macros,
	should enable (a) creating new values without worrying about
	graphs and (b) adding nodes to sink list.

	* Replace many unnecssary calls to mapc with map nil should reduce
	amount of garbage consing done for flow constrol.

Thu Aug  3 11:51:26 1989  Russell Almond  (almond at hustat)

	* Added RNG stuff.  I have generated a C calling routines for RNG
	generation.  Written is C for speed.  First, setup routines must
	be called, then RNG's can be called.  

	* Added bymachine.lisp for Machine dependent code (including RNG
	callers) to C interface.

Fri Jul 21 14:27:02 1989  Russell Almond  (almond at hustat)

	* Things added for Version 1.1

	    1) Added function @@+, @@+2, and @@-> which are hooks for
	    redefining projection and combination in the shell
	    
	    2) Modified read macros to accept parameters, variables and
	    other forms which evaluate to a number in place of numbers

	    3) Added distribution structures and created distbel (later
	    distprob) file to deal with them.  Each distribution structure
	    has a draw-function slot.  When a draw function is applied to
	    a distribution it returns a list of values which give the
	    parameters for that distribution.  File lowdist handles
	    routines common to both.

	    4) Added common as nickname for sets package to reflect
	    current usage. 

Tue Jul 18 17:48:54 1989  Russell Almond  (almond at hustat)

	* Started on Version 1.1  Broke up the shell and started in on the
	monte carlo stuff.  Added a new file called monte which deals with
	that junk.  Added new inherited variables:
	*root* -- root of margin list
	*parent-list* *child-list* *sink-list* -- for MC models only.

Wed Jul 12 17:00:46 1989  Russell Almond  (almond at hustat)

	* Two changes:

	  1) Found bug in the way lucid lisp handles (import) on
	  compilation, so I wrapped it in an explicit (eval-when (eval
	  compile load) ).  Files: belief-init, sets, graphs

	  2) Divide by zeros were producing NaN results which in turn
	  would cause formatted printing of NaN's to hang and garbage
	  collect.  Rescale-array now explicitly traps for zeros.

Fri Mar  3 18:17:22 1989  Russell Almond  (almond at hustat)

	* Changed the way the inheritance works.  Inheritance now comes
	from a package called inheritance.  Functions which need to be
	inherited are defined as macros which dispatch to the function
	with the same name in the package *mode-package*.  Inherited
	variables are left in the rules-package, but their values are
	initialized to the value of corresponding variable in the belief
	or prob package depending on mode.  Each rules-package has a
	varaiable *mode* which determines its mode.  Variables are located
	in the *rules-package*.  The read macro #?foo creates an expression
	which when evaluated gives the symbol foo in the *rules-package*, the
	expression #! creates an expression which when evaluated gives the
	value of the symbol foo in the *rules-package*.  

Thu Mar  2 21:27:14 1989  Russell Almond  (almond at hustat)

	* Revision 1 of the Belief Package:  The following changes have
	been added to the system:

	     1) Created two different modes of operation, belief-mode
	     which works on belief functions, and prob mode, which works
	     on potentials.  

	     2) Redefined the package system interface.  The system
	     defines several different packages.

		     basic (structures) defines structures
			   ()
		     utils (utils) misc. utilities
			   ()
		     graphs (graphs, search) graph structures
			    (basic, shell::node-size)
		     sets (sets, lowread) ps-set and attribute functions
			  (basic, graphs)
		     bel[ief] (artithmatic,read,belq, moreread, readnuke)
			      belief function arithmatic and reading
			      (basic,sets,graphs,utils)
		     prob (potentials, probread) potential arithmatic and
			  reading
			  (basic,sets,graphs,utils)
		    *rules-package* [User rules package] (User Rule Base)
			  (basic, graphs {belief|prob})
		    shell (computations, cost) basic interface commands
			  (shell, basic, graphs *rules-package*[belief|prob])
		    user (lisp-init belief-init) User Workspace, contains
			 specialized commands for loading belief functions
			 (shell, basic, graphs *rules-package*[belief|prob]) 


		Every package has one of four modes, depending on its
		inheritance of symbols from other packages.  The belief
		and prob packages are designed to be interchangable
		components for doing the same job using belief function
		and potential notations.  If a package directly uses the
		belief package, it is in belief mode, if it used the prob
		package it is in prob mode.  The user's rule package,
		should be in one of those two modes.  The user's rule
		package, through the new-rules function is make to export
		the basic arithmetic operators from either the belief
		package or the prob package (depending on its mode).
		Packages that then use the user rules package (the current
		contents of *rules-package*) then inherit either the
		belief or prob arithmatic functions.  These packages are
		said to be in inherited mode (in particular the user and
		shell packages are in inherited mode).  Packages which do
		neither are said to be in none mode.

		3) An attempt was made wherever possible to convert to
		long-float arithmatic.  Numbers of size less than
		long-float-epsilon are considered zero by many arithmatic
		functions now.

	*belief-init (new-rules) added keyword arguments to new-rules so
	that arithmetic package would be inherited before export
	statement.  
>>>>>>>>>>>>Change documentation to reflect this fact.
