[Rsiena-commits] r288 - in pkg: RSiena RSiena/R RSiena/inst/doc RSiena/man RSiena/src RSiena/src/model/effects RSiena/src/model/effects/generic RSiena/tests RSienaTest RSienaTest/R RSienaTest/data RSienaTest/doc RSienaTest/inst/doc RSienaTest/man RSienaTest/src RSienaTest/src/model/effects RSienaTest/src/model/effects/generic RSienaTest/tests

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sat Jul 18 16:54:38 CEST 2015


Author: tomsnijders
Date: 2015-07-18 16:54:37 +0200 (Sat, 18 Jul 2015)
New Revision: 288

Added:
   pkg/RSiena/src/model/effects/DoubleDegreeBehaviorEffect.cpp
   pkg/RSiena/src/model/effects/DoubleDegreeBehaviorEffect.h
   pkg/RSiena/src/model/effects/DoubleRecDegreeBehaviorEffect.cpp
   pkg/RSiena/src/model/effects/DoubleRecDegreeBehaviorEffect.h
   pkg/RSiena/src/model/effects/HomCovariateActivityEffect.cpp
   pkg/RSiena/src/model/effects/HomCovariateActivityEffect.h
   pkg/RSiena/src/model/effects/MixedNetworkEffect.cpp
   pkg/RSiena/src/model/effects/MixedNetworkEffect.h
   pkg/RSiena/src/model/effects/TwoNetworkDependentBehaviorEffect.cpp
   pkg/RSiena/src/model/effects/TwoNetworkDependentBehaviorEffect.h
   pkg/RSienaTest/src/model/effects/DoubleDegreeBehaviorEffect.cpp
   pkg/RSienaTest/src/model/effects/DoubleDegreeBehaviorEffect.h
   pkg/RSienaTest/src/model/effects/DoubleRecDegreeBehaviorEffect.cpp
   pkg/RSienaTest/src/model/effects/DoubleRecDegreeBehaviorEffect.h
   pkg/RSienaTest/src/model/effects/HomCovariateActivityEffect.cpp
   pkg/RSienaTest/src/model/effects/HomCovariateActivityEffect.h
   pkg/RSienaTest/src/model/effects/MixedNetworkEffect.cpp
   pkg/RSienaTest/src/model/effects/MixedNetworkEffect.h
   pkg/RSienaTest/src/model/effects/TwoNetworkDependentBehaviorEffect.cpp
   pkg/RSienaTest/src/model/effects/TwoNetworkDependentBehaviorEffect.h
Modified:
   pkg/RSiena/ChangeLog
   pkg/RSiena/DESCRIPTION
   pkg/RSiena/R/effects.r
   pkg/RSiena/R/effectsDocumentation.r
   pkg/RSiena/R/phase3.r
   pkg/RSiena/R/sienaGOF.r
   pkg/RSiena/R/sienaRI.r
   pkg/RSiena/R/sienaeffects.r
   pkg/RSiena/R/sienatable.r
   pkg/RSiena/inst/doc/RSiena.bib
   pkg/RSiena/inst/doc/RSiena_Manual.pdf
   pkg/RSiena/inst/doc/RSiena_Manual.tex
   pkg/RSiena/man/RSiena-package.Rd
   pkg/RSiena/man/sienaRI.Rd
   pkg/RSiena/src/model/effects/AllEffects.h
   pkg/RSiena/src/model/effects/EffectFactory.cpp
   pkg/RSiena/src/model/effects/SameCovariateTransitiveTripletsEffect.cpp
   pkg/RSiena/src/model/effects/SameCovariateTransitiveTripletsEffect.h
   pkg/RSiena/src/model/effects/generic/InStarsTimesDegreesFunction.h
   pkg/RSiena/src/siena07internals.cpp
   pkg/RSiena/tests/parallel.Rout.save
   pkg/RSienaTest/ChangeLog
   pkg/RSienaTest/DESCRIPTION
   pkg/RSienaTest/R/effects.r
   pkg/RSienaTest/R/effectsDocumentation.r
   pkg/RSienaTest/R/phase3.r
   pkg/RSienaTest/R/sienaBayes.r
   pkg/RSienaTest/R/sienaRI.r
   pkg/RSienaTest/R/sienaeffects.r
   pkg/RSienaTest/R/sienatable.r
   pkg/RSienaTest/data/allEffects.csv
   pkg/RSienaTest/doc/HowToCommit.pdf
   pkg/RSienaTest/doc/HowToCommit.tex
   pkg/RSienaTest/doc/Siena_algorithms.tex
   pkg/RSienaTest/inst/doc/RSiena.bib
   pkg/RSienaTest/inst/doc/RSiena_Manual.pdf
   pkg/RSienaTest/inst/doc/RSiena_Manual.tex
   pkg/RSienaTest/man/RSiena-package.Rd
   pkg/RSienaTest/man/sienaBayes.Rd
   pkg/RSienaTest/man/sienaRI.Rd
   pkg/RSienaTest/src/model/effects/AllEffects.h
   pkg/RSienaTest/src/model/effects/EffectFactory.cpp
   pkg/RSienaTest/src/model/effects/SameCovariateTransitiveTripletsEffect.cpp
   pkg/RSienaTest/src/model/effects/SameCovariateTransitiveTripletsEffect.h
   pkg/RSienaTest/src/model/effects/generic/InStarsTimesDegreesFunction.h
   pkg/RSienaTest/src/siena07internals.cpp
   pkg/RSienaTest/tests/parallel.Rout.save
Log:
New version 1.1-288 for RSiena and RSienaTest

Modified: pkg/RSiena/ChangeLog
===================================================================
--- pkg/RSiena/ChangeLog	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/ChangeLog	2015-07-18 14:54:37 UTC (rev 288)
@@ -1,3 +1,27 @@
+2015-07-18 R-Forge Revision 288
+Changes in RSiena and RSienaTest:
+   * New effects homXOutAct, FFDeg, BBDeg, RFDeg, diffXTransTrip.
+   * sameXInPop and diffXInPop also added for two-mode networks;
+     but they are not dyadic!
+   * In names of behavior effects and statistics dropped the
+     (redundant) parts "behavior" and "beh.". 
+   * plot.sienaRI: new parameter "actors"; 
+     proportions with piechart improved; function of parameter radius changed.
+   * fra2 constructed only if findiff (phase3.r).
+   * siena.table does no more produce the double minus sign in html output.
+Changes in RSiena:
+   * Correction of error for two-mode networks in sienaGOF.
+Changes in RSienaTest:
+   * sienaBayes: new parameter nSampRates; 
+     correction in use of prevBayes (with extra createStores()); 
+	 more efficient calculation of multivariate normal density.
+   * Small changes in HowToCommit.tex.
+
+2015-06-02 R-Forge Revision 286
+(Version number was kept the same...)
+Changes in RSienaTest:
+   * Correction of error for two-mode networks in sienaGOF.
+	
 2015-05-21 R-Forge Revision 286
 Changes in RSiena and RSienaTest:
    * test11 dropped from \tests\parallel.R.
