Changes to Grappa 13 December 2009 symbol.For() removed to suit recent releases of R Minor changes to acliq() sizes() which() New functions, to be documented later: checkjt1, checkjt2, collect, prune, enter.evid test - deterministic cpt representing a coding wedges, wjt - output to Alun Thomas's Viewgraph software Changes to Grappa 21 November 2005 There is a new table specification function, and improvements to two utility functions, and to the Fortran source code. 'which' is a new table specification function, used for multiple indexing or selection. It has various uses, depending on the arguments given. The general form is which(v, w,..., lw=1:ll); this makes a table for the (degenerate) conditional distribution of node v, given w and any other (...) node arguments. See the user guide for details and examples. The function 'sizes' has been extended: sizes(specification=FALSE,containing='') produces a list, with sizes, of either working tables (specification=FALSE) or specification tables (specification=TRUE). Optionally the list is restricted to tables whose names contain 'containing'. In the function 'print.tab' the output layout has been made cleaner and more compact. The Fortran code has been improved to reduce the impact of floating point errors in the probability propagation algorithm. Thus inferences should now be more accurate, although the difference is unlikely to be noticed in small problems. Change to Grappa 25 May 2004 The global variable 'tsp' has been changed to 'tsep' throughout the source code, to avoid a conflict with a locked binding in R version 1.9.0 The user guide is revised to reflect this. Changes to Grappa 9 December 2003 In the function fq and print.tab (the print method for displaying probability tables), calls to print.matrix have been replaced by prmatrix, following the change to print.matrix in R version 1.7.0. This restores the intended behaviour, that was seen in earlier versions of R. Minor edit to 'mendel' to assign the value set for child genes properly. Minor edit to 'equil' to suppress the "equilibrated" message when quiet is TRUE. New utility functions: prvs() (displays value sets for all variables), set() (returns a 0/1 vector, to assist in setting up deterministic founding nodes), se() and si() (two versions providing an 'if' facility for conditional probability tables on the lines of the existing 'and' and 'or'). These are fully documented in the updated user guide. Changes to Grappa 23 June 2003 Minor edit to function 'sim', an auxilary routine for 'simulate', to remove a bug that disabled the simulation facility. Changes to Grappa 12 January 2003 Performance has been inproved further by implementing a better method of triangulation - elimination using the minimum clique weight heuristic. This is the default, but is only available currently in the compiled Fortran code, so cannot be used if you are using a platform where you are forced to use the R version. The examples have been revised slightly so that they can now be run conveniently by source('Examples.R'), as well as by copy-paste. The user guide is updated accordingly. Changes to Grappa 17 December 2002 Fortran versions of mcs() and trav() are now available. These are automatically loaded and used if a dynamically linked library of the correct name is found in the current working directory; if not, the previous R code is used. Under most circumstances, the compilation and equilibration phases of the computation are initiated automatically. Automatic initiation is suppressed if the option auto is set to FALSE by typing options(auto=FALSE). Functions such as joint, nm, pnmarg, prop.evid and simulate which require the potential representation to be complete and equilibrated, initiate compilation and equilibration as required. The argument putsw to the function tab() is now in 5th place, not 4th. The change of the default value for the quiet argument in the compilation and propagation functions from FALSE to !getOption('verbose'). This only affects the form of the reports from these functions. You should no longer specify the numbers of values of the input variables to the function by(). There are numerous other improvements, but existing Grappa code should run with the new version, subject only to the comments above. Read the user guide for more information.