Skip to content

Commit d3a231e

Browse files
committed
add reference
1 parent 8b41f1a commit d3a231e

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/kronecker.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ end
8484
8585
Construct a (lazy) representation of the Kronecker product `⨂ᵢ₌₁ⁿ Aᵢ` of at least 3 _square_
8686
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]:
8888
8989
```
9090
\\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
102102
outer `UniformScalingMap`s and the respective Kronecker factor. This representation is
103103
expected to yield significantly faster multiplication (and reduce memory allocation)
104104
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.
105109
"""
106110
function squarekron(A::MapOrMatrix, B::MapOrMatrix, C::MapOrMatrix, Ds::MapOrMatrix...)
107111
maps = (A, B, C, Ds...)
@@ -328,7 +332,7 @@ kronsum(A::MapOrMatrix, B::MapOrMatrix, C::MapOrMatrix, Ds::MapOrMatrix...) =
328332
329333
Construct a (lazy) representation of the Kronecker sum `A⊕B` of two or more square
330334
objects of type `LinearMap` or `AbstractMatrix`. This function makes use of the following
331-
representation of Kronecker sums:
335+
representation of Kronecker sums[^1]:
332336
333337
```
334338
\\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);
364368
julia> Matrix(Δ₁) == Matrix(Δ₂) == Matrix(Δ₃)
365369
true
366370
```
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.
367375
"""
368376
function sumkronsum(A::MapOrMatrix, B::MapOrMatrix)
369377
LinearAlgebra.checksquare(A, B)

0 commit comments

Comments
 (0)