@@ -30,7 +54,7 @@
      but only for the simulations.
    * For non-centered covariates, averageAlter and averageInAlter
      values for zero degrees were replaced by the observed covariate mean.
-   * New effects: outOutActIntn, toDist2, from.w.ind
+   * New effects: outOutActIntn, sharedTo, from.w.ind
    * New effectGroup tripleNetworkObjective (allEffects.csv, effects.r)
      (see the manual or effects.r for its characteristics).
    * In the target statistic for the 'higher' effect, contributions for
@@ -49,6 +73,8 @@
    * z$positivized changed from matrix to vector (not important enough
      for so much memory use).
    * test7 renamed test 5, test6 and new test7 added in \tests\parallel.R
+Changes in RSienaTest:
+   * Small changes in HowToCommit.tex.
 
 2015-04-02 R-Forge Revision 284
 Changes in RSiena and RSienaTest:

Modified: pkg/RSiena/DESCRIPTION
===================================================================
--- pkg/RSiena/DESCRIPTION	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/DESCRIPTION	2015-07-18 14:54:37 UTC (rev 288)
@@ -1,8 +1,8 @@
 Package: RSiena
 Type: Package
 Title: Siena - Simulation Investigation for Empirical Network Analysis
-Version: 1.1-286
-Date: 2015-05-21
+Version: 1.1-288
+Date: 2015-07-18
 Author: Ruth Ripley, Krists Boitmanis, Tom A.B. Snijders
 Depends: R (>= 2.15.0), utils
 Imports: Matrix, tcltk, lattice, parallel, MASS

Modified: pkg/RSiena/R/effects.r
===================================================================
--- pkg/RSiena/R/effects.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/effects.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -39,7 +39,7 @@
 	effects <- RSiena::allEffects[RSiena::allEffects$effectGroup == effectGroup, ]
     if (nrow(effects) == 0)
     {
-        stop("empty effect group")
+		stop("empty effect group", effectGroup)
     }
     if (any(is.na(effects$effectName)))
     {
@@ -474,6 +474,29 @@
 									  varname, depvarname, name=varname,
 									  groupName=groupName, group=group,
 									  netType=netType)
+					tmpObjEffects2 <- NULL
+					for (k in seq(along=xx$depvars))
+					{
+						if ((j != k) && (types[k] == "oneMode") &&
+							(attr(xx$depvars[[k]], "symmetric")) &&
+							(attr(xx$depvars[[k]], "nodeSet") == nodeSet))
+						{
+							othervarname <- names(xx$depvars)[k]
+							tmpObjEffects3 <-
+								createEffects("behaviorSymSymObjective",
+									  varname, depvarname, othervarname,
+									  name=varname,
+									  groupName=groupName, group=group,
+									  netType=netType)
+							tmpObjEffects3$functionName <-
+								paste(tmpObjEffects3$functionName,
+								" (", depvarname, ",", othervarname, ")", sep="")
+							tmpObjEffects3$effectName <-
+								paste(tmpObjEffects3$effectName,
+								" (", depvarname, ",", othervarname, ")", sep = "")
+							tmpObjEffects2 <- rbind(tmpObjEffects2, tmpObjEffects3)
+						}
+					}
 					tmpRateEffects <-
 						createEffects("behaviorSymmetricRate",
 									  varname, depvarname, name=varname,
@@ -487,6 +510,48 @@
 									  varname, depvarname, name=varname,
 									  groupName=groupName, group=group,
 									  netType=netType)
+					tmpObjEffects2 <- NULL
+					for (k in seq(along=xx$depvars))
+					{
+						if ((k != j) && (types[k] == "oneMode") &&
+							(!attr(xx$depvars[[k]], "symmetric")) &&
+							(attr(xx$depvars[[k]], "nodeSet") == nodeSet))
+						{
+							othervarname <- names(xx$depvars)[k]
+							tmpObjEffects3 <-
+								createEffects("behaviorOneOneModeObjective",
+									  varname, depvarname, othervarname,
+									  name=varname,
+									  groupName=groupName, group=group,
+									  netType=netType)
+							tmpObjEffects3$functionName <-
+								paste(tmpObjEffects3$functionName,
+								" (", depvarname, ",", othervarname, ")", sep="")
+							tmpObjEffects3$effectName <-
+								paste(tmpObjEffects3$effectName,
+								" (", depvarname, ",", othervarname, ")", sep = "")
+							tmpObjEffects2 <- rbind(tmpObjEffects2, tmpObjEffects3)
+						}
+						if ((types[k] == "oneMode") &&
+							(attr(xx$depvars[[k]], "symmetric")) &&
+							(attr(xx$depvars[[k]], "nodeSet") == nodeSet))
+						{
+							othervarname <- names(xx$depvars)[k]
+							tmpObjEffects3 <-
+								createEffects("behaviorOneModeSymObjective",
+									  varname, depvarname, othervarname,
+									  name=varname,
+									  groupName=groupName, group=group,
+									  netType=netType)
+							tmpObjEffects3$functionName <-
+								paste(tmpObjEffects3$functionName,
+								" (", depvarname, ",", othervarname, ")", sep="")
+							tmpObjEffects3$effectName <-
+								paste(tmpObjEffects3$effectName,
+								" (", depvarname, ",", othervarname, ")", sep = "")
+							tmpObjEffects2 <- rbind(tmpObjEffects2, tmpObjEffects3)
+						}
+					}
 					tmpRateEffects <-
 						createEffects("behaviorOneModeRate",
 									  varname, depvarname, name=varname,
@@ -509,7 +574,7 @@
 							  " (", depvarname, ")", sep = "")
 				}
 
-				objEffects <- rbind(objEffects, tmpObjEffects)
+				objEffects <- rbind(objEffects, tmpObjEffects, tmpObjEffects2)
 				rateEffects <- rbind(rateEffects, tmpRateEffects)
 			}
 			if (types[j] == 'bipartite' &&
@@ -521,6 +586,30 @@
 								  varname, depvarname, name=varname,
 								  groupName=groupName, group=group,
 								  netType=netType)
+				tmpObjEffects2 <- NULL
+				for (k in seq(along=xx$depvars))
+				{
+					if ((k != j) && (types[k] == "bipartite") &&
+						(attr(xx$depvars[[k]], "nodeSet")[1] == nodeSet) &&
+						(attr(xx$depvars[[j]], "nodeSet")[2] ==
+							attr(xx$depvars[[k]], "nodeSet")[2]))
+					{
+						othervarname <- names(xx$depvars)[k]
+						tmpObjEffects3 <-
+							createEffects("behaviorBipBipObjective",
+								  varname, depvarname, othervarname,
+								  name=varname,
+								  groupName=groupName, group=group,
+								  netType=netType)
+						tmpObjEffects3$functionName <-
+							paste(tmpObjEffects3$functionName,
+							" (", depvarname, ",", othervarname, ")", sep="")
+						tmpObjEffects3$effectName <-
+							paste(tmpObjEffects3$effectName,
+							" (", depvarname, ",", othervarname, ")", sep = "")
+						tmpObjEffects2 <- rbind(tmpObjEffects2, tmpObjEffects3)
+					}
+				}
 				tmpRateEffects <-
 					createEffects("behaviorBipartiteRate",
 								  varname, depvarname, name=varname,
@@ -542,7 +631,7 @@
 							  " (", depvarname, ")", sep = "")
 				}
 
