II am translating some gauss code into R, and gauss has a matrix  
product function called the horizontal direct product (*~), which is  
some sort of variant on the Kronecker product.

For example if x is 2x2 and y is 2x2

the horizontal direct product, z, of x and y is defined (in the Gauss  
manual) as:

row 1 = x11*y11 x11*y12 x12*y11 x12*y12
row 2 = x21*y21 x21*y22 x22*y21 x22*y22

Or in R code if:

x <- matrix(seq(1,4,by=1),2,2, byrow=TRUE)
y <- matrix(seq(5,8,by=1),2,2, byrow=TRUE)

The resulting matrix, if I had an operator, would be the following  
matrix z, here formed in a contrived manner:

z.1 <- c(5, 6, 10, 12)
z.2 <- c(21,24,28,32)
z <- rbind(z.1,z.2)

I realize that this is just the first and last row of x%*%y when x  
and y are two by two but this  won't generalize with larger  
matrices.  Any ideas about whether this can be done with existing R  
functions in a general way short of writing my own function?

   Thanks

Luke




Luke Keele
Department of Political Science
Ohio State University
keele.4@polisci.osu.edu




	[[alternative HTML version deleted]]

