|
38 | 38 |
|
39 | 39 | # TODO remove _permutedims once support for Julia 1.10 is dropped
|
40 | 40 | # define permutedims with a BlockedPermuation. Default is to flatten it.
|
41 |
| -function Base.permutedims(a::AbstractArray, biperm::AbstractBlockPermutation) |
| 41 | +function permuteblockeddims(a::AbstractArray, biperm::AbstractBlockPermutation) |
42 | 42 | return _permutedims(a, Tuple(biperm))
|
43 | 43 | end
|
44 | 44 |
|
45 |
| -# solve ambiguities |
46 |
| -function Base.permutedims(a::StridedArray, biperm::AbstractBlockPermutation) |
47 |
| - return _permutedims(a, Tuple(biperm)) |
48 |
| -end |
49 |
| -function Base.permutedims(a::Diagonal, biperm::AbstractBlockPermutation) |
50 |
| - return _permutedims(a, Tuple(biperm)) |
51 |
| -end |
52 |
| - |
53 |
| -function Base.permutedims!( |
| 45 | +function permuteblockeddims!( |
54 | 46 | a::AbstractArray, b::AbstractArray, biperm::AbstractBlockPermutation
|
55 | 47 | )
|
56 | 48 | return _permutedims!(a, b, Tuple(biperm))
|
57 | 49 | end
|
58 | 50 |
|
59 |
| -# solve ambiguities |
60 |
| -function Base.permutedims!( |
61 |
| - a::Array{T,N}, b::StridedArray{T,N}, biperm::AbstractBlockPermutation |
62 |
| -) where {T,N} |
63 |
| - return _permutedims!(a, b, Tuple(biperm)) |
64 |
| -end |
65 |
| - |
66 | 51 | # ===================================== matricize ========================================
|
67 | 52 | # TBD settle copy/not copy convention
|
68 | 53 | # matrix factorizations assume copy
|
|
75 | 60 | function matricize(
|
76 | 61 | style::FusionStyle, a::AbstractArray, biperm::AbstractBlockPermutation{2}
|
77 | 62 | )
|
78 |
| - a_perm = permutedims(a, biperm) |
| 63 | + a_perm = permuteblockeddims(a, biperm) |
79 | 64 | return matricize(style, a_perm, trivialperm(biperm))
|
80 | 65 | end
|
81 | 66 |
|
@@ -112,7 +97,7 @@ function unmatricize(
|
112 | 97 | )
|
113 | 98 | blocked_axes = axes[biperm]
|
114 | 99 | a_perm = unmatricize(m, blocked_axes)
|
115 |
| - return permutedims(a_perm, invperm(biperm)) |
| 100 | + return permuteblockeddims(a_perm, invperm(biperm)) |
116 | 101 | end
|
117 | 102 |
|
118 | 103 | function unmatricize(::ReshapeFusion, m::AbstractMatrix, axes::AbstractUnitRange...)
|
@@ -147,5 +132,5 @@ function unmatricize!(
|
147 | 132 | )
|
148 | 133 | blocked_axes = axes(a)[biperm]
|
149 | 134 | a_perm = unmatricize(m, blocked_axes)
|
150 |
| - return permutedims!(a, a_perm, invperm(biperm)) |
| 135 | + return permuteblockeddims!(a, a_perm, invperm(biperm)) |
151 | 136 | end
|
0 commit comments