-				objEffects <- rbind(objEffects, tmpObjEffects)
+				objEffects <- rbind(objEffects, tmpObjEffects, tmpObjEffects2)
 				rateEffects <- rbind(rateEffects, tmpRateEffects)
 			}
 		}
@@ -878,9 +967,11 @@
                               name=varname,
                               groupName=groupName, group=group,
                               netType=netType)
+			# restrict to covariates on first node set
             covObjEffects <-
                 covObjEffects[covObjEffects$shortName %in%
-							  c("egoX", "altInDist2", "totInDist2", "simEgoInDist2"), ]
+							  c("egoX", "altInDist2", "totInDist2",
+							    "simEgoInDist2", "sameXInPop", "diffXInPop"), ]
             covRateEffects <- createEffects("covarBipartiteRate", covarname,
                                             name=varname,
                                             groupName=groupName, group=group,
@@ -892,9 +983,10 @@
                                            name=varname,
                                            groupName=groupName, group=group,
                                            netType=netType)
+			# restrict to covariates on second node set
             covObjEffects <-
                 covObjEffects[covObjEffects$shortName %in%
-                              c("altX", "altSqX"), ]
+							  c("altX", "altSqX", "homXOutAct"), ]
             if (!moreThan2)
             {
                 covObjEffects <-

Modified: pkg/RSiena/R/effectsDocumentation.r
===================================================================
--- pkg/RSiena/R/effectsDocumentation.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/effectsDocumentation.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -90,6 +90,10 @@
                  "behaviorOneModeObjective",
                  "behaviorSymmetricObjective",
                  "behaviorBipartiteObjective",
+				 "behaviorOneOneModeObjective",
+				 "behaviorSymSymObjective",
+				 "behaviorOneModeSymObjective",
+				 "behaviorBipBipObjective",
                  "covarBehaviorObjective",
 				 "covarBehaviorNetObjective",
 				 "covarABehaviorBipartiteObjective",
@@ -122,7 +126,7 @@
 		order2 <- match(myorder, x[, 2])
 		order3 <- as.vector(mytab[myorder])
 		order4 <- unlist(apply(cbind(order2, order3), 1,
-                           function(x)x[1]:(x[1] + x[2] -1)))
+						   function(x)x[1]:(max(x[1] + x[2] -1,1))))
 		y <- x[order4, -2]
 	}
 	else

Modified: pkg/RSiena/R/phase3.r
===================================================================
--- pkg/RSiena/R/phase3.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/phase3.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -611,7 +611,10 @@
 		{
 			fra <- colSums(zz$fra)
 			fra <- fra - z$targets
+			if (z$FinDiff.method)
+			{
 			fra2 <- zz$fra
+			}
 			z$sf[z$nit, ] <- fra
 			z$sf2[z$nit, , ] <- zz$fra
 			z$sims[[z$nit]] <- zz$sims
@@ -628,8 +631,11 @@
 				z$sf2[z$nit + (i - 1), , ] <- zz[[i]]$fra
 				z$sims[[z$nit + (i - 1)]] <- zz[[i]]$sims
 			}
+			if (z$FinDiff.method)
+			{
 			fra2 <- t(sapply(zz, function(x)x$fra))
 			dim(fra2) <- c(int, nrow(zz[[1]]$fra), z$pp)
+			}
 			fra <- t(sapply(zz, function(x) colSums(x$fra)))
 		}
 		if (x$maxlike)

Modified: pkg/RSiena/R/sienaGOF.r
===================================================================
--- pkg/RSiena/R/sienaGOF.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/sienaGOF.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -883,6 +883,7 @@
 sparseMatrixExtraction <-
 	function(i, obsData, sims, period, groupName, varName){
 	# require(Matrix)
+	isBipartite <- "bipartite" == attr(obsData[[groupName]]$depvars[[varName]], "type")
 	dimsOfDepVar<- attr(obsData[[groupName]]$depvars[[varName]], "netdims")
 	if (attr(obsData[[groupName]]$depvars[[varName]], "sparse"))
 	{
@@ -919,7 +920,7 @@
 			returnValue <- changeToStructural(returnValue,
 				Matrix(obsData[[groupName]]$depvars[[varName]][,,period]))
 		}
-		diag(returnValue) <- 0 # not guaranteed by data input
+		if(!isBipartite) diag(returnValue) <- 0 # not guaranteed by data input
 	}
 	else
 	{

Modified: pkg/RSiena/R/sienaRI.r
===================================================================
--- pkg/RSiena/R/sienaRI.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/sienaRI.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -6,7 +6,7 @@
 # * File: sienaRI.r
 # *
 # * Description: Used to determine, print, and plots relative importances of effects
-# * in for potential desicions of actors at observation moments.
+# * for potential decisions of actors at observation moments.
 # *****************************************************************************/
 
 ##@sienaRI
@@ -24,15 +24,19 @@
 		}
 		if(!is.null(algorithm)||!is.null(theta)||!is.null(effects))
 		{
-			warning(paste("some information are multiply defined \n results will be based on 'theta', 'algorithm', and 'effects' stored in 'ans' (as 'ans$theta', 'ans$x', 'ans$effects')", sep=""))
+			warning(paste("some information are multiply defined \n",
+		"results will be based on 'theta', 'algorithm', and 'effects'\n",
+		"stored in 'ans' (as 'ans$theta', 'ans$x', 'ans$effects')\n", sep=""))
 		}
 		if (sum(ans$effects$include==TRUE &
 			(ans$effects$type =="endow"|ans$effects$type =="creation")) > 0)
 			{
 			stop("sienaRI does not yet work for models that contain endowment or creation effects")
 			}
