matKTimes {lazy.symbolic}R Documentation

Symbolic Kronecker Product

Description

Symbolic Kronecker Product

Usage

matKTimes(
  ...,
  add_paren = 0,
  simplify = 0,
  ra = 0,
  remove_attributes = ra,
  debug = 0
)

Arguments

...

Symbolic matrices or vectors to be multiplied.

add_paren

= 1 to enclose the left matrix by parens

simplify

= 1 to simplify the result

ra

= 1 to remove the SMdim attributes

remove_attributes

same as the ra parameter above.

debug

= 1 to print intermediate result

Details

If A or B is a vector, it will be converted to a column vector.
With ra=0, the result can be printed with separator by Printb.

Do NOT use t function to transpose a Kronecker product.
It may destroy the SMdim attributes and causes error in Printb.

Value

A nrow(A)*nrow(B) x ncol(A)*ncol(B) matrix

Examples

# symbolic example
A <- demomat(2,2,root="a"); B <- demomat(3,3,root="b")
AkB=matKTimes(A,B)
Printb(AkB)

Printb(matKTimes(diag(2),A))
Printb(matKTimes(1:2,A))
Printb(matKTimes(matrix(1:2,1),A))
Printb(matKTimes(A,1:2))
Printb(matKTimes(A,matrix(1:2,1)))

tAktB=matKTimes(t(A),t(B))
Printb(tAktB)
Printb(Minus(transp(AkB),tAktB))
# Printb(t(AktB))


[Package lazy.symbolic version 0.1.4 ]