84
84
85
85
Construct a (lazy) representation of the Kronecker product `⨂ᵢ₌₁ⁿ Aᵢ` of at least 3 _square_
86
86
Kronecker factors. In contrast to [`kron`](@ref), this function assumes that all Kronecker
87
- factors are square, and makes use of the following identity:
87
+ factors are square, and makes use of the following identity[^1] :
88
88
89
89
```
90
90
\\ bigotimes_{i=1}^n A_i = \\ prod_{i=1}^n I_1 \\ otimes \\ ldots \\ otimes I_{i-1} \\ otimes A_i \\ otimes I_{i+1} \\ otimes \\ ldots \\ otimes I_n
@@ -102,6 +102,10 @@ i.e., a `CompositeMap` where each factor is a Kronecker product consisting of th
102
102
outer `UniformScalingMap`s and the respective Kronecker factor. This representation is
103
103
expected to yield significantly faster multiplication (and reduce memory allocation)
104
104
compared to [`kron`](@ref), but benchmarking intended use cases is highly recommended.
105
+
106
+ [^1]: Fernandes, P. and Plateau, B. and Stewart, W. J. ["Efficient Descriptor-Vector
107
+ Multiplications in Stochastic Automata Networks"](https://doi.org/10.1145/278298.278303),
108
+ _Journal of the ACM_, 45(3), 381–414, 1998.
105
109
"""
106
110
function squarekron (A:: MapOrMatrix , B:: MapOrMatrix , C:: MapOrMatrix , Ds:: MapOrMatrix... )
107
111
maps = (A, B, C, Ds... )
@@ -328,7 +332,7 @@ kronsum(A::MapOrMatrix, B::MapOrMatrix, C::MapOrMatrix, Ds::MapOrMatrix...) =
328
332
329
333
Construct a (lazy) representation of the Kronecker sum `A⊕B` of two or more square
330
334
objects of type `LinearMap` or `AbstractMatrix`. This function makes use of the following
331
- representation of Kronecker sums:
335
+ representation of Kronecker sums[^1] :
332
336
333
337
```
334
338
\\ bigoplus_{i=1}^n A_i = \\ sum_{i=1}^n I_1 \\ otimes \\ ldots \\ otimes I_{i-1} \\ otimes A_i \\ otimes I_{i+1} \\ otimes \\ ldots \\ otimes I_n
@@ -364,6 +368,10 @@ julia> Δ₃ = D^⊕(2);
364
368
julia> Matrix(Δ₁) == Matrix(Δ₂) == Matrix(Δ₃)
365
369
true
366
370
```
371
+
372
+ [^1]: Fernandes, P. and Plateau, B. and Stewart, W. J. ["Efficient Descriptor-Vector
373
+ Multiplications in Stochastic Automata Networks"](https://doi.org/10.1145/278298.278303),
374
+ _Journal of the ACM_, 45(3), 381–414, 1998.
367
375
"""
368
376
function sumkronsum (A:: MapOrMatrix , B:: MapOrMatrix )
369
377
LinearAlgebra. checksquare (A, B)
0 commit comments