-		contributions <- getChangeContributions(algorithm = ans$x, data = data, effects = ans$effects)
-		RI <- expectedRelativeImportance(conts = contributions, effects = ans$effects, theta =ans$theta)
+		contributions <- getChangeContributions(algorithm = ans$x, data = data,
+										effects = ans$effects)
+		RI <- expectedRelativeImportance(conts = contributions,
+								effects = ans$effects, theta =ans$theta)
 	}else{
 		if (!inherits(algorithm, "sienaAlgorithm"))
 		{
@@ -43,7 +47,8 @@
 		{
 			stop(paste("effects is not a legitimate Siena effects object", sep=""))
 		}
-		if(sum(effects$include==TRUE & (effects$type =="endow"|effects$type =="creation")) > 0)
+		if(sum(effects$include==TRUE &
+					(effects$type =="endow"|effects$type =="creation")) > 0)
 		{
 			stop("sienaRI does not yet work for models containinf endowment or creation effects")
 		}
@@ -58,18 +63,23 @@
 			{
 				stop("theta is not a legitimate parameter vector \n number of parameters has to match number of effects")
 			}
-			warning("length of theta does not match the number of objective function effects\n theta is treated as if containing rate parameters")
+	warning(paste("length of theta does not match the number of objective function effects\n",
+				"theta is treated as if containing rate parameters"))
 			paras <- theta
 			## all necessary information available
 			## call getChangeContributions
-			contributions <- getChangeContributions(algorithm = algo, data = data, effects = effs)
-			RI <- expectedRelativeImportance(conts = contributions, effects = effs, theta = paras)
+			contributions <- getChangeContributions(algorithm = algo,
+									data = data, effects = effs)
+			RI <- expectedRelativeImportance(conts = contributions,
+									effects = effs, theta = paras)
 		}else{
 			paras <- theta
 			## all necessary information available
 			## call getChangeContributions
-			contributions <- getChangeContributions(algorithm = algo, data = data, effects = effs)
-			RI <- expectedRelativeImportance(conts = contributions, effects = effs, theta = paras)
+			contributions <- getChangeContributions(algorithm = algo,
+									data = data, effects = effs)
+			RI <- expectedRelativeImportance(conts = contributions,
+									effects = effs, theta = paras)
 		}
 	}
 	RI
@@ -137,7 +147,8 @@
 	ans
 }
 
-expectedRelativeImportance <- function(conts, effects, theta, effectNames = NULL)
+expectedRelativeImportance <- function(conts, effects, theta,
+												effectNames = NULL)
 {
 	waves <- length(conts[[1]])
 	effects <- effects[effects$include == TRUE,]
@@ -194,20 +205,26 @@
 				currentDepEffectContributions <- conts[[1]][[w]][currentDepEffs]
 				currentDepEffectContributions <-
 					sapply(lapply(currentDepEffectContributions, unlist),
-						matrix, nrow=actors, ncol=choices, byrow=TRUE, simplify="array")
+						matrix, nrow=actors, ncol=choices, byrow=TRUE,
+														simplify="array")
 
 				distributions <-
 					apply(apply(currentDepEffectContributions, c(2,1), as.matrix),
 						3, calculateDistributions, theta[which(currentDepEffs)])
 				distributions <-
 					lapply(apply(distributions, 2, list),
-						function(x){matrix(x[[1]], nrow=effNumber+1, ncol=choices, byrow=F)})
+						function(x){matrix(x[[1]], nrow=effNumber+1,
+											ncol=choices, byrow=F)})
 
-				entropy_vector <- unlist(lapply(distributions,function(x){entropy(x[1,])}))
-				## If one wishes another measure than the L^1-difference between distributions,
-				## here is the right place to call some new function instead of "L1D".
-				RIs_list <- lapply(distributions,function(x){L1D(x[1,], x[2:dim(x)[1],])})
-				RIs_matrix <-(matrix(unlist(RIs_list),nrow=effNumber, ncol=actors, byrow=F))
+				entropy_vector <- unlist(lapply(distributions,
+										function(x){entropy(x[1,])}))
+				## If one wishes another measure than the
+				## L^1-difference between distributions, here is
+				## the right place to call some new function instead of "L1D".
+				RIs_list <- lapply(distributions,function(x){L1D(x[1,],
+														x[2:dim(x)[1],])})
+				RIs_matrix <-(matrix(unlist(RIs_list),nrow=effNumber,
+														ncol=actors, byrow=F))
 
 #				RIs <- RIs_matrix
 				entropies <- entropy_vector
@@ -250,7 +267,9 @@
 	}
 	if(depNumber>1)
 	{
-		warning("more than one dependent variable\n return value is therefore not of class 'sienaRI'\n but a list of objects of class 'sienaRI'")
+		warning(paste("more than one dependent variable\n",
+				"return value is therefore not of class 'sienaRI'\n",
+				"but a list of objects of class 'sienaRI'\n"))
 	}
 	RI
 }
@@ -262,13 +281,15 @@
 	effectContributions[effectContributions=="NaN"]<-0
 	distributions <-  array(dim = c(effects+1,choices))
 	distributions[1,] <-
-		exp(colSums(theta*effectContributions))/sum(exp(colSums(theta*effectContributions)))
+		exp(colSums(theta*effectContributions))/
+							sum(exp(colSums(theta*effectContributions)))
 	for(eff in 1:effects)
 	{
 		t <- theta
 		t[eff] <- 0
 		distributions[eff+1,] <-
-			exp(colSums(t*effectContributions))/sum(exp(colSums(t*effectContributions)))
+			exp(colSums(t*effectContributions))/
+								sum(exp(colSums(t*effectContributions)))
 	}
 	distributions
 }
@@ -284,16 +305,19 @@
 {
 	if(is.vector(distributions))
 	{
-		kld <- (referenz %*% (log(referenz)-log(distributions)))/log(length(referenz))
+		kld <- (referenz %*%
+					(log(referenz)-log(distributions)))/log(length(referenz))
 	}
 	else
 	{
-		kld <- colSums(referenz *(log(referenz)-t(log(distributions))))/log(length(referenz))
+		kld <- colSums(referenz *
+					(log(referenz)-t(log(distributions))))/log(length(referenz))
 	}
 	kld
 }
 
