@@ -30,11 +30,11 @@ function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:Vcat{<:Any,1,<:Tuple{
30
30
m,n = mn
31
31
@assert isinf (n)
32
32
l,u = lu
33
- M = mapreduce (x -> length (x. second. arrays [1 ]) + max (0 ,x. first), max, kv) # number of data rows
33
+ M = mapreduce (x -> length (x. second. args [1 ]) + max (0 ,x. first), max, kv) # number of data rows
34
34
data = zeros (T, u+ l+ 1 , M)
35
35
t = zeros (T, u+ l+ 1 )
36
36
for (k,v) in kv
37
- a,b = v. arrays
37
+ a,b = v. args
38
38
p = length (a)
39
39
t[u- k+ 1 ] = b. value
40
40
if k ≤ 0
53
53
function BandedMatrix (Ac:: Adjoint{T,<:InfToeplitz} ) where T
54
54
A = parent (Ac)
55
55
l,u = bandwidths (A)
56
- a = A. data. applied . args[1 ]
56
+ a = A. data. args[1 ]
57
57
_BandedMatrix (reverse (conj (a)) * Ones {T} (1 ,∞), ∞, u, l)
58
58
end
59
59
60
60
function BandedMatrix (Ac:: Transpose{T,<:InfToeplitz} ) where T
61
61
A = parent (Ac)
62
62
l,u = bandwidths (A)
63
- a = A. data. applied . args[1 ]
63
+ a = A. data. args[1 ]
64
64
_BandedMatrix (reverse (a) * Ones {T} (1 ,∞), ∞, u, l)
65
65
end
66
66
67
67
function BandedMatrix (Ac:: Adjoint{T,<:PertToeplitz} ) where T
68
68
A = parent (Ac)
69
69
l,u = bandwidths (A)
70
- a,b = A. data. arrays
70
+ a,b = A. data. args
71
71
Ac_fd = BandedMatrix (_BandedMatrix (Hcat (a, b[:,1 : l+ 1 ]), size (a,2 )+ l, l, u)' )
72
- _BandedMatrix (Hcat (Ac_fd. data, reverse (conj (b. applied . args[1 ])) * Ones {T} (1 ,∞)), ∞, u, l)
72
+ _BandedMatrix (Hcat (Ac_fd. data, reverse (conj (b. args[1 ])) * Ones {T} (1 ,∞)), ∞, u, l)
73
73
end
74
74
75
75
function BandedMatrix (Ac:: Transpose{T,<:PertToeplitz} ) where T
76
76
A = parent (Ac)
77
77
l,u = bandwidths (A)
78
- a,b = A. data. arrays
78
+ a,b = A. data. args
79
79
Ac_fd = BandedMatrix (transpose (_BandedMatrix (Hcat (a, b[:,1 : l+ 1 ]), size (a,2 )+ l, l, u)))
80
- _BandedMatrix (Hcat (Ac_fd. data, reverse (b. applied . args[1 ]) * Ones {T} (1 ,∞)), ∞, u, l)
80
+ _BandedMatrix (Hcat (Ac_fd. data, reverse (b. args[1 ]) * Ones {T} (1 ,∞)), ∞, u, l)
81
81
end
82
82
83
83
84
84
for op in (:- , :+ )
85
85
@eval begin
86
86
function $op (A:: SymTriPertToeplitz{T} , λ:: UniformScaling ) where T
87
87
TV = promote_type (T,eltype (λ))
88
- dv = Vcat (convert .(AbstractVector{TV}, A. dv. arrays )... )
89
- ev = Vcat (convert .(AbstractVector{TV}, A. ev. arrays )... )
88
+ dv = Vcat (convert .(AbstractVector{TV}, A. dv. args )... )
89
+ ev = Vcat (convert .(AbstractVector{TV}, A. ev. args )... )
90
90
SymTridiagonal (broadcast ($ op, dv, Ref (λ. λ)), ev)
91
91
end
92
92
function $op (λ:: UniformScaling , A:: SymTriPertToeplitz{V} ) where V
@@ -102,52 +102,52 @@ for op in (:-, :+)
102
102
103
103
function $op (A:: TriPertToeplitz{T} , λ:: UniformScaling ) where T
104
104
TV = promote_type (T,eltype (λ))
105
- Tridiagonal (Vcat (convert .(AbstractVector{TV}, A. dl. arrays )... ),
106
- Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. d, λ. λ). arrays )... ),
107
- Vcat (convert .(AbstractVector{TV}, A. du. arrays )... ))
105
+ Tridiagonal (Vcat (convert .(AbstractVector{TV}, A. dl. args )... ),
106
+ Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. d, λ. λ). args )... ),
107
+ Vcat (convert .(AbstractVector{TV}, A. du. args )... ))
108
108
end
109
109
function $op (λ:: UniformScaling , A:: TriPertToeplitz{V} ) where V
110
110
TV = promote_type (eltype (λ),V)
111
- Tridiagonal (Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. dl. arrays ))... ),
112
- Vcat (convert .(AbstractVector{TV}, broadcast ($ op, λ. λ, A. d). arrays )... ),
113
- Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. du. arrays ))... ))
111
+ Tridiagonal (Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. dl. args ))... ),
112
+ Vcat (convert .(AbstractVector{TV}, broadcast ($ op, λ. λ, A. d). args )... ),
113
+ Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. du. args ))... ))
114
114
end
115
115
function $op (adjA:: AdjTriPertToeplitz{T} , λ:: UniformScaling ) where T
116
116
A = parent (adjA)
117
117
TV = promote_type (T,eltype (λ))
118
- Tridiagonal (Vcat (convert .(AbstractVector{TV}, A. du. arrays )... ),
119
- Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. d, λ. λ). arrays )... ),
120
- Vcat (convert .(AbstractVector{TV}, A. dl. arrays )... ))
118
+ Tridiagonal (Vcat (convert .(AbstractVector{TV}, A. du. args )... ),
119
+ Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. d, λ. λ). args )... ),
120
+ Vcat (convert .(AbstractVector{TV}, A. dl. args )... ))
121
121
end
122
122
function $op (λ:: UniformScaling , adjA:: AdjTriPertToeplitz{V} ) where V
123
123
A = parent (adjA)
124
124
TV = promote_type (eltype (λ),V)
125
- Tridiagonal (Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. du. arrays ))... ),
126
- Vcat (convert .(AbstractVector{TV}, broadcast ($ op, λ. λ, A. d). arrays )... ),
127
- Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. dl. arrays ))... ))
125
+ Tridiagonal (Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. du. args ))... ),
126
+ Vcat (convert .(AbstractVector{TV}, broadcast ($ op, λ. λ, A. d). args )... ),
127
+ Vcat (convert .(AbstractVector{TV}, broadcast ($ op, A. dl. args ))... ))
128
128
end
129
129
130
130
function $op (λ:: UniformScaling , A:: InfToeplitz{V} ) where V
131
131
l,u = bandwidths (A)
132
132
TV = promote_type (eltype (λ),V)
133
- a = convert (AbstractVector{TV}, $ op .(A. data. applied . args[1 ]))
133
+ a = convert (AbstractVector{TV}, $ op .(A. data. args[1 ]))
134
134
a[u+ 1 ] += λ. λ
135
135
_BandedMatrix (a* Ones {TV} (1 ,∞), ∞, l, u)
136
136
end
137
137
138
138
function $op (A:: InfToeplitz{T} , λ:: UniformScaling ) where T
139
139
l,u = bandwidths (A)
140
140
TV = promote_type (T,eltype (λ))
141
- a = AbstractVector {TV} (A. data. applied . args[1 ])
141
+ a = AbstractVector {TV} (A. data. args[1 ])
142
142
a[u+ 1 ] = $ op (a[u+ 1 ], λ. λ)
143
143
_BandedMatrix (a* Ones {TV} (1 ,∞), ∞, l, u)
144
144
end
145
145
146
146
function $op (λ:: UniformScaling , A:: PertToeplitz{V} ) where V
147
147
l,u = bandwidths (A)
148
148
TV = promote_type (eltype (λ),V)
149
- a, t = convert .(AbstractVector{TV}, A. data. arrays )
150
- b = $ op .(t. applied . args[1 ])
149
+ a, t = convert .(AbstractVector{TV}, A. data. args )
150
+ b = $ op .(t. args[1 ])
151
151
a[u+ 1 ,:] += λ. λ
152
152
b[u+ 1 ] += λ. λ
153
153
_BandedMatrix (Hcat (a, b* Ones {TV} (1 ,∞)), ∞, l, u)
@@ -156,9 +156,9 @@ for op in (:-, :+)
156
156
function $op (A:: PertToeplitz{T} , λ:: UniformScaling ) where T
157
157
l,u = bandwidths (A)
158
158
TV = promote_type (T,eltype (λ))
159
- ã, t = A. data. arrays
159
+ ã, t = A. data. args
160
160
a = AbstractArray {TV} (ã)
161
- b = AbstractVector {TV} (t. applied . args[1 ])
161
+ b = AbstractVector {TV} (t. args[1 ])
162
162
a[u+ 1 ,:] .= $ op .(a[u+ 1 ,:],λ. λ)
163
163
b[u+ 1 ] = $ op (b[u+ 1 ], λ. λ)
164
164
_BandedMatrix (Hcat (a, b* Ones {TV} (1 ,∞)), ∞, l, u)
@@ -174,16 +174,16 @@ end
174
174
175
175
function BandedMatrix (A:: PertToeplitz{T} , (l,u):: Tuple{Int,Int} ) where T
176
176
@assert A. u == u # Not implemented
177
- a, b = A. data. arrays
178
- t = b. applied . args[1 ] # topelitz part
177
+ a, b = A. data. args
178
+ t = b. args[1 ] # topelitz part
179
179
t_pad = vcat (t,Zeros (l- A. l))
180
180
data = Hcat ([vcat (a,Zeros {T} (l- A. l,size (a,2 ))) repeat (t_pad,1 ,l)], t_pad * Ones {T} (1 ,∞))
181
181
_BandedMatrix (data, ∞, l, u)
182
182
end
183
183
184
184
function BandedMatrix (A:: SymTriPertToeplitz{T} , (l,u):: Tuple{Int,Int} ) where T
185
- a,a∞ = A. dv. arrays
186
- b,b∞ = A. ev. arrays
185
+ a,a∞ = A. dv. args
186
+ b,b∞ = A. ev. args
187
187
n = max (length (a), length (b)+ 1 ) + 1
188
188
data = zeros (T, l+ u+ 1 , n)
189
189
data[u,2 : length (b)+ 1 ] .= b
@@ -207,9 +207,9 @@ function BandedMatrix(A::SymTridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}, (l,u)
207
207
end
208
208
209
209
function BandedMatrix (A:: TriPertToeplitz{T} , (l,u):: Tuple{Int,Int} ) where T
210
- a,a∞ = A. d. arrays
211
- b,b∞ = A. du. arrays
212
- c,c∞ = A. dl. arrays
210
+ a,a∞ = A. d. args
211
+ b,b∞ = A. du. args
212
+ c,c∞ = A. dl. args
213
213
n = max (length (a), length (b)+ 1 , length (c)- 1 ) + 1
214
214
data = zeros (T, l+ u+ 1 , n)
215
215
data[u,2 : length (b)+ 1 ] .= b
0 commit comments