Skip to content
Prev 9565 / 63424 Next

Extending %*%

On Mon, 19 May 2003 21:56:24 -0400, you wrote in message
<te2jcvkqn8uq9it881386oqi1n4j8ncakh@4ax.com>:
In answer to my own question:  yes, it's possible, using the S4
classes and methods.  It would look something like this:


setClass("special", representation(m = "list"))

setMethod("%*%", 
                signature(x = "special", y="special"),
                function(x,y) 
		new("special", 
			m = mapply("%*%", x@m, y@m, SIMPLIFY=FALSE))
)


A1 <- A2 <- A3 <- B1 <- B2 <- B3 <- diag(c(2,3))

A <- new("special", m = list(A1, A2, A3))

B <- new("special", m = list(A1, A2, A3))

A %*% B

(Thanks Uwe for the compact expression to implement the method!)

Duncan Murdoch