-## calculates the L^1-differenz between distribution "reference" (which is a vector of length n)
+## calculates the L^1-differenz between distribution "reference"
+## (which is a vector of length n)
 ## and each row of distributions (which is a matrix with n columns)
 L1D <- function(referenz = NULL, distributions = NULL)
 {
@@ -326,7 +350,8 @@
 	effs <- length(x$effectNames)
 	colNames = paste("wave ", 1:waves, sep="")
 	line1 <- format("", width =63)
-	line2 <- paste(format(1:effs,width=3), '. ', format(x$effectNames, width = 56),sep="")
+	line2 <- paste(format(1:effs,width=3), '. ',
+						format(x$effectNames, width = 56),sep="")
 	line3 <- line2
 	line4 <- format("  Entropy", width = 61)
 	for(w in 1:length(colNames))
@@ -372,8 +397,8 @@
 
 
 ##@plot.sienaRI Methods
-plot.sienaRI <- function(x, col = NULL, addPieChart = FALSE,
-	radius = NULL, width = NULL, height = NULL, legend = TRUE,
+plot.sienaRI <- function(x, actors = NULL, col = NULL, addPieChart = FALSE,
+	radius = 1, width = NULL, height = NULL, legend = TRUE,
 	legendColumns = NULL, legendHeight = NULL, cex.legend = NULL,
 	cex.names = NULL, ...)
 {
@@ -382,7 +407,21 @@
 		stop("not a legitimate Siena relative importance of effects object")
 	}
 	waves <- length(x$expectedRI)
-	actors <- dim(x$RIActors[[1]])[2]
+	if (is.null(actors))
+	{
+		nactors <- dim(x$RIActors[[1]])[2]
+		actors <- (1:nactors)
+	}
+	else
+	{
+		if ((!inherits(actors,"integer")) ||
+			(min(actors) < 1) || (max(actors) > dim(x$RIActors[[1]])[2]))
+		{
+			stop(paste("parameter <actors> must be a set of integers from 1 to",
+					dim(x$RIActors[[1]])[2]))
+		}
+		nactors <- length(actors)
+	}
 	if(legend)
 	{
 		if(!is.null(legendColumns))
@@ -397,7 +436,7 @@
 		}
 		if(is.null(legendColumns))
 		{
-			legendColumns <-floor((actors+2)/11)
+			legendColumns <-floor((nactors+2)/11)
 		}
 		if(!is.null(legendHeight))
 		{
@@ -411,7 +450,8 @@
 		}
 		if(is.null(legendHeight))
 		{
-			legendHeight <- max(0.8,ceiling(length(x$effectNames)/legendColumns)*0.2)
+			legendHeight <-
+				max(0.8,ceiling(length(x$effectNames)/legendColumns)*0.2)
 		}
 	}
 	if(!is.null(height))
@@ -426,12 +466,7 @@
 	}
 	if(is.null(height))
 	{
-		if(legend)
-		{
-			height <- (2*waves+2*legendHeight)*1
-		}else{
-			height <- (2*waves)*1
-		}
+		height <- 1
 	}
 
 	if(!is.null(width))
@@ -448,9 +483,9 @@
 	{
 		if(addPieChart)
 		{
-			width = (actors/3+4)
+			width = (nactors/3+4)
 		}else{
-			width = (actors/3+3)
+			width = (nactors/3+3)
 		}
 	}
 
@@ -496,7 +531,7 @@
 	}
 	if(is.null(radius))
 	{
-		rad <- 4
+		rad <- 1
 	}
 
 	if(!is.null(col))
@@ -536,45 +571,52 @@
 	{
 		if(legend)
 		{
-			layoutMatrix <- matrix(c(1:(2*waves+1),(2*waves+1)), byrow= TRUE, ncol=2, nrow=(waves+1))
-			layout(layoutMatrix,widths=c((actors/3),2),heights=c(rep(1,waves),legendHeight))
+			layoutMatrix <- matrix(c(1:(2*waves+1),(2*waves+1)), byrow= TRUE,
+										ncol=2, nrow=(waves+1))
+			layout(layoutMatrix,widths= c((nactors/6)+10,3.5+2.5*(rad^2)),
+									heights=c(rep(height,waves),legendHeight))
 		}else{
-			layoutMatrix <- matrix(c(1:(2*waves)), byrow= TRUE, ncol=2, nrow=waves)
-			layout(layoutMatrix,widths=c((actors/3),2),heights=rep(1,waves))
+			layoutMatrix <- matrix(c(1:(2*waves)), byrow= TRUE,
+												ncol=2, nrow=waves)
+			layout(layoutMatrix,widths = c((nactors/6)+10,7+2.5*(rad^2)),
+											heights=rep(height,waves))
 		}
-#		par( oma = c( 0, 0, 2, 0 ),
-#		mar = par()$mar+c(4.1, 4.1, 1.1, 0.1), xpd=T , cex = 0.75, no.readonly = TRUE )
 	}else{
 		if(legend)
 		{
-			layoutMatrix <- matrix(c(1:(waves+1)), byrow= TRUE, ncol=1, nrow=(waves+1))
-			layout(layoutMatrix,widths=c((actors/3)),heights=c(rep(1,waves),legendHeight))
+			layoutMatrix <- matrix(c(1:(waves+1)), byrow= TRUE,
+										ncol=1, nrow=(waves+1))
+				layout(layoutMatrix)
 		}else{
 			layoutMatrix <- matrix(c(1:waves), byrow= TRUE, ncol=1, nrow=waves)
-			layout(layoutMatrix,widths=c((actors/3)),heights=rep(1,waves))
+			layout(layoutMatrix, heights=2*rep(height,waves))
+	# no widths, because these are only relative numbers, 
+	# so requiring constant widths is redundant
 		}
-#		par( oma = c( 0, 0, 2, 0 ),mar = par()$mar+c(4.1,4.1,1.1,3), xpd=T ,
-#				cex = 0.75, no.readonly = TRUE )
+		par( oma = c( 1, 1, 2, 1 ), xpd=T , cex = 0.75, no.readonly = TRUE )
 	}
+par(mar = c(3,3,1,1))
 	for(w in 1:waves)
 	{
-		barplot(cbind(x$RIActors[[w]], x$expectedRI[[w]]),
-			space=c(rep(0.1,actors),1.5),width=c(rep(1,actors),1),
+		barplot(cbind(x$RIActors[[w]][,actors], x$expectedRI[[w]]),
+			space=c(rep(0.1,nactors),1.5),width=c(rep(1,nactors),1),
 			beside =FALSE, yaxt = "n", xlab="Actor", cex.names = cex.names,
 			ylab=paste("wave ", w, sep=""),border=bordergrey,
-			col = cl, names.arg=c(1:actors,"exp. rel. imp."))
+			col = cl, names.arg=c(actors,"exp. rel. imp."))
 		axis(2, at=c(0,0.25,0.5,0.75,1),labels=c("0","","0.5","","1"))
 		axis(4, at=c(0,0.25,0.5,0.75,1),labels=c("0","","0.5","","1"))
 		if(addPieChart)
 		{
-			pie(x$expectedRI[[w]], col = cl, labels=NA, border = bordergrey, radius = rad)
+			pie(x$expectedRI[[w]], col = cl, labels=NA, border = bordergrey,
+												radius = rad)
 			mtext("exp. rel. imp.",side = 1, line = 1, cex=cex.names*0.75)
 		}
 	}
 	if(legend)
 	{
 		plot(c(0,1), c(0,1), col=rgb(0,0,0,0),axes=FALSE,  ylab = "", xlab = "")
-		legend(0, 1, x$effectNames, fill=cl, ncol = legendColumns, bty = "n", cex=cex.legend)
+		legend(0, 1, x$effectNames, fill=cl, ncol = legendColumns,
+													bty = "n", cex=cex.legend)
 	}
 	invisible(cl)
 }

Modified: pkg/RSiena/R/sienaeffects.r
===================================================================
--- pkg/RSiena/R/sienaeffects.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/sienaeffects.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -57,6 +57,7 @@
 		cat(paste("interaction2 = <",interaction2,">, ", sep=""))
 		cat(paste("and type = <",type,">, \n", sep=""))
 		cat(paste("for dependent variable",name,".\n"))
+		cat("See effectsDocumentation() for this effects object.\n")
 	}
 	else
 	{

Modified: pkg/RSiena/R/sienatable.r
===================================================================
--- pkg/RSiena/R/sienatable.r	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/R/sienatable.r	2015-07-18 14:54:37 UTC (rev 288)
@@ -124,14 +124,24 @@
             {
 	  	if (tcsplit[1] == "0")
 		{
+                    if (type=='tex')
+					{
                     tcsplit[1] <- "--0"
 		}
                 else
                 {
+						tcsplit[1] <- "-0"
+					}
+				}
+                else
+                {
+                    if (type=='tex')
+					{
                     tcsplit[1] <- paste(c("-",tcsplit[1]),sep="",collapse="")
 		}
             }
         }
+        }
         else
         {
             tcsplit <- c("N","A.")
@@ -144,7 +154,7 @@
         tcsplit
     }
 
-    ## mydf creates a data.frame; these will be binded together to form the table
+    ## mydf creates a data.frame; these will be bound together to form the table
 
     mydf <- function(pp)
     {
@@ -268,8 +278,11 @@
     	ruleTable <- tableSection("")
 	footnote <- c(paste(" <TR> <TD colspan=9 align=left>
 				all convergence t ratios < ",
-                            max.t,".</TD> </TR> <TR> </TR>",sep="",collapse=""),
-                      "</TABLE>")
+                            max.t,".</TD> </TR> <TR> </TR>",
+						" <TR> <TD colspan=9 align=left>
+				Overall maximum convergence ratio ",
+                            maxlincomb.t,".</TD> </TR> <TR> </TR>",							
+							sep="",collapse=""),"</TABLE>")
 	if (sig == TRUE)
 	{
             footnote <- c("<TR> <TD colspan=4 align=left> &#134 p < 0.1;

Modified: pkg/RSiena/inst/doc/RSiena.bib
===================================================================
--- pkg/RSiena/inst/doc/RSiena.bib	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/inst/doc/RSiena.bib	2015-07-18 14:54:37 UTC (rev 288)
@@ -4528,7 +4528,8 @@
   booktitle =    {Simulating Social Phenomena},
   pages =    {493--512},
 year=1997,
-  publisher = {Berlin: Springer},
+  publisher = {Springer},
+  address = {Berlin},
   editor =   {R. Conte and R. Hegselmann and P. Terna}}
 
 

Modified: pkg/RSiena/inst/doc/RSiena_Manual.pdf
===================================================================
--- pkg/RSiena/inst/doc/RSiena_Manual.pdf	2015-06-02 14:39:37 UTC (rev 287)
+++ pkg/RSiena/inst/doc/RSiena_Manual.pdf	2015-07-18 14:54:37 UTC (rev 288)
@@ -56,24 +56,24 @@
 endstream
 endobj
 535 0 obj <<
-/Length 1322      
+/Length 1325      
 /Filter /FlateDecode
 >>
 stream
-xÚ­WK“Û6¾ûW¨7y&bć(ª=mžMg6M³nMzàÊ\/Yr$yŸú×”kí:“I¦³3&EààÈÍ“M’'/ùWÆ'«Åã¼L„b¥)y²ºID®Y®x¢uÎT²Z'ïÒKÛ.…N÷¶Yf2éM×/ÿZýšæT“sÍ4,å¤õöʻ֒ Ê®˜TZ `¦+¦E™€1&9âûñÌÃ9—Ç2}ëw; $3¬@
-"¢Z-H»-É^°'Œ´¯Zÿ÷ÚõCÐy]š¹ÞŸÃû\È¥ªò´{ŸseÉ“n™Á°¶t`ÁÊŠÏ/ÚuTµ©ýñYêa4UÚ-yJGg<gùY’…7KаûÆ·–À¾é]ííºû/JœUEAQâð¡ —†é¢ ¿·þ­€‡~ÄɁ,u74þú²³þq™)Y¤ÏÜÎöãÖµ(8ž
-–éÕhGÐföxêëá'Úz½‡¸h׬Iãi×4nã‚W\TLIð
-ð.Òã‡àâ$çª<àÜóÕ‚Ã|MxY0
-fDÉ™®Š¤Þ.>.dؤ߰0IÇ…Ç/¶<yÖ-~ƒ¿û¶'Ñl²œ˜dfW¬ÒB®—@Dƒ$.Y1¹sq=Œ½­Ç³àÁ€81q-C 2.€Þ1ÍW¯ž¿¾ ”ša	éÌùTïó"?ÒÌ(¯˜ 
-D¹+¿Ý7ª®…¸*¾jïÜ0úÍq©„z\
-“ö´ÿ|»ó½¯C­ÂçkXò	%Hìm\´¶9~xˆS ÐJœàä¤á:ÎÒgÝmwûÑÅcw}—ï…¬(%ò¹LV6½ÅJ5:oíH³Úö½whÔ”i·§}G“	
-ž’+°€no'·Qå†Ö·X¹&]‡’¹!V£xnÕÝ…H4ûÉN¬¨@A6Á“|îB‹‘41’ý8A™"µu
-õæÛ
-}ŽŽŠÎÃ…õ¡µ[_Ó*°ªë³¼nÑÊà®ioòÂ5ô
-¨Y^AK¿J%ý&y°ööå"yŽ;í~GÒ†=÷6¡Šs~ÏVúè{€¡â¾!¤Ö7»—“£»™¬TêBä¤a÷ýÇíïô¿<;Snvý­Á@$§°‹[ý¿°ynÏá†KRËV·>îcì¨@`ak7鲇ó=JÂÕÍóêÜ]?k%†•üØJ¦ QŸ…aFðyBëŽ*£÷×Ð[ðâ*ÝÙ?,Èíqr*
-7	8LæýÃè¶glÉ<'&ðqk¸äÔ´ÏÈÜ«‘Fì{ÛÆðºã&½ýp­©ŽC_鶋j½Û5¶v±Gæ’i=ù®éœè‰No]³ÃY	žoȐŽ­ÖPì¡Oà’2òkù€Înôѱ›}[c~ÀçB=Ô@Ä¡£³¦tXßF³¡.	~êý8º–dœíïúGño¸6æy&oJ.Ë9ï`ã<ïŒb…>fîËmɏ±
-ŸK¡ßƒe‰)ƒ·Ú5nèôKîEØýyïÀe.} Þ­uÖ}oçìkJz¿A·ƒfl
-è¶fÂÌÝzÛ#U-"’ÞbnÓÄ“½³« šgJ±h录±ˆa¼éÝÇ}$fs µý.¾k¡œšÄs8nw-ÍTê[Z±ñ߆Á48j)ZFb=(UÀ™Gø¨0½ƒÏ¸Ò»ÖQøÖtøùl’•êë¤,—_H7˜†žÇSžáU+Œž·X4ïô*¯Â0•†Ž$°5±JF¨óë¯ÿAbF
+xÚ­WKsÛ6¾ëW°7j&DˆA°=9Ï&3NÓXí¡I0Ëh(R!)§>õ¯wª¢­ŒÇ™Žg»ûí{çÉ&ɓ׋üõÙjñô/¡XiJž¬®‘k–+žh3•¬ÖÉÇôܶK¡Ó½m–™ÌEzÕõË?WoAÒKr®™†£œ¤>\x×ZbTy“JdÌtÅ´( c’óȾ¯ôœ3\Ëôƒß5î’Ì°ˆhÕjiDÚm‰÷Œ=c$}Ñú¿Ö®‚ðëÒÌåþ>åB.U•§Ý§œ+KϺeËڒ‚•Ÿžµëþ jûýBêa5UÚ-yJª3ž³|2YÂû%HØ}ã[Kƾï]ííºû/JœUEAQâð¡X/
+ÓEA¿µþQÀC?â斐º+Zù²³þq™)Y¤/ÜÎöãÖµÈ83–éÅhG¬Í8Ðxêëá'"½ÛC\´kÖ$ñ¼k·qÁ+. u¥ ·*Vĸ¼Ý7Ñnž‚Èyü÷
+îåjÁaŽ&¼,˜†‰’CÙð¤Þ.¾,d Òo8˜¸ãÁÓW[ž¼è¿Âß]ì‰5›³#èPéPÖ«´Ð¡ÐKpÅ`—L•±
+Ï.‡±·õxÒx G ×’)ÔÃÔqEo^¾;£|š#f	¹ÌùÔŸò"?tÑ”WL@þ#ß…ßîÈS×B\•Nß´7nýæpTB3.…I{¢¿Üî|ïëШðùÎ…ùŠÄö™g­mn?Ü·S€¡•8²““„H¥ÏºÛîö£‹jw}—QÑ#XQJ,^,dBÙôÛÔèt¼¶#íjÛ÷Þ!¨)Ón?NtG›«<%Wà ÝÞNn£Èo±mMº†vXÉ
+•4²`€ç¨î&D¢ÙO8±€y ö‡nl‚'ùÜ…#ib$ûÏ A™"µu
+ÍæÛ
+}Ž®ŠôáÁú¶µ[_Ó)TU×gxÝ"ÊÌ]mòÂ5ô
+V…dyó4þ*•ô›äÞه׋äcPw<úEh*TÜ#1¡‹s~+}ò=†PqKë‘`wrrp7“•J–P9iØ]ÿ‘üþ—§Í·+ ]?6hɱÙE4[ý¿fóÜž²nH
+U¶ºöQ¹±£ƒ­
+µI7=NÏ(	÷6Ï«Sýl”VòÃ(™‚FsB†Áç	­;êŒÞ_ÂlÁÛ‡«tgk<ü¼, ·´“ËÐiH$Ãa3Ÿxp;Œn{rÀ–LÀ[b2þ¾Ýš)©&:#¸7#­8÷·-<àuÇMzæص¦>s
+¸Û.Šõn×ØÚÅ™K¦õä»&=ѝ^»f‡»<ߐŽ£ΐí¾Oà’2ò¡|Àd7úàØÕ¾­q?à[¡Šj(Ä¡#]S:¬o£³¡,1~íý8º–xœíïú'ñï¸6æy&oJ.ËyÝátÝÅ
+}ÈÜ·/Ú’b>¾•Â¼d‰)ƒ‡Ú%nIû¹
+÷"PÞûl‰<ç>”ÞµuѬú>Üγ/)éýÝ’q4 Ûš	3wÿùu¥jÑ")á!æ6MÔÄè‘¥XÝ<ŠM+ïô¨ŒMëUï¾ìca†œíwñQ턦I¼0‡¹ki§RßÒ‰:|rÛਥh‰ý TudÎ<é|•޵ŽÂ·&姳]HVª‡‹Z°\~#Ý 
+3§<ëV3±ô*¯Â¿/•†‰$p4Á(>Øç×<^ÿŽËEÐ
 endstream
 endobj
 525 0 obj <<
@@ -207,91 +207,91 @@
 /Filter /FlateDecode
 >>
 stream
-xÚí[Ms›H½ûWp[Tµ°ÌÃä–d—·ÊIU¬œ’=il³A äÄÿ~{˜Ä—YfYÞKd[F¯_w¿~3	œk'pÎNóúj~òÇJD}BCì̯œHøA9< >"¡3_:Ý×y6#È­¤~)gÏÿ:	ü(¤NàÃŁ	s
-¸gÿoïÏԐ#|âPÝ?p<Œ}Î"}k4ófî™Ìd§3DÄM²«¼XÅU­ŸdVë|ôH at Qè†] |CäÆ°YïË‘^ÁùÌC–p‘dɪ^gî¹þ¦EÞ_ ©ˆÜ聈Z  Ö‚RÇÓ+2(ø€
-0vÏ’Û$»†EâòJÞp³rêYöÄ`9þÌcAðS_¨¿â±c/=@ˆ˜
-¥û~Tõl¨0„
-ÂbKتҁ–U\Tr©~¡îפºQO‡›áv؁õXèÛ\žŸ¾}ÙYdïáXp?@örñÂyr™áåpC¹ùT|£nš_'M½üJ¿^VùÌÐþ¹‰ËJ_@Ý—‹*/¼wE5ÞÒß>p¡¯_ÊtÀT¢C¡ÓeÄ^”q ¬
-±­ÑE”ºóæîÝPá*{kð~€.tU²÷žúñü ±æ;aÍẃIH
-è¢`?xƒl¸EdÿŒ«øw
-è팅n\$ñçTcLÜ8[ê÷ä§ ¹¨‘ïðñ‰–¾iô8¤[&éw›*M2Ù%¯ºš&]ÿ¾.™år]«ß7=Ðvç×ÐEl2\©ÁõÍšÇ¦¨nd¡1Ü”òj“œ×5¶È5E#Éƺ
-%>Úv•÷—P#â^[i÷ùT¹ü	†ÑHðý"áaÕáO½€`ÓÏ3häiªÚúé0ôoúñ{}EZ¢–Ù÷Uõ‰– Ù‰¿'z±
-·W¿Æ-fû†Äç¼ib"ý¡2|1ŒO/,Ё¶aQjo43	ÜJ°_î‰3"~DØOó!´°ÑpGû†ƒZƸojâ}ú-^­S9–ÖÔÇß5­ËE‘¬+£0`HÕ•ùº™Èvè‹
->½ÞSÈyœúÅ}9ÇL„.+¹6ÎàJ`©Eþ¥7®ìd\nÒª|_2ˆ®\lªñŒFFýd4pG´ò¯¯\8;°<š4,Ìú‰Z;bKmêÞÈt­ñ¯g\«ú@s¯†Âª÷¦W†íë6t|©Ænè¹S5Õ‡RåoÚ¢ZŵGµ‰ÓcåØÅä±6]Ëõ Úõ°Y‡ ¢î
-’”`5„ZáÔõëÔ$úÀ¥ôNõÃϳõ¦Ò_Âè×}….Ê©MbLã—ù\„Ýœ _¢æN•šÛíl¯Æô¡ç…62D·Í":C[Ì[Y)×ä«ŠU^|ÑekH ÃìÙY¨£­„N2èÒ–U3WƒngåÖدÃð¹nð²Î£¯*JRšwàª"ùÖ·r–×ÒHƒ¤¬×ãŸ‚U8VÖlyUW’üc…Èm’덑{XKPøÌëŸ,Ö—9Ï–Ém²ÜÄÆŠY䊠ÉXì ã,ð£œç“X¹
-pf­Ü;Eõxiýïpvà$Ÿ}§?Ú[é5Ê­ù¥÷qŠÌ²~itq«BÆÕÊìôôíi£A$Ä”Š7ŠåÜlóñBµÊî†t;›, B;µìnà©Lâß-]ä?Û*š³`—¯í¶X12€„!y}ñFÁÊ–‹<Ë«<³¤\J3eKÍÇîN]?Xæ>ÛÎÀ4iq¶~õ`£h[›ËµÖЋäS€è¢×j	4¤.	ý”'á1ú0û‚ßÁ¾Q'¤©Ç—U±YTáée7T›U’ٝxÍêt3¤4ø‰ƒMT+HS±/’²l\ű¡&âüÿ:­°'“aoëôë|¥+F^&ÛZaN dײöÔ©ûOì.úg)Rka®*N1œ‚vÐÅ™Nr*Œp?bQ×¢dÚ¢¼hÌPs0l]ÿÞ-΋ä’pâ#…lëWª04K¶¶‹‡ oŒ²jN
-Ïmð£<4¸;iÂéD>kÙ’§©\ewæHÍ}G•8cÇlâMRúXË…¼¼G*‘{ÎÖȏD¸ëq
-ÔO=ªmü)ŸÆP8QWg±–óyCARSìÂZ£âvp¬4<*Wˆ	G¶õwlÛ/ªØ9z~¨Ošªƒ¦FãöOMvÏ:¨iµAm=ûö¦Ê]¯’EùB}Ñ˜gÒkzþPÖrÿáNƒÒGÚ€Žg¯mŒ4˜”äØÑúP}è¹f
-7L¡-¦DãL¡øbw¦ôf‡VÓBЪê&DZ±UùBöÿ8´?y:?ùq/·"
+xÚí[Ms›H½ûWp[Tµ°óÉ@nIÖqi«œTÅÎ)Ù‘Æ*@Nüï·‡™A|9±e6‘å½D¶…`ôúu÷ë7ä\;È9;AæõÕåÉou0ó)ˆsyå„‘PèÄ|Lçré|t_çÙŒb·’ú¥œý}ù×	òÀ9ȇ‹‘O(w
+¸gÿoïÏÔ°ùQ@uäx„ø‚‡úÖxæE„»g2“EœÎ<R7É®òbW	<¶~’Y­óÑ£ˆáÀ
+º ø†Ø8'f¾¯Àzó™‡1,á<É’u½Áݹþ¦EÞ_ 	Xºá¶  ¬#ÆO¯È àâž%7Iv
+‹ Ô-ä•,$¼áf3ì.Ô²ì/ˆÃrü™Çú©/,Š~ÅcÇ^z€à(ä6@–îûQÕ³¡"*lK,a«J
+[VqQÉ¥ú…¹_“j¥ž7#í°ë°éÛ\ÌOß¾ì,²÷p	a{yôÂyr™“åHC¹Ë•T|cnš_'M½üJ¿^TùÌ#!þYÅe¥/`îËE•Þ»"š oéo8××/e:`jàC¡Óe¢½(ã@X#<ĶF3æ^Έpo7€ŠPÙ[ƒ÷t) «’†¼÷ԏïàµ¸Ö®;˜„d€.FûÁ‹²ÁYbý3®âß5 73¸q‘ÄŸS1uãl©ß“Ÿ¦rQ
+0¢ßáã-}5ÒøqH·8L
+Òï¶Ušd²K^	t5Mºþ}S2ËåºV¿oFìP@»G8‡¸.æ“áÊ®ofÐ<¶Eµ’…Æp[Ê«mjpÞÔØb׍$ë*Œúx×UÞ_@ˆ{m¥Ýhè3Puæò' F#ì	¨FꄘF8Ï ‘§©jëC¤ƒÀDӏßë+ÚÐF j¹}_UŸ‘hE ;É÷$@/VÁîêã×x£ÅlßPcøBô#MM¤?”ãAæȏ†ñé…:Ð.,Jíf&…[E¼Ã—;〈RþSã|-l4ÜbßpPË„ôãÍL¼O¿ÅëM*ÇÒšù$÷MërQ$›Ê(Rue¾nfº›úbCO/…GC´§Nöó#}9ÇM„.*¹1ÎàJa©Eþ¥7®ìd\nÓª|_qˆ®\l«ñŒÆŒú?ÈhàNÔÊ¿¾rüÀòhÒ°`ï'N`툵™»’éFã_ϸVõæ^LTïM¯	Ú×mèøRÝÐs§(n<ª¥,Êß´EµŽkj§Ær&ˆKÈcmº–ëAµëa³44AÈÜ5$)%jµÂ©ëשIôKé?œé‡Ï³Í¶Ò_Âè×}ƒ.*˜MbBã—Ð(ôEts‚5~‰š;uBTjn·³½Ó‡žGØÈxÝf4‹ètk0oe¥\“¯*VyñE—­!>zœðgg¡Žµ’}†1 	I[ÄY¹3öë0|®¼¬óè«Š’”渪H¾õ­œåµ4Ò )«F…ÁµÃÄä§`Å'ÃÊš-¯êJ²‚Á?VˆÜ$¹Þ¹ƒµϼn“…Àú2ól™Ü$Ëml¬˜E®Ú˜ŒÕÈ.>Î?Êù`+Wέ•{«¨/­ÿÝ ÎïœÁÓ£ï4ð‹½•þX£Ü™_z§È,ë—FçP·*d\­ÍNOQáž6úD"œR±F±ÌÍ6O/T«ình@¸Uq°É*´ÓXËîžÊ$ñÝÒEÿ³­¢)1CC¸¬¸xm·ÅŠ‘$è3è‹¿0
+V¶œçY^å™%åRš±([šðh>vwêúÁ¢ø0÷Ùî
+,E“gëW6Švµ¹Üh
+½H>!̍¸VH !uIè§<
+ŽÑ‡Ùüö:¡M=¾¨Ší¢Ú‚Oo-»¡Ú¬“ÌîÄkV§Û!¥EDžø8HÑDµ‚6û<)ËÆUjB!þ¯Ó
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/rsiena -r 288


More information about the Rsiena-commits mailing list