8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 1/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 2/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 3/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 4/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 5/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 6/168
mσ ∈ o(n)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 7/168
n ≥ m
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 8/168
fastOrderBasis (F, σ, s)
unbalancedFastOrderBasis (F, σ, s)
minimalKernelBasis (F, s)
inverse(F, s)
minimaKernelBasisReversed(M, s, ξ )
colBasis(F)
unimodularCompletion(F)
hermiteDiagonal(F)
hermiteDiagonalWithScale(F)
minimalKernelBasisWithRankProfile(F, s)
rankProfile(F)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 9/168
F ∈ K [[x]]m×n
K
σ p ∈ K [x]n×1
(F, σ)
F · p ≡ 0 mod xσ,
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 10/168
σ F · p
e
m = 1 m = 1, n = 2
F
p
(F, σ) K [x]
σ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 11/168
F ∈ K [x]m×n
r
p ∈ K [x]n | Fp = 0 ,
F
K[x]
F
K [x]n×(n−r)
T = D−1
N
D
N
T = NrD−1
r Dr
Nr
[D − N]
Nr
Dr
= 0.
AZ =
B A B
[A, −B]
F
K [x]n N
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 12/168
p = [ p1, . . . , pn]T
K
cdeg p
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 13/168
p
cdeg p = max1≤i≤n
deg pi.
p
s = [s1, . . . , sn] ∈ Zn s
p
cdegs
p = max1≤i≤n
[deg pi + si] = deg(xs · p),
xs = ([xs1, xs2, . . . , xsn]) =
xs1
xs2
xs1
.
P
cdeg P cdegs P
s s = [0, . . . , 0]
q
rdegs
q = max1≤i≤n
[deg q i + si] = deg(q · xs).
s H
H = xs
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 14/168
O∼(n2mσ + nm2σ)
O O∼ O
(log(nmσ))O(1) m× n
O∼ (nωσ)
m ≤ n
m n
m n m ≤ n
m > n
m ≤ n
1 × n f
σ
O (n) × O (n) 2σ/n
O∼ (nωa) a = mσ/n
σ
O (a)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 15/168
O (a)
O∼(nωa)
max s − min s ∈ O (mσ/n)
O∼(nωa)
s
ni=1(max(s) − si) ≤ mσ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 16/168
O∼(nω−1mσ)
O∼ (nωa)
O∼ (nωa) a = mσ/n
O mσ/n
O∼(nω−1mσ)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 17/168
O(m2nd3) d
F
n − r F
O∼ (nmrω−2d)
O∼ O ω
n − r
F (x) p ∈ K (x)n | Fp = 0 K [x]
K (x)
O∼ (nω−1md) K
s F O∼(nωs)
s F s m
s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 18/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 19/168
a ∈ Zn
b ∈ Zn a = [a1, . . . , an]
b = b1, . . . , b
n a
b
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 20/168
a ≥ b ai ≥ bi i ∈ [1, . . . n]
a ≤ b
ai ≤ bi
i ∈ [1, . . . n]
a > b a ≥ b a j > b j j ∈ [1, . . . n]
a < b a ≤ b a j < b j j ∈ [1, . . . n] .
a = [a1, . . . , an] ∈ Zn
a
a
a = [a1, . . . , an] ∈ Zn c ∈ Z a + c
a + [c , . . . , c] = [a1 + c, . . . , an + c] −
a = [a1, . . . , an] ∈ Zn c ∈ Z
a < c a < [c , . . . , c] >, ≤, ≥, =
A = [1, x2] B = [x, 1] cdeg A > cdeg B
A
B
[0, 2] [0, 1]
K
MM(n, d)
n d M(n)
d
M(st) ∈ O (M(s) M(t)) M(n) ∈ O(nω−1) ω
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 21/168
2 < ω ≤ 3 MM(n, d) ∈ O (nω M(d)) ⊂ O∼ (nωd)
n×n s = [s1, . . . , sn]
O∼ (nωs) s =
s/n
n s
O∼ (nω−1ξ ) ξ =
s
ξ
n ξ ∈ O (log (n)) O∼ (nω−1)
−∞
p
0 p = 0
1 + deg p deg p ≥ 0.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 22/168
ξ O∼ (nω−1ξ )
ξ n nω−1ξ nω
O∼ (nω−1)
s =
s/n
O∼(nωs)
n s s O
s
s/n
m × n σ O (mnσ) m ≤ n
O∼ (nωa) a = mσ/n
n − m
O∼
(nω−1
mσ)
O∼
(nω
a)
mσ ∈ o (n) mσ ∈ O (log (n))
O∼ (nω−1mσ) O∼ (nω−1)
n
nmσ ∈ o(n2)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 23/168
mσ ∈ o (n)
O∼ (nω−1mσ)
A ∈ K [x]
m×n
u
v
−v
−u
xuAx−v
deg x−d = −d d ∈ Z>0
xa a
A =
1, x2
u = [1] v = [2, 4] cdegu A = [1, 3] ≤ v
rdeg−v A = [−2] ≤ −u u = [1] v = [1, 1] cdeg u A = [1, 3] v
rdeg−v A = [1] −u
u A ∈ K [x]m×n
v ∈ Zn −v
A −u v B ∈ K [x]n×k
w ∈ Zk u
AB w
x uAx−v xvB− w
x uAx−vxvB− w = x uAB− w
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 24/168
cdeg u AB ≤ w
v
A B ∈ K [x]n×k
AB v
B
u
K [x]n×n K\ 0
K [x]n×n
K [x]n×n
K [x]n×n
A, B ∈ K [x]m×n
A = BU
U
A
B
q = Ap p ∈ K [x]n×1 q = BUp
A ∈ K [x]m×n
K [x]
A
K [x] A
A
A T
T
T
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 25/168
A
AU = [0, T]
T
A = 1 1 + x
x x + x2
T = 1
x
A
A = T [1, 1 + x] [1, 1 + x]
A
T1
T2 A
T1
T2
T1 T2 T1 T2
T1 = T2U T2 = T1V U V T1 = T1VU
T2 = T2UV
UV = VU = I
U
V
A = [x, x2, x2] [1, 2, 2]
B = [x,x,x2] [1, 1, 2]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 26/168
A = [a1, . . . , an] ∈ K [x]m×n
A A
A = lcoeff (A)
= [lcoeff (a1) , . . . , lcoeff (ak)]
= [coeff (a1, cdeg (a1)) , . . . , coeff (ak, cdeg (ak))] .
A
lcoeff (A)
A ∈ K [x]m×n
lcoeff (A)
U
cdeg (AU) < cdeg A
A
A
[d1, . . . , dn] A = lcoeff (A)
i Ai A i − 1
Ai = Aa A A i − 1 A
a = [a1, . . . , ai−1]T ∈ K(i−1)×1
U =
1 −a1xdi−d1
1 −a2xdi−d2
1 −ai−1xdi−di−1
1
1
.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 27/168
B = AU
d1, . . . , di−1, di, di+1, . . . , dn
,
di < di
lcoeff (A) A
A ∈ K [x]
m×n
lcoeff (A)
A
Ap = 0
p ∈ K [x]n×1
a = cdeg A Ap =
Ax−a
·
xap
= 0
Ax−a
·
xap
lcoeff
Ax−a
lcoeff
xap
= 0
lcoeff
Ax−a
= lcoeff (A)
A ∈ K [x]m×n
[0, T] ∈ K [x]m×n
T ∈ K [x]m×r
AU = [0, T]
U T A
[0, T] T
T
F
A ∈ K [x]n×n
cdeg A lcoeff (A) deg det A =
cdeg A
s ∈ Zn deg det A ≤
cdegs A −
s lcoeff
xsA
deg det A =
cdegs A −
s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 28/168
cdeg A
det A
cdeg A
det lcoeff (A)
xsA
[x, x2, x2]
[x,x,x3] [1, 2, 2] [1, 1, 3]
A ∈ K [x]m×n
B ∈ K [x]m×n [A, B] [0, C]
C ∈ K [x]m×n A B
cdeg C ≤ cdeg A cdeg C ≤ cdeg B s,
[A, B] [0, D] D
A B cdegs D ≤ cdegs A
cdegs D ≤ cdegs B
r A
B
C
r
r
[A, B]
xs
F ∈ K [x]m×n
s ∈ Zn
G
F
cdeg G ≤ cdeg(FU)
U s H
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 29/168
F
cdegs G ≤ cdegs(FU)
U
F
A ∈ K [x]m×n cdeg A ≤
cdeg AU
U s ∈ Zn
A ∈ K [x]m×n
s cdegs A ≤ cdegs AU
U
A ∈ K [x]m×n
lcoeff (A) cdeg A = v B ∈ K [x]n×k v
cdegv B = w
cdeg (AB) = w
B xvB− w
AB Ax−vxvB− w = AB− w
xvB− w [0, . . . , 0]
AB− w
[0, . . . , 0]
A ∈ K [x]m×n
A
v = cdeg A
U ∈ K [x]n×n cdegv U ≥
v
cdeg (AU) = cdegv
U ≥ v = cdeg A.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 30/168
A ∈ K [x]m×n
u
lcoeff x uA
A
u
A ∈ K [x]m×n
u
cdeg u A = v B ∈ K [x]n×k v cdegv B =
w cdegu (AB) = w
u
A x uAx−v
x uA
A u cdeg u A = v
B v
AB
K
F ∈ K [[x]]m×n
σ = [σ1, . . . , σm]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 31/168
p ∈ K [x]n×1
(F, σ) σ F
F · p ≡ 0 mod xσ
F · p = xσr =
xσ1
xσm
r
r ∈ K [[x]]m×1 σ = [σ , . . . , σ] σ
p
(F, σ) . (F, σ) K [x]
(F, σ)
F
σ K [x] (F, σ)
P
F
σ
s (F, σ, s) (F, σ)
s σ = [σ , . . . , σ] (F, σ, s)
(F, σ, s)
P
F
σ
s (F, σ, s)
P n s
P
(F, σ) P
(F, σ)
q ∈ (F, σ)
P
P−1q
(F, σ, s)
P
Q
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 32/168
P
P (F, σ, s)
P
n
s
(F, σ)
P
(F, σ) s
q ∈ (F, σ)
P
(F, σ)
s
δ (F, σ, s)
(F, σ, s) s δ
(F, σ, s)δ ⊂ (F, σ) (F, σ)
s δ (F, σ, s)δ
P
P
(F, σ) .
(F, σ, s)δ
P
P
s
(F, σ, s)δ δ n
(F, σ, s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 33/168
F ∈ K [x]m×n
F [x]
p ∈ K [x]n | Fp = 0 .
F
F ∈ K [x]m×n
N ∈ K [x]n×∗
F
N
N
F · N = 0
q ∈ K [x]n
Fq = 0
N
p
q = Np
N
M
F
s F s
F ∈ K [x]m×n
N ∈ K [x]n×∗
s F
N
F
N
s
s F (F, s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 34/168
m × n K
m ≤ n
σ s
O∼(nωa) K ω
a = mσ/n
max(s) − min(s) ∈ O(a)
δ
O∼(nωδ ) δ ≥ a
O∼(nω−1mσ) O∼ (nωa)
n/m σ
x
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 35/168
(F, σ, s) F ∈ K [[x]]m×n
s
σ F
σ − 1
mnσ
log σ
i=0
2i MM(n, 2−iσ) =
log σ
i=0
2−iσ MM(n, 2i)
⊂O
log σi=0
σnω M
2i
2−i
⊂O
nω
log σi=0
M (σ)
=O(nω M(σ)log σ).
2i
≤ σ
M (2i
) 2−i
≤ M (σ) /σ
n
σ
m ∈ Θ (n) m m = 1
nσ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 36/168
(F, σ, s)
min(s) = 0
F = F0 + F1xδ + F2x2δ + · · · + Flxlδ,
deg Fi < δ δ
σ = (l + 1) δ
F =
F0 + F1xδ 0m 0m · · · 0m
F1 + F2xδ Im 0m
F2 + F3xδ 0m Im
Fl−1 + Flxδ Im
ml×(n+m(l−1))
.
F Fi + Fi+1xδ m × n
l × (l − 1) 0m Im m × m
F
ml × (n + m(l − 1))
s = [s, 0, . . . , 0] s
m (l − 1) 0 (F, 2δ, s)
O∼ (nωδ ) δ ≥ a a = mσ/n
F F
F l
m m
(F, 2δ, s)
P (F, σ, s)
P
n (F, 2δ, s)δ−1
P (F, σ, s)δ−1
δ a
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 37/168
F
l
F n/m
δ = Θ (a)
mnσ
m × n
F a = mnσ/n2 = mσ/n F m
F
n δ = Θ (a)
(F, 2δ, s) O∼ (nωa)
a = mσ/n a
mσ > n
σ n/m mσ/n
K = Z2 σ = 8 δ = 2
F = [x+x2+x3+x4+x5+x6, 1+x+x5+x6+x7, 1+x2+x4+x5+x6+x7, 1+x+x3+x7]
1 × 4
F =
x + x2 + x3 1 + x 1 + x2 1 + x + x2 0 0
1 + x + x2 + x3 x3 1 + x2 + x3 x 1 0
1 + x + x2 x + x2 + x3 1 + x + x2 + x3 x3 0 1
3×6
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 38/168
F, 4, 0
P =
1 x 1 x2 + x3 0 x + x2 + x3
0 1 0 x2
x2
+ x3
0
1 1 + x x + x2 x2 x2 x2
1 0 0 0 0 0
0 1 1 0 x2 x + x2 + x3
0 1 1 + x2 0 x2 x + x2
.
P
2 4×2
F, 8, 0
1
(F, 8, 0)
P =
1 x 1 x2
0 1 x2 + x3 0
1 1 + x x x3 + x4
1 0 0 0
.
δ σ/2 = 4
(F, σ, s)δ−1
δ d = mσ/n δ
δ = Θ (σ) (F, σ, s)
O∼ (nωσ)
σ n × n
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 39/168
Θ (σ) O∼ (nωσ)
n2 O (mnσ)
t s (F, σ, s)
t ≤ mσ +
s (F, σ, s) s
nmσ
s
s
(F, 0, s) r
s s
min(s) = 0 deg q ≤ degs q q ∈ K [x]n
s
t ≤ mσ
a = mσ/n
s
s max s − min s ∈ O(a) max s − min s ∈
O(mσ/n)
max s − min s ∈
O(mσ/n)
min s = 0 s max s ∈ O(a)
t
≤ mσ +
(s) ∈ O (mσ + na) = O (mσ)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 40/168
O (a)
(F, σ, s) σ
O (a)
m
d
δ d
δ
2
δ 3/4
i 1/2i
log n
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 41/168
(F, σ, s) σ = 4δ
δ F = F0 +F1xδ +F2x2δ +
F3x3δ deg Fi < δ (F, σ, s)
(F, ω, s)
F =
F 0
F21 F
22
=
F0 + F1xδ + F2x2δ + F3x3δ 0 0
F1 + F2xδ Im 0
F2 + F3xδ 0 Im
ω = [4δ , . . . , 4δ, 2δ , . . . , 2δ ] m 4δ 2m 2δ
s = [s,e, . . . , e] 2m e e 1
e 0
(F, σ, s)τ
(F, ω, s)τ
(F, σ, s) (F, ω, s)
B =
In
x−δF0
x−2δ
F0 + F1xδ
.
q ∈ (F, σ)
Bq ∈ (F , ω)
e = 1
e ≤ 1.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 42/168
FBq =
F0 + F1xδ + F2x2δ + F3x3δ
F0x−δ + F1 + F2xδ
F0x−2δ + F1x−δ + F2 + F3xδ
q ≡ 0 mod x ω.
B Bq
q ∈ (F, σ)
q ∈ (F0, δ )
q ∈
F0 + F1xδ, 2δ
e ≤ 1 deg s Bq
q
q ∈ (F, σ, s)τ τ ∈ Z deg s Bq = degs q
si ≥ 0 deg q ≤ degs q.
2m q2, q3
q
q2
q3
= Bq =
q
x−δF0 · q
x−2δ
F0 + F1xδ
· q
.
dege
qT
2 , qT 3
T ≤ degs q
deg q2 = deg
F0q/xδ
≤ deg q + δ − 1 − δ ≤ degs q − 1,
deg q3 ≤ degs q − 1
dege
q2
q3
= deg
q2
q3
+ e ≤ degs q − 1 + e ≤ degs q.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 43/168
q ∈ (F, σ, s)τ τ ∈ Z
Bq ∈
(F, ω, s)τ
Sτ (F, ω, s)τ
Sτ n
Sτ
τ ∈ Z q ∈ (F, σ, s)τ
Sτ
Bq ∈ (F, ω, s)τ
Sτ u Bq = Sτ u
n q =
[In, 0] Bq = [In, 0] Sτ u = Sτ u
q ∈ (F, ω, s)τ τ ∈ Z q1 n
q
q1 ∈ (F, σ, s)τ
Fq =
F 0
F21 F
22
q1
q2
=
Fq1
F21q1 + F
22q2
≡ 0 mod x ω
Fq1 ≡ 0 mod xσ
(F, ω, s) (F, σ, s)
(F, ω, s) (F, ω, s)
(F, ω, s) (F, σ, s)
P (F, σ, s)
T =
BP
0n×2m
x2δI2m
=
P 0n×m 0n×m
x−δF0 · P x2δIm 0m
x−2δ
F0 + F1xδ
· P 0m x2δIm
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 44/168
(F, ω, s)
T (F, ω)
s P
s
T
q ∈ (F, ω, s)
T
q
n q
q ∈ (F, σ, s)
P
q = Pu
u = P−1q ∈ K [x]n×1
P
q
q = q − BPu = q − Bq =
0
v
,
(F, ω, s)
Fq =
0
I2mv
≡ 0 mod x ω.
v
x2δI2m
T
q = T
uT , vT
T
τ ∈ Z Pτ ∈ K [x]n×t (F, σ, s)τ
q ∈ (F, ω, s)τ
q n
q
q
q = BPτ u + x2δ
0
v
= Bq + x2δ
0
v
u ∈ K [x]t×1
v ∈ K [x]2m×1
deg s q < 2δ q = BPτ u = Bq
s τ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 45/168
S(1)
(F, ω, s)2δ−1 S(1)
n (F, σ, s)2δ−1
S(1) (F, σ) q ∈ (F, σ, s)2δ−1
S(1)
S(1)
s
S(1) = BS(1)
S(1)
(F, σ, s)2δ−1 S(1)
s S(1)
S(1)
s S(1)
s
S(12) = [S(1), S(2)] (F, ω, s)2δ deg s
S(1) ≤ 2δ − 1
deg s S(2) = 2δ
S(12), S(1), S(2) n
S(12), S(1), S(2)
I
S(12)
S(12)I S(12)
I (F, σ, s)2δ
s S(12)
S(1) (F, σ, s)2δ−1 S(2)
s
c S(2) s (F, σ, s)2δ−1
S(1)
c
S(1)
S(12)
s
s S(12) s
S(12)I
S(12)I (F, σ) S(12)
(F, σ)
q ∈ (F, σ, s)2δ S(12)
S
(12)I
S
(12)I
S(12) s
S(12)
xsS(12)
S(12)
s S
(12)I
xsS(12)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 46/168
A = [a1, . . . , ak]
lcoeff (A) = [lcoeff (a1) , . . . , lcoeff (ak)]
= [coeff (a1, deg(a1)) , . . . , coeff (ak, deg(ak))] .
lcoeff(xsS(12))
lcoeff(xsS(12)) =
P SU P S
U
1 I S
S(12)I
S(12)
S = [S(12), S(3)] (F, ω, s) deg s S(12) ≤ 2δ
deg s S(3) ≥ 2δ + 1
S, S(12), S(3) n
S, S(12), S(3)
I S(12)
[S(12)I , S(3)]
S
(F, σ, s)
S
(F, σ)
[S
(12)
I , S
(3)
]
(F, σ)
q ∈ (F, σ, s)
S
q
[S(12)I , S(3)]
[S(12)I , S(3)] s
P
(F, σ, s)
T (F, ω, s)
P
T(3)
T
s 2δ,
P(3)
P
s 2δ.
S, P
T
s
s degs S(3) ≤ deg s S(3) = deg s
T(3) =
degs P(3) s S
(12)I
degs[S(12)I , S(3)] ≤ degs P
[S(12)I , S(3)]
(F, σ, s)
degs[S(12)I , S(3)] = degs P
[S(12)I , S(3)]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 47/168
(F, σ, s)
S (F, ω, s)
s S n
S J
lcoeff(xsS) SJ
S J (F, σ, s)
J lcoeff(xs · S(12))
F
x + x2 + x3 + x4 + x5 + x6 1 + x + x5 + x6 + x7 1 + x2 + x6 + x7 1 + x + x3 + x7 0 0
1 + x + x2 + x3 x3 1 + x2 + x3 x 1 0
1 + x + x2 x + x2 + x3 1 + x + x2 + x3 x3 0 1
F, [8, 4, 4] , 0
1 x 1 x2 x2 + x4 1 + x2 + x3 + x4
0 1 x2 + x3 0 x3 0
1 1 + x x x
3
+ x
4
0 x + x
2
+ x
3
1 0 0 0 0 0
0 1 1 + x2 x2 x2 + x3 1 + x2 + x3 + x4
0 1 1 x2 + x4 x2 + x3 1 + x3
.
4 × 4
(F, 8, 0)
δ = σ/4 n
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 48/168
(F, 2δ, s)δ−1 (F, σ, s)δ−1
F =
F0 + F1xδ 0 0
F1 +
F2x
δ Im
0
F2 + F3xδ 0 Im
≡ F mod x2δ.
q ∈ (F, 2δ, s)δ−1
q n
q
q
q = Bq =
q
x−δF0 · q
x−2δ
F0 + F1xδ
· q
q ∈ (F, σ, s)δ−1
q, q2, q3 n m m
q
Fq ≡
F0q + x
δ
F1q
q2 + F1q + xδF2q
q3 + F2q + xδF3q
≡ 0 mod x2δ.
F0q + xδF1q ≡ 0 mod x2δ
q2 + F1q ≡ 0 mod xδ
F0q ≡ xδ
q2 mod x2δ
.
q2 + F1q + xδF2q ≡ 0 mod x2δ
q3 + F2q ≡ 0 mod xδ q2 + F1q ≡ xδq3 mod x2δ
deg q ≤ degs q = δ − 1 deg F0q ≤ 2δ − 2
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 49/168
deg q2 ≤ δ − 2 q2xδ = F0q
deg q3 ≤ δ − 2 q3x2δ = q2xδ +
F1qxδ = F0q+F1qxδ
Fq = (F0q+F1qxδ)+(F2qx2δ+F3qx3δ)
Fq = q3x2δ + (F2qx2δ + F3qx3δ) ≡ 0 mod x4δ
Sδ−1 (F, 2δ, s)δ−1 n
Sδ−1 (F, σ, s)δ−1
Sδ−1 (F, σ)
ω 2δ q ∈ (F, σ, s)δ−1
Sδ−1
Sδ−1 = BSδ−1
Sδ−1 (F, σ, s)δ−1
Sδ−1
s
Sδ−1
Sδ−1 s
Sδ−1 s
(F, σ, s)
(F(i), 2δ (i), s(i))
F(i) =
F0 + F1xδ(i) 0m · · · · · · 0m
F1 + F2xδ(i) Im
F2 + F3xδ(i) Im
Fl(i)−1 + Fl(i)xδ(i) Im
ml(i)×(n+m(l(i)−1))
δ (i) = 2id i 2 log(σ/d)−1
s(i) = [s, 0, . . . , 0] m(l(i) − 1) l(i) = σ/δ (i) − 1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 50/168
F j = F j0 + F j1δ (i−1)
F(i) =
F00 + F01xδ(i−1)+ F10x2δ(i−1)
+ F11x3δ(i−1)0
F01 + F10xδ(i−1)
F10 + F11xδ(i−1)+ F20x2δ(i−1)
+ F21x3δ(i−1)
F11 + F20xδ(i−1)
I
F(l(i)−1)0 + F(l(i)−1)1xδ(i−1)+ Fl(i)0x2δ(i−1)
+ Fl(i)1x3δ(i−1)
F(l(i)−1)1 + Fl(i)0xδ(i−1)
Fl(i)0 + Fl(i)1xδ(i−1)
,
ω(i) =
[2δ (i)]m, [δ (i)]ml(i)
, [δ (i)]m
[]k
k
2δ (i) δ (i)
ω(i) 2δ (i) − 1 δ (i) − 1
F(i)
E(i) =
In 0n×m 0n×m
0m Im
0m Im
0m Im
l(i)−1 [0m, Im] (n+m(l(i)−1))×(n+
m(l(i−1)
−1))
E
(i)
M
M
n
M
n+m(l(i−1)−
d = mσ/n F F
n × n i 2 i = 1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 51/168
1) i = log(n/m) − 1 (F(i), ω(i), s(i−1)) = (F, ω, s)
d = mσ/n
E(i) = [In, 0n×m, 0n×m] n (F, ω, s)
(F, σ, s)
S(i)
(F(i), ω(i), s(i−1))
s(i−1)
S(i) = E(i)S(i) J
lcoeff(xs(i)S(i))
S(i)J (F(i), 2δ (i), s(i))
F(i)
¯P
(i−1)
1
(¯F
(i−1)
, 2δ (i−1)
, s(i−1)
)δ(i−1)−1
E
(i) ¯P
(i−1)
1
(F(i), 2δ (i), s(i))δ(i−1)−1 n
P(i−1)1
(F, σ, s)δ(i−1)−1
δ (i−1)
F(i)
i = log (n/m) − 1,
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 52/168
O(1)
(F, σ, s)
(F, ω, s)
(F(i), 2δ (i), s(i))
δ (i)
(F(i), ω(i), s(i−1))
(F(i)
, 2δ (i−1)
, s(i−1)
)
(F(i−1), 2δ (i−1), s(i−1))
P(i−1)
δ (i−1) (F(i)P(i−1), ω(i), t(i−1))
Q(i)
F(i)P(i−1)
t(i−1) = degs(i−1) P(i−1)
P(i−1) Q(i)
(F(i), ω(i), s(i−1))
degs(i−1) P(i−1) Q(i) = deg t(i−1)
Q(i)
F ∈ K [x]m×n
σ
s P
(F, σ, s) s
t Q
(FP, τ , t)
t u τ ≥ σ PQ (F, τ , s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 53/168
s u
PQ
(F, τ ) PQ
s
s u xsPQ
u xsP t
P xsPx− t [0, . . . 0]
x tQx− u [0, . . . , 0]
Q xsPx− tx tQx− u = xsPQx− u [0, . . . , 0]
P Q xsPQ
xsPQ u s
PQ
u
t ∈ (F, τ )
PQ
t ∈ (F, σ) (F, σ)
P
t = Pa
a = P−1t ∈ K [x]n t ∈ (F, τ )
a ∈ (FP, τ ) FPa =
Ft ≡ 0 mod xτ a = Qb b = Q−1a ∈ K [x]n
a = P−1t = Qb t = PQb
F, 8, 0
(F(2), 8, 0)
(F(2), [8, 4, 4], 0)
F(2) = F
(F(2), [8, 4, 4], 0)
(F(1), 4, 0)
P(1)
F(2)P(1) =
0 x
8
x6
+ x9
x4
+ x6
+ x9
x6
+ x8
+ x9
+ x10
x5
+ x8
0 0 x5 x4 + x6 x4 + x6 x5 + x6
0 x4 x5 x5 x4 + x5 + x6 x4
t(1) = [0, 1, 2, 3, 3, 3]
P(1)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 54/168
(F(2)P(1), [8, 4, 4] , [0, 1, 2, 3, 3, 3])
Q(2) =
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 x2 x 1
0 0 0 0 x 0
0 0 1 0 0 0
0 0 0 0 1 x
.
P(1) Q(2) (F(2), [8, 4, 4], 0)
P(i−1) =
E(i)P(i−1)
(F(i)P(i−1), 2δ (i), t(i−1)) (F(i)P(i−1), ω(i), t(i−1))
F(i)P(i−1) F(i)P(i−1)
2δ (i−1)
(F(i), 2δ (i), s(i))δ(i−1)−1
P(i−1) s(i−1)
[P(i−1)1 , P
(i−1)2 ] = P(i−1)
degs(i−1) P
(i−1)1 ≤ δ (i−1) − 1
degs(i−1) P
(i−1)2 ≥ δ (i−1)
P(i−1)1 = E(i)P
(i−1)1 (F(i), 2δ (i), s(i))δ(i−1)−1
(F(i), 2δ (i), s(i))
P(i−1)1
P(i−1)2 = E(i)P
(i−1)2
b(i−1) = degs(i−1) P
(i−1)2 Q
(i)2 (F(i)P
(i−1)2 , 2δ (i), b(i−1))
(F(i)P(i−1)2 , ω(i), b(i−1)) k(i−1)
P
(i−1)1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 55/168
Q(i) =
Ik(i−1)
Q(i)2
(F(i)P(i−1), 2δ (i), t(i−1)) (F(i)P(i−1), ω(i), t(i−1))
Q(i) (F(i)P(i−1), 2δ (i))
F(i)P(i−1) Q(i) = [F(i)P(i−1)1 , F(i)P
(i−1)2 Q
(i)2 ] ≡ 0 mod x2δ(i).
Q(i)
t(i−1)
Q(i)2
b
Q(i) (F(i) · P(i−1), 2δ (i), t(i−1))
S = [P(i−1)1 , P
(i−1)2 Q
(i)2 ] I
lcoeff(xs(i)S)
SI (F(i), 2δ (i), s(i))
¯Q
(i)
(F
(i) ¯P
(i−1)
, ω(i)
, t
(i−1)
)
¯P
(i−1) ¯Q
(i)
(F(i), ω(i), s(i−1)) [P(i−1)1 , P
(i−1)2 Q
(i)2 ] = E(i)P(i−1) Q(i)
F(2),
P(1)
Q(2)
P(1) Q(2)
¯F
(2)
1 × 4
F
(2)
ˆP
(1)
2
4 × 4
P(1)
Q(2)2 4 × 4
Q(2)
P(1)2 Q
(2)2
4 × 4
P(1) Q(2)
(F, σ, s) i
log(n/m)−1 (F(i), 2δ (i), s(i)) (F, σ, s) (F(i), 2δ (i), s(i))
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 56/168
[P(i−1)1 , P
(i−1)2 ] = P(i−1) = E(i)P(i−1)
(F(i−1), 2δ (i−1), s(i−1))
P(i−1) (F(i)P
(i−1)2 , 2δ (i), b(i−1))
Q(i)2
(F(i−1), 2δ (i−1), s(i−1))
δ (1) = 2d
log(n/m) − 1
F(i)
log(n/m) − 1
orderBasis
[Q, a] =
orderBasis(G, σ, b) (G, σ, b)
b
a StorjohannTransform
δ (1)
d
F(1)
l(1) (F(1), 2δ (1), s(1))
P(1)
(F(2), 2δ (2), s(2))
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 57/168
l(2) = (l(1) − 1)/2
P(1)
(F(2), 2δ (2), s(2))δ(1)−1
P(1)1
(F(2)P(1)2 , 2δ (2), b(1))
Q(2)
b(1) = degs(1) P
(1)2
[P(1)1 , P
(1)2 Q(2)]
(F(2), 2δ (2), s(2))
P(2)
(F(2), 2δ (2), s(2))
(F(3), 2δ (3), s(3))
(F(i−1), 2δ (i−1), s(i−1)) (F(i), 2δ (i), s(i)) n
(F, σ, s)
(F, σ, s) log(n/m)−
1
i (F(i), 2δ (i), s(i)) i∗ = log(n/m)−
1 σ/2 (F(i∗), 2δ (i∗), s(i∗)) = (F, σ, s)
s = [0, . . . , 0]
(F, σ, s)δ(i)−1
(F(i), 2δ (i), s(i))δ(i)−1 i n − n/2i
n/2i s
max s ∈ O(a) min s = 0 n(i)
i O(n/2i)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 58/168
ca = cmσ/n c
λ
δ (λ)
ca
δ (λ) = 2λa ≥
ca > δ (λ−1) λ = log c
n(i) ≤ n/2i−λ = 2λ(n/2i) ∈ O(n/2i)
i ≥ λ i < λ n(i) ≤ n < 2λ(n/2i) ∈ O(n/2i)
s min(s) = 0
(F, σ, s) O (nω M(a)log σ)) ⊂ O∼ (nωa)
δ (i)
2ia i l(i) σ/δ (i) − 1
σ/(2ia) = n/(2im) i n/2i
i
i P(i−1)2
P(i−1)2
n(i−1) + (l(i−1) − 1)m n(i−1) ∈ O(n/2i)
(l(i−1) − 1)m < n/2i−1 − m < n/2i−1
i O(n/2i)
F(i)
P(i−1)2 O(2ia) O(n/2i)×O (n)
O (n) × O(n/2i) 2i MM(n/2i, 2ia)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 59/168
2i MM(n/2i, 2ia) ∈ O
2i
n/2i
ω
M(2ia)
⊂ O
n
ω 2
i1−ω
M
2i
M(a)
⊂ O
nω
2i1−ω
2iω−1
M(a)
⊂ O (nω M(a)) .
M(st) ∈ O (M(s) M(t))
M(t) ∈ O(tω−1)
P
(i−1)
2
Q(i)
O(2ia) O (n) × O(n/2i) O(n/2i) × O(n/2i)
O (nω M(a))
O(log (n/m)) O (nω M(a)log(n/m))
G(i) = F(i)P
(i−1)2
i O(n/2i) × O(n/2i)
2δ (i) ∈ O(2ia)
i O
(n/2i)ω
M (2ia)log(2ia)
O(log (n/m))
O
∞i=1
n/2i
ωM
2ia
log
2ia
⊂O
∞i=1
n/2i
ωM
2i
log
2i
M (a)log(a)
⊂O ∞
i=1
nω
2i−ω
2i
ω−1 M (a)log(a)
⊂O
nω M (a)log(a)
∞i=1
2−i
⊂O (nω M (a)log(a)) .
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 60/168
O (nω)
O (n
ω
M (a)log(n/m) + n
ω
M (a)log a) = O (n
ω
M (a)log σ))
mσ ∈ o(n)
(F, σ, s) O∼ (nωa)
a = mσ/n
a
mσ > n
m × n σ
Θ(n) × Θ(n) Θ(a) = Θ(mσ/n)
O∼(nωa)
O∼ (nω−1mσ) mσ ∈ o (n)
a = mσ/n ∈ o(1)
1 mσ
O∼(nω)
O∼(nω−1mσ) mσ ∈ o (n)
s
max(s) − min(s) ∈ O (mσ/n) ⊆ o(1) max(s) − min(s) = 0
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 61/168
(F, σ)
F =
F 0
F 1
F 2
F σ−1
∈ K(mσ)×n
F = F 0 + F 1x + F 2x2 + · · · + F σ−1xσ−1
F
K
(F, σ)
F F
K K
F O (nmσrω−2) r ≤ mσ
F P
U Kn×n
F P U
F
P
F r
F
[U 1, U 0] := U U 0
F P U
n − r U 0
r U 1
(FP, σ)
P
(F, σ)
P P U 0 (FP, σ)
FP U 1
U 1 V = [I, 0]T
I r
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 62/168
U 1 P V r F
U 0 n − mσ mσ
U 1 mσ V FP V
(FP V , σ) Q
[V Q, U 0] (FP, σ)
[V, U 0]
I ∗
0 I
∗
r
U 0
(F
P, 0)
FP [V, U 0] = [FP V, 0]
([FP V, 0] , σ)
Q [V, U 0]Q (FP, σ)
Q
(FP V , σ)
Q =
Q
I
([FP V, 0] , σ) [V, U 0]Q = [V Q, U 0] (FP, σ)
(FP V , σ)
mσ (FP V , σ)
O∼ ((mσ)ω) ⊂ O∼ (nω−1mσ)
FP V V Q
P [V Q, U 0] P
V (F, σ)
P [V Q, U 0] O∼ (nω−1mσ)
O∼ (nωd) O∼ (nω−1mσ)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 63/168
(F, σ, s)
O (nω M(mσ/n)log σ)) ⊂ O∼
nω−1mσ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 64/168
fastOrderBasis (F, σ, s)
F ∈ K [x]m×n σ ∈ Z≥0 s ∈ Zn n ≥ m, n/m σ
mσ ∈ Ω(n) min(s) = 0 (F, σ, s)
P ∈ K [x]n×n degs P
2m ≥ n orderBasis (F, σ, s) ; i := 1; d := mσ/n; δ (1) := 2d; F(1) := StorjohannTransform(F, δ (1)); l(1) := rowDimension(F(1))/m;
b(0) := [s, 0, . . . , 0] ; m(l1 − 1) 0
[P(1),a(1)] := orderBasis(F(1), 2δ (1), b(0));
P(i)
a(i)
a(i)
= deg b P(i)
t(i) := a(i); k(i) := a(i)
δ (i)
[P(i)1 , P
(i)2 ] := P(i)
P(i)1 ∈ K [x]n×k(i)
columnDimension(P(i)1 ) < n
i := i + 1; δ (i) := 2δ (i−1); l(i) := (l(i−1) − 1)/2;
F(i) := StorjohannTransform(F, δ (i));
P(i−1)2 := E(i)P
(i−1)2
G(i) := F(i)P(i−1)2 ;
b(i−1)
:= t(i−1)
[k(i−1)
+ 1 . . . n + m(l(i−1)
− 1)]; w := v[k..l]
k l
[Q(i), a(i)] := orderBasis(G(i), 2δ (i), b(i−1)); Q(i)
a(i) a(i) = deg b(i−1) Q(i)
P(i) := P(i−1)2 Q(i);
J := lcoeff(x[s,0,...,0][E(i)P(i−1)1 , P(i)])
P(i) := [E(i)P(i−1)1 , P(i)]J
t(i) := deg[s,0,...,0] P(i)
k(i)
:=
t(i)
δ (i)
[P(i)1 , P(i)
2 ] := P(i)
P(i)1 ∈ K [x]n×k(i)
n
P(i)1
t(i) [1..n]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 65/168
(F, σ, s)
s s
O (mσ)
s
s mσ
σ
s (F, σ, s)
nmσ
s
ni=1(si − min(s)) ∈ O(mσ)
(F, σ, s) O(mσ)
(F, σ, s) s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 66/168
ni=1(max(s) − si) ∈ O(mσ)
s
ni=1
(si − min(s)) ∈ O(mσ).
s ≥ 0
s ∈ O(mσ),
s − min s
s (F, σ, s)
O (nω M(a)log σ)) ⊂ O∼ (nωa)
s (F, σ, s)
t =
s+mσ ∈ O(mσ) s
t
(F, σ, s) O(mσ)
s
ni=1
(max(s) − si) ≤ mσ.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 67/168
s ≤ 0 −
s ≤ mσ,
s − max s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 68/168
(F, σ, s)
s α, β ∈ Z>0
si s −si > α + β
ri = (−si − α − 1, β ) + 1
−si − α β ri = β
0
q i =
1 − si ≤ α + β
1 + (−si − α − ri) /β
q i > 1 i f i
F si
F(i) =
f i, xrif i, xri+βf i, . . . , xri+(qi−2)βf i
, si = [−α − β, . . . , −α − β ]
q i q i = 1
si = si
F(i) = f i
s = [s1, . . . , sn] ∈ Zn≤0
F = [F(1), . . . , F(n)] ∈ K [x]m×n
n
n = n
i=1 q i s −α − β
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 69/168
0
E =
1 xr1 xr1+β · · · xr1+(q1−2)β
1 xrn xrn+β · · · xrn+(qn−2)β
n×n
.
F = FE α =
−1
n =n
i=1
q i ≤ n +n
i=1
−si/β ≤ mσ/β + n.
β ∈ Θ (a) a = mσ/n n ∈ Θ (n)
α ∈ Θ (a)
max s − min s ≤ − min s ≤ α + β ∈ Θ(a).
¯F, σ, s
O∼
(n
ω
a)
F, σ, s
P ∈ K [x]n×n
EP ∈
K [x]n×n EP (F, σ) FEP = FP ≡ 0
mod xσ EP
EP s
−α EP
s −α (F, σ, s) s
−α (F, σ, s)
s =
[0, −3, −5, −6] α = β = 1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 70/168
F =
[x + x2 + x3 + x4 + x5 + x6, 1 + x + x5 + x6 + x7, x + x2 + x6 + x7 + x8,
1 + x2 + x4 + x5 + x6 + x7, x + x3 + x5 + x6 + x7 + x8, x2 + x4 + x6 + x7 + x8 + x9,
x3 + x5 + x7 + x8 + x9 + x10, 1 + x + x3 + x7, x + x2 + x4 + x8,
x2 + x3 + x5 + x9, x3 + x4 + x6 + x10, x4 + x5 + x7 + x11]
12 s = [0, −2, −2, −2, −2, −2, −2, −2, −2, −2, −2, −2]
r1 = r2 = r3 = r4 = 1 q 1 = 1 q 2 = 2 q 3 = 4 q 4 = 5
E =
1 0 0 0 0 0 0 0 0 0 0 0
0 1 x 0 0 0 0 0 0 0 0 0
0 0 0 1 x x2 x3 0 0 0 0 0
0 0 0 0 0 0 0 1 x x2 x3 x4
.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 71/168
(F, 8, s)
P =
0 0 0 0 0 0 0 0 0 0 0 1
x 1 0 0 1 0 x 0 0 0 x 0
0 0 1 0 0 x 1 + x x x x 1 0
x 1 0 1 1 + x 1 x 0 0 0 0 1
x 0 1 1 1 + x 1 + x 1 x x 0 0 0
x 0 0 1 1 + x 1 + x 1 x 0 1 0 0
x 0 0 1 1 0 0 1 0 0 0 0
0 0 0 1 x 1 0 0 0 0 0 1
0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 x 1 1 1 1 0 0
0 0 0 1 0 0 0 0 0 0 0 0
s [−1, −2, −2, −2, −1, −1, −1, −1, −1, −1, −1, 0]
s −α = −1
(F, 8, s) EP =
0 0 0 0 0 0 0 0 0 0 0 1
x 1 x 0 1 x2 x2 x2 x2 x2 0 0
x + x2 + x3 + x4 1 x 1 + x + x2 + x3 1 1 + x + x3 x2 x2 x2 x2 0 1
0 x x2 1 + x3 + x4 x 1 + x4 x3 x3 x3 x3 0 1
(F, 8, s)
P =
0 0 0 1
1 0 0 0
1 x2 + x3 + x4 1 + x + x2 + x3 1
x x2 1 + x3 + x4 1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 72/168
s [−3, −1, −2, 0 ] EP
(F, 8, s)
α = 2, β = 1
P =
0 0 0 0 0 0 0 0 1
1 0 0 x 1 + x x x x 0
1 x2 1 x 1 x x 0 1
0 x2 1 x 1 x 0 1 0
0 x2 1 + x 1 0 1 0 0 0
0 x2 1 0 x 0 0 0 1
1 0 0 0 0 0 0 0 0
0 0 x 1 + x 1 1 1 1 0
0 0 x 1 0 0 0 0 0
s [−3, −1, −2, −2, −2, −2, −2, −2, 0 ]
s −α = −2
(F, 8, s)
EP =
0 0 0 0 0 0 0 0 1
1 0 0 x 1 + x x x x 0
1 x2 + x3 + x4 1 + x + x2 + x3 x 1 + x x x x 1
x x2 1 + x3 + x4 x2 x + x2 x2 x2 x2 1
,
(F, 8, s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 73/168
F, σ, s
s
−α (F, σ, s)
s −α
Ai =
xri
−1 xβ
−1
xβ
−1
qi×(qi−1)
A =
A1
An
n×(n−n)
.
q i = 1 Ai 1 × 0 A
w ∈
F, σ, s
w A
w =
w1
wn
∈ (F, σ, s) wi =
wi,0
wi,qi−1
qi×1
.
u ∈ K [x](n−n)×1
w+Au
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 74/168
w[1] =
w
[1]1
w[1]n
w[1]i =
wi
0
0
qi×1
,
wi = wi,0 + wi,1xri + wi,2xri+β + · · · + wi,qi−1xri+(qi−2)β
w[2]
=
w[2]1
w[2]n
w[2]
i =
wi,0
wi,qi−1
,
deg wi,j < ri ≤ β j = 0 deg wi,j < β j ∈
1, . . . , q i − 2 wi,qi−1
u[1] =
u[1]1
u[1]n
u
[1]i =
wi,1 + wi,2xβ + wi,3x2β + · · · + wi,qi−1x(qi−2)β
wi,2 + wi,3xβ + · · · + wi,qi−1x(qi−3)β
wi,qi−1
.
w + Au[1]
u
[1]i q i = 1
wi =
w[1]i = [ wi,0]
ti,j =
ri j = 0
β j ∈ 1, . . . , q i − 2
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 75/168
wi
wi = wi,0 + wi,1xri + wi,2xri+β + · · · + wi,qi−1xri+(qi−2)β
deg wi,j < ti,j j < q i − 1 wi,j = wi,j deg wi,j
ti,j
v =
v1
vn
vi =
wi,1 + wi,2xβ + wi,3x2β + · · · + wi,qi−1x(qi−2)β
wi,2 + wi,3xβ + · · · + wi,qi−1x(qi−3)β
wi,qi−1
u[2] = u[1] − v
[w, A]
1
u[1] I
1
−v I
= [w, A]
1
u[1] − v I
.
w[2] = w + Au[2]
vi
u[2]i
q i = 1 w[2]i = wi = [ wi,0]
w ∈
F, σ, s
w[2] degs Ew > −α
degs w[2] > −α degs Ew = degs w[2]
i wi Ew
w
[2]i = [wi,0, . . . , wi,qi−1]T
w[2] q i = 1 wi = wi,0 si = s(i)
(i) =
ik=1 q k deg wi + si = deg wi,0 + s(i)
q i > 1 wi deg wi,qi−1 =
deg wi − ri − β (q i − 2) deg wi,qi−1 − α − β = deg wi − ri − α − β (q i − 1)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 76/168
deg wi,qi−1 + s(i) = deg wi + si
degs Ew = maxi
(deg wi + si) = maxi
(deg wi,qi−1 + s(i))
≤ maxi,j
deg wi,j + s(i−1)+ j+1
= degs w[2]
.
j j < q i −1
deg wi,j < β j < q i − 1 deg wi,j + s(i−1)+ j+1 = deg wi,j −
α−β < −α j
degs w[2] degs w[2] > −α degs Ew = maxi(deg wi,qi−1+s(i)) > −α
−α degs w[2]
degs Ew
j = q i − 1
w[1]
w
I = [1, q 1 + 1, . . . ,n−1
k=1 q k + 1] B
n × n 1
(n−1
k=1 q k + 1, i) w[1] = BEw
BEw
Ew
w[2]
w
w ∈
F, σ, s
w[2] degs Ew >
−α degs w[2] > −α
w ∈ F, σ, s degs Ew ≤ degs w
i wi Ew
wi = [ wi,0, . . . , wi,qi−1]T
w
q i = 1 deg wi + si = deg wi,0 + s(i)
q i > 1 wi
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 77/168
−α − β wi = wi,0 + wi,1xri + wi,2xri+β + · · · + wi,qi−1xri+(qi−2)β,
deg wi
=max deg wi,0, deg wi,1 + ri, deg wi,2 + ri + β, . . . , deg wi,qi−2 + ri + (q i − 2)β .
deg wi + si = deg wi − ri − α − β (q i − 1)
= max deg wi,0 − ri − α − β (q i − 1), deg wi,1 − α − β (q i − 1), . . . ,
. . . , deg wi,qi−2 − α − β
≤ max deg wi,0 − α − β, deg wi,1 − α − β, . . . , deg wi,qi−2 − α − β ,
degs Ew ≤ degs w
P = [P1, P2]
F, σ, s
degs
P1 ≤ −α
degs P2 > −α
P[2]2 P2 degs
P2 = degs P
[2]2 =
degs EP2 [P1, P[2]2 ] (F, σ, s)
p
P2 degs p > −α,
degs p[2] = degs Ep ≤ degs p.
p
P
p[2]
P
P
p
p[2]
F, σ, s
p[2]
= p + Au
P1
A s
−α
P1
P
(F, σ, s) [BP, A]
F, σ, s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 78/168
w ∈
F, σ, s
A
w[1] = w + Au[1] = BEw,
Ew ∈ (F, σ, s)
P
w = w [1] − Au[1] = BEw − Au[1] = BPv − Au[1] = [BP, A] [v, −u[1]]T .
A
BP
BP
−1
A
P
F, σ, s
EP (F, σ, s)
w ∈ (F, σ, s)
u ∈ K [x]n×1
w = EPu
(F, σ, s) P BP (F, σ, s)
P BP = PU U ∈ K[x]n×n EBP = P
EP
P = EPU
w ∈ (F, σ, s)
w = Pv
v ∈ K[x]n×1
w = EPUv
P = [P1, P2]
F, σ, s
degs
P1 ≤ −α
degs P2 > −α
EP2 (F, σ, s)
s −α
[P1, EP2] (F, σ, s) (F, σ, s)−α
P1 EP (F, σ)
FP = FEP
P
F, σ
EP (F, σ, s) EP1 s
−α
P1
P1, EP2
(F, σ, s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 79/168
s EP2
[P1, EP2] [P1, P2]
P2
s EP2
P2
EP2
s
i s i
P2 s
i EP2 [BP1, BEP2] [BP1, BP2]
[BP1, BEP2, A] [BP1, BP2, A] [BP1, BP2, A]
(F, σ, s)
P = [P1, P2]
[P1, P[2]2 , A]
P[2]2
BP2 [P1, P[2]2 ]
A F, σ, s−α
P1
P[2]2
s
P2 w
P2 s
w EP2
w
P2 degs w = degs w
w[2] Bw
P[2]2
w
P2 degs w[2] ≤ −α degs w[2] = degs w
Ew[2] = E(Bw + Au) = w degs w[2] < degs w
degs w
−α degs w [P1, P
[2]2 ]
F, σ, s
s
P
P
(F, σ, s)
F, σ, s
(F, σ, s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 80/168
F, σ, s
(F, σ, s)
F
s
I si s
si ≤ −α FI
F I (FI , σ, s)−α
P1 (F, σ, s)−α
PT
1 , 0T
p ∈ K [x]n×1
degs p ≤ −α i
si ≤ −α pi p
pi = 0
s p si > −α
s p −α
(F, σ, s)−α
F
α = β = 1
(F, 8, s) s 0 −α =
−1 (F, σ, s)−1
s = [0, −3, −5, −6] 0 > −α (F, 8, s)
P F
s c
1 (F, σ, s)−ca n/c
a = mσ/n ≥ −n
i=1 si/n
n/c s −ca
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 81/168
(F, σ, s)−cd
−ca
n/c n/c
α β
−α
F
−α α
β
s (F, σ, s)
O (nω M(a)log σ) ⊂ O∼(nωa)
α1 = β 1 = 2a a = mσ/n ≥ −n
i=1 si/n
s(1)
F1 O (n) (F, σ, s)
s −α1 = −2a
n/2
n/2
F
F2 n2 ≤ n/2 s(2) n2
a2 = mσ/n2
α2 β 2 2a2
α2 = 2mσ/n2 ≥ −2n
i=1
si/n2 ≥ −2n2i=1
s(2)i /n2,
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 82/168
n3 F3 n2/2
F2, σ, s(2)
−α1
O (nω2 M(a2)log σ) a2
F2
O (n2)
i
αi = β i = 2ai = 2mσ/ni
ai O (ni)
Fi, σ, s(i)
−αi−1
O (nωi M (ai)log σ) ⊂ O
2−in
ωM
2ia
log σ
⊂ O
2−inω
M
2i
M (a)log σ
⊂ O 2−inω 2iω−1M (a)log σ
⊂ O
2−inω M(a)log σ
.
αi = 2mσ/ni ≥ −2n
i=1
si/ni ≥ −2
nii=1
s(i)i /ni,
ni+1
i
n/2
i
(F
, σ, s)
ni Fi
m
(F, σ, s) log(n/m)
O
log(n/m)
i=1
2−inω M(a)log σ = O
nω M(a)log σ
log(n/m)
i=1
2−i
⊂ O (nω M(a)log σ)
ni=1 −si ∈
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 83/168
unbalancedFastOrderBasis (F, σ, s)
F ∈ K [x]m×n σ ∈ Z≥0 s
P ∈ K [x]n×n
(F, σ, s)
TransformUnbalanced
fastOrderBasis
i := 1; P = [ ]
F(i) := F s(i) := s
columnDimension(P) = n
di =
mσ/ columnDimension(F(i))
αi := β i := 2di;
F(i), s(i), E
:= TransformUnbalanced
F(i), s(i), αi, β i
P(i) := fastOrderBasis F(i), σ, s(i)
P(i)
EP(i)
si
(−αi, −αi−1]
P :=
P(i), P
I i si ≤ −αi
F(i+1) := F(i)I s(i+1) := s
(i)I
i := i + 1
P
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 84/168
O (mσ)
ni=1 −si ≤ cmσ c (F, σ, s)
αi = β i = 2cmσ/ni i
i
O∼ (nωa)
log(n/m)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 85/168
σ (F, σ, s) P
P
s
N
σ
F
d s
md σ
d + md
(F, d + md)
O∼ (nω−1m2d)
m
m ∈ Θ (n) O∼ (nω+1d)
m
n − m
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 86/168
m n
s F
s ≥ cdeg F
s
F
s
F
F s = [s1, . . . , sn]
s
ρ = nn−m+1 si m s s = ρ/m
s
N
O∼(nωs)
s = [s , . . . , s] O∼ (nω−1ms)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 87/168
ξ =
s =
ni=1 si,
(F, σ, s) s
F
(F, σ, s) σ
s F
P = [P1, P2] (F, σ, s) N = [N1, N2]
s F
P1
N1 P
N
s σ [P1, N2] s
F
[N1, P2] (F, σ, s)
p
P1 deg Fp ≤ degs p < σ
Fp ≡ 0 mod xσ
Fp = 0
P1
N1
P1 = N1U
U
N1
(F, σ) N1 = P1V
V P1 = P1VU N1 = N1UV U V
P1
N1 s
s F
F ∈ K [x]
m×n
s ∈ Zn
≥0
F
s
s F
ξ =
s
P (F, σ, s) σ P =
N, N
N
F
σ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 88/168
s s F
r
N
F
s P
ξ + rσ
s
N
F · N rσ FN
σ s N
ξ + rσ − rσ = ξ
F ∈ K [x]m×n
d
md
nd ≥
cdeg[d,...d]
N ≥ (n − m)d +
cdeg N,
cdeg N ≤ nd − (n − m)d = md.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 89/168
(F, 3s, s) P
O∼ (nωs) s
O∼ (nω−1ms)
3m2
P
F
3s
s > 1
(F, s, s)
> 1 O
P = [P1, P2] (F, σ, s) σ > s P1
n
P
Fn = 0
= σ/s
κ
P2
m(−1)
.
p
P2 σ
Fp = 0
Fp
σ p
s
σ s P2
degs P2 ≥ κσ. s
P
degs
P ≤
s + mσ,
s P1
degs P1 =
degs P −
degs P2 ≤
s + mσ − κσ.
degs P1
n−κi=1 si
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 90/168
n − κ s P1 = [I, 0]T
s + mσ − κσ ≥
n−κi=1
si,
mσ ≥ κσ −
s −
n−κi=1
si
.
κ ≥ m κ
s m s
s −
n−κi=1
si
/κ ≤ s,
s −
n−κi=1
si ≤ κs,
mσ ≥ κσ − κs, κ ≤ mσ/(σ − s) σ > s
σ = s κ ≤ m(−1)
[P1, P2] = P
P1
FP = [0, FP2]
FP2
F P2
FP2 Θ(ξ )
F
FP2 s
P2 O(ξ )
t = ξ/m s m s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 91/168
A ∈ K [x]m×n
m ≤ n s ∈ Zn
A
ξ s B ∈
K [x]n×k k ∈ O (m) θ s θ ∈ O (ξ )
A
B
O∼(nmω−1t)
FP2
F P2 O∼(nmω−1t)
P = [P1, P2] (F, 3s, s)
s P2
degs P2 ≤ 3sm + ξ ≤ 4ξ
FP2
P = [P1, P2] (F, σ, s) P1
F
P
b = [ b1, b2] s P
b1, b2 s P1, P2
Q
b2
FP2 b2 b2 [P1, P2Q] s
F
s [ b1, b2]
Q = ([I, Q]) I
P1.
Q
b FP
FPQ = [FP1, FP2Q] =
0 PQ = [P1, P2Q]
F
PQ
s s [ b1, b2] xsPQ
[ b1, b2] xsP [ b1, b2]
P xsPx−[ b1, b2]
[0, . . . 0]
xξ
x b2Qx−
b2 [0, . . . , 0] x[ b1, b2]Qx−[ b1, b2]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 92/168
[0, . . . , 0] Q
xsPx−[ b1, b2]x[ b1, b2]Qx−[ b1, b2] = xsPQx−[ b1, b2]
[0, . . . , 0] P Q
xsPQ
[ b1, b2]
s
PQ [ b1, b2]
n
Fn = 0
PQ
n ∈ (F, σ)
(F, σ) P
n = Pa
a = P−1n ∈ K [x]n
Fn = 0 FPa = 0
a = Qb
b Q
FP
n = PQb
F
x + x2 + x3 1 + x 0 1 + x
1 + x2 + x3 x + x2 + x3 x + x2 x3
∈ Z2 [x]2×4 .
σ = 3
s = [3, 3, 3, 3]
(F, σ, s)
P =
0 0 x2 x
1 0 0 x2
1 x2 x + x2 1 + x
1 0 0 0
,
s
b = [3, 5, 5, 5]
FP =
0 0 x3 + x4 + x5 x4
0 x3 + x4 x5 x3 + x5
.
P1 = [0, 1, 1, 1]T
s 3
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 93/168
P2
P
b2 = [5, 5, 5]
s
b2 FP2
Q = [1 + x + x
4
, x + x
2
, 1 + x
3
]
T
b2
[P1, P2Q] =
0 x + x3
1 x2 + x5
1 1 + x + x6
1 0
s F
s [3, 9]
s P2Q
FP2
b2 Q
FP2
P2Q
P2
Q O∼ (nmω−1t)
P2 n × O(m)
Q
O (m) × O (m) P2 s
b2 P2 s
b2 ≤ 4ξ
FP2
s
b2
P2
b2
Q
b2 ≤ 4ξ P2 n/m
m
Q
O (m) × O (m)
P2
b2
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 94/168
Q
4ξ O∼(mωt)
t = ξ/m n/m O∼ (nmω−1t)
b2 FP2
FP2 σ
G = FP2/xσ
F
G
s
(F, σ, s) s
s
b
b−[σ , . . . , σ] = [b1 − σ, . . . , bn − σ]
s
(F, 0, s) 0 s s
s
x
σ s σ
FP/xσ s
FP
b s P
FP/xσ
b − [σ , . . . , σ]
FP2/xσ
t
b − [σ , . . . , σ]
s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 95/168
FP2 =
0 x3 + x4 + x5 x4
x3 + x4 x5 x3 + x5
[5, 5, 5]
F
G = FP2/x3 =
0 1 + x + x2 x
1 + x x2 1 + x2
[2, 2, 2] G
G
[2, 2, 2]
[3, 3, 3] s
t G = FP2/x3s
m 3m/2
G
t t
s
t G
G =
G1
G2
G1
m/2
G2 m/2
t
N1
G1 N1
t u u
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 96/168
N2
G2N1 N1N2
t
G
G = GT 1 , GT
2 T
∈ K [x]m×n
t ∈ Zn N1
t G1
t u N2 u
G2N1 u v
N1N2
t
G
t v
GN1N2 = 0 N1N2
G
N1N2
t
t v x tN1N2
x tN1 u
N 1 x tN1x− u [0, . . . , 0]
xξ xuN2xv
[0, . . . , 0] N 2
x tN1x− ux uN2x−v = x tN1N2x−v [0, . . . , 0]
N 1N 2 x tN1N2
v
t N1N2 v
n
Gn = 0
N1N2
n = N1a
a
N1 G1
Gn = 0 G2N1a = 0
a = N2b
b
N2
G2N1 n = N1N2b
t
G =
0 1 + x + x2 x
1 + x x2 1 + x2
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 97/168
t = [2, 2, 2]
G1 =
0 1 + x + x2 x
G2 =
1 + x x2 1 + x2
.
t N1
G1
N1 =
1 0
0 x
0 1 + x + x2
t u = [2, 4] u
N2 G2N1 =
1 + x 1 + x + x4
N2 = [1 + x + x4, 1 + x]T .
N1N2 = [1 + x + x4, x + x2, 1 + x3]T
t G
G2N1
N1N2
t = ξ/m
t
G2
N1 O∼(mωt)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 98/168
N1
N2 O∼(mωt)
N1
t N1 u ≤ ξ
u N2 ξ
N1
N2
N1
G1
m/2 × (3m/2) N2
G2N1 m/2 × (3m/2) G1
t
t ≤ ξ G2N1
u
u ≤ ξ
s
ξ s
A ∈ K [x]m×n
B ∈ K [x]n×k
A
s B k ∈ O (m)
θ s θ ∈ O (ξ )
O∼(nmω−1t) t = ξ/m
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 99/168
minimalKernelBasis (F, s)
F ∈ K [x]m×n
s = [s1, . . . , sn] ∈ Zn
F
s F
ξ := ni=1 si ρ := n
i=n−m+1 si; s := ρ/m
P, b
:= orderBasis (F, 3s, s) (F, 3s, s) P
s
b
b
[P1, P2] := P P1 p P Fp = 0
m = 1
P1
t := degs P2 − [3s, 3s , . . . , 3s] ; G := FP2/x3s
GT
1, GT
2T
:= G
G1
m/2
G
2
m/2
N1 := minimalKernelBasis
G1, t
; N2 := minimalKernelBasis (G2N1, cdeg t N1) ;
Q := N1N2
[P1, P2Q]
m 2
F
B
log m
s
t = ξ/m = ns/m
B =
B(log m) B(log m−1) · · · B(2) B(1)
,
B(log m)
B(log m−1), B(log m−2)
B(2)
B(1)
s
[0, 2t] (2t, 4t] (4t, 8t] (tm/4,tm/2] (tm/2, θ]
A B(i)
A log m B(i)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 100/168
log m s
s =
slog m slog m−1 · · · s1
A =
Alog m Alog m−1 · · · A1
B =
B(log m) B(log m−1) · · · B(1)
=
B(log m)log m B
(log m−1)log m · · · B
(1)log m
B(log m)1 B
(log m−1)1 · · · B
(1)1
slog m, slog m−1, . . . , s1 [0, 2t] (2t, 4t] (4t, 8t]
(tm/2, tm] A j
B(i) j s j j 1 log m
B
(i)( j) i > j s j > tm/2 j ≥ tm/2i−1
s B(i)
tm/2i−1
s B(i)
tm/2i−1 i > 1
B
B =
B(log m)log m B
(log m−1)log m · · · B
(1)log m
B(log m−1)log m−1
B(1)1
AB(1) =
Alog m · · · A1
B(1)log m
B(1)1
.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 101/168
O (1) B(1)
θ ∈ O (ξ ) log m
j j 1 log m A j
B(1) j
A j
B(1) j 2 j
B(1) j
O (ξ )
B(1) j
B(1) j
δ ∈ Θ(tm/2 j) q ∈ O(2 j)
B(1) j = B
(1) j,0 + B
(1) j,1 xδ + · · · + B
(1) j,q−1xδ(q−1) =
q−1k=0
B(1) j,k xδk
B
(1) j,k δ.
B(1) j =
B(1)
j,0 , B(1) j,1 , . . . , B(1)
j,q−1
.
A j m × O(2 j) j < log m
B(1) j
O(2 j) × O(2 j) j < log m
O∼
(m/2 j)
2 jω
tm/2 j
= O∼
2 jω−2
m2t
⊂ O
∼
(m
ω
t) .
j = log m A j m × O (n)
B(1) j O (n) × O(m)
O (t) O∼ ((n/m)mωt) =
O∼ (nmω−1t) A j B
(1) j A jB
(1) j O(m2t)
A
B(1)
log(m)
O∼ (mωt) + O∼
nmω−1t
+ O(m2t) = O∼
nmω−1t
.
A
B(2)
A1B
(2)1
B(2)1 = 0
A
B(2)
O∼ (nmω−1t) .
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 102/168
O∼ (nmω−1t) A
B(i)
i 1 log m B
(i)( j) = 0 j > i
i log m O∼ (nmω−1t) A
B
n
m
n ∈ O (m) O∼ (mωs)
m 2
F O∼ (nωs) = O∼ (mωs)
O∼ (nmω−1t) = O∼ (mωs)
O∼ (mωt) =
O∼ (mωs) g(m)
g(m) ∈ O∼(mωs) + g(m/2) + g(m/2),
g(1) ∈ O∼ (s)
m = 1. g(m) ∈ O∼(mωs)
n
m
O∼ (nωs)
O∼ (nωs)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 103/168
O (m)
O∼ (mωt) ⊂ O∼ (nωs) t = ξ/m ≤ ns/m
s = [s , . . . , s]
O∼ (nω−1ms)
F
P2
P2 Q
O∼ (nmω−1s)
F s F
P2 O∼ (nmω−1s)
P2 (F, 3s, s) 3s
n × O (m) F P2
(n/m)O∼ (mωs) = O∼ (nmω−1s)
F
s P2
Q
O∼ (nmω−1s)
Q
O (m) × O (m) t
G = FP2/x3s
m × O (m)
t Q
t
O (ms)
t O (m) s
P2
3s
n × O (m)
Q
O (log m) [0, 2s] , (2s, 4s], (4s, 8s], . . . P2
O (log m)
(n/m)O∼ (mωs) = O∼ (nmω−1s)
s = [s , . . . , s] O∼ (nω−1ms)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 104/168
O∼ (nω−1ms) ,
F
P2 O∼ (nmω−1s)
O (m)
t
FP2/x3s
O∼ (mωs)
O∼ (nω−1ms)
F
d
F O∼ (nω−1md)
s [d , . . . , d]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 105/168
n × n
d
O∼ (n3d)
O∼ (n3d)
ξ
s = ξ/n
O∼ (n3s)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 106/168
inverse(F, s)
F ∈ K [x]n×n
s F
A =
A1, . . . , Alog n
, B
A1, . . . , Alog n, B ∈ K [x]n×n
A1 . . . Alog nB−1 = F−1
F
F
FT 1 , FT 2
:= FT
F1 n/2 F
F = 0
n = 1 1, F
N1 := minimalKernelBasis (F1, s) N2 := minimalKernelBasis (F2, s)
columnDimension(N1) = n/2 columnDimension(N2) = n/2
R1 := F1N2 R2 := F2N1
A(1), H1
:= inverse(R1, cdegs N2)
A(2), H2
:= inverse(R2, cdegs N1)
A :=
[N2, N1] , (A(1)1 , A
(2)1 ), . . . , (A
(1)log n−1, A
(2)log n−1)
A, ([H1, H2])
A1, . . . , Alog n, B
A1 . . . Alog nB−1 = F−1
A, B AB−1 = F−1
A = A1 . . . Alog n O∼ (n3s)
A1, . . . , Alog n, B
O(n2s log n)
A = A1 . . . Alog n
O(n
3
s)
O∼(nωs)
R1 := F1N2
R2 := F2N1
O∼(nωs)
s N1
N2 ξ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 107/168
O∼ (nωs)
F ∈ K [x]n×n
g(n)
g(n) ∈ O∼(nωs) + g(n/2) + g(n/2)
∈ O∼(nωs) + 2g(n/2)
∈ O∼(nωs).
n/2
n/2
n
2 [n/2 , n/4 , . . . , 1]
[n/2, n/4, . . . , 1] n
2 n n = 2log2 n
A = A1 . . . Alog n
O∼(n3s)
Ai i ≤ log n 2i
Ai Ai+1
A1 = [N2, N1]
A2 =
N
2 N1
M2 M
1
,
N
1, N2
F1, F
2
R1 =
F
1
F2
= F1N2.
A1 A2 N2 A1
[N2, N
1] A2 s s
N2 s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 108/168
F
s ≤
s = ξ
R1 = F1N2
s s N2
R1
ξ
s
N1
N2 ξ N2
[N2, N
1] O∼ (nωs) s
N2 [N
2, N1] s [N
2, N1]
s N2 [N
2, N1] = [N2N
2, N2N1]
ξ N1
A2
N2 [N2, N
1]
A1A2 O∼ (nωs) s
A1A2 = [N2N
2, N2N1, N1M
2, N1M1] ξ
A1A2
A3 A3
N2N
2 A1A2
[N”2, N”1] A3 s” s
N2 s N2N
2 s” ≤ s ≤ s = ξ
s” N”2
ξ N2N
2
N”2
A1A2A3 s
ξ
A1 · · · Ai Ai+1 i i
log n
2i
A1 · · · Ai
n × O(n/2i
)
O(2i) Ai+1 O(n/2i)×O(n/2i)
O n/2i u j
j Ai+1 s
j A1 · · · Ai u j
u j ≤ ξ u
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 109/168
j Ai+1 2ξ
ξ A1 · · · Ai
Ai+1 O∼
2i2i (n/2i)
ω−12iu
= O∼
(2i)
3−ωnωs
u = ξ/2i = ns/2i
ω = 3,
O∼ (n3s)
O∼ (nωs)
O (n2s log n)
H
F−1
F−1 = AB−1
H
A
F−1 = A1A2 · · · Alog nB−1
HF−1 =
HA1A2 · · · Alog nB−1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 110/168
m = 1
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 111/168
F ∈ K [x]m×n
n ≥ m s
F
O∼ (nmω−1s) K s
F
F ∈ K [x]m×n
s
s
F ∈ K [x]m×n
U
FU =
[0, T] T
U
U = [UL, UR] UL F FUR = T
F UL N F
[N, UR]
F [0, T]
T F
UL F FUL = 0 UL
N
UL = NC
C
r
F
T
UR N
UL
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 112/168
n − r C
(n − r) × (n − r)
U
U = [NC, UR] = [N, UR]C
I
,
[N, UR]
C
I
C
UL = NC
[N, UR] F [0, T]
U = [UL, UR]
UL
UR V =
VU
VD
VU
UL
VU =VU
VD
UL, UR
=VU UL VU UR
VDUL VDUR
=I 0
0 I
.
VU UL = I
VU UL
VDUR = I
VD
UR VD
UL
VU UR
F
VU VD UT L UT R
F
N F G
N
G
F
F = TG
T ∈ K [x]m×r
T
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 113/168
F ∈ K [x]m×n
N ∈ K [x]n×(n−r)
F
G ∈ K [x]r×n
N
r F
F = TG
T ∈ K [x]m×r
T
F
U =
UL, UR
F
B ∈ K [x]m×r
F
UL
F
FU = [0, B]
F = [0, B] U−1 = B [0, I ] V = BVD
VD
UL G
UL VD VD = WG
W F = BWG BW = T F
B
F
(F, s) N
NT , −s
GT
T
F
G
F =
x2 x2 x + x2 1 + x2
1 + x + x2 x2 1 + x2 1 + x2
.
N =
x 1
1 x
x 1
0 x
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 114/168
F
G =
1 0 1 0
x x2
0 1 + x2
N
T =
x + x2 1
1 + x2 1
F = TG F
NT , −s
GT
NT
(F, s) N
N NT G
F
NT , −s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 115/168
A ∈ K [x]m×n
u rdeg u A ≤ v
cdeg−v A ≤ −u P = [P1, P2] (A, v + 1, −u)
Q = [Q1, Q2] (A, −u) P1
Q1
P
Q
−u
0
[P1, Q2] (A, −u) [Q1, P2] (A, v + 1, −u)
cdeg−v AP1 ≤ cdeg− u P1 ≤ 0 rdeg AP1 ≤ v
v AP1 = 0
(F, s)
0
N (F, s) cdegs N = b P = [P1, P2]
NT , b + 1, −s P1
p cdeg−s p ≤ 0
P1 (NT , −s)
F r (NT , −s)
GT
F
G
N
F
G
−s
G
r −s F
0 cdeg F ≤ s
(NT , −s) GT
cdeg−s GT ≤ 0
NT , −s
N N = [N1, N2] s
b1
b2
NT
1 , −s
Q1
−s −s2
NT
2 Q1, −s2
Q2 Q1Q2
NT , −s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 116/168
Q1
Q2
N N = [N1, N2] s
b1
b2
NT
1 , b1 + 1, −s
NT
1 , −s
−s
Q1
−s2 = cdeg−s Q1
NT
2 Q1, b2 + 1, −s2
NT
2 Q1, −s2
Q2 −s
Q1Q2
NT , −s
NT 1 , b1 + 1, −s NT
1 , −s
−s cdeg−s Q1 ≤ 0
NT
1 , −s
Q1
Q2
Q1Q2 = G
NT , −s
G
G
NT
1 G = 0
NT
1 , −s
Q1 cdeg−s Q1 0 cdeg−s
Q1
Q2
= cdeg−s
G 0
cdeg−s GT ≤ 0
NT 2 Q1, b2 + 1, −s2
NT 2 Q1, −s2
−s
cdeg−s2Q2 ≤ 0
NT
2 Q1, −s2
Q2
cdegs N2 = b2 rdeg− b2N2 ≤ −s cdeg− b2
NT 2 ≤ −s.
cdeg−s Q1 = −s2 cdeg− b2NT
2 Q1 ≤ −s2
G = Q1
Q2
NT , −s
cdeg−s2
Q2 = cdeg−s Q1 Q2 = cdeg−s
G ≤ 0
NT , −s
b + 1 s
NT
1
s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 117/168
minimaKernelBasisReversed(M, s, ξ )
M ∈ K [x]k×n s ∈ Zn
≥0
rdegs M ≤ ξ
s ≤ ξ
(M, −s) s
−s
G ∈ K [x]n×∗ (M, −s)
MT
1 , MT 2 , · · · , MT
log k−1, MT log k
:= MT
Mlog k, Mlog k−1, · · · , M2, M1
s
0, 2ξ
k
, ( 2ξ
k , 4ξk ],..., ( ξ
4 , ξ2 ], ( ξ
2 , ξ ]. i 1 log k
σi :=
ξ2i−1 + 1, . . . , ξ
2i−1 + 1
Mi;
σ := [σ1, σ2, . . . , σlog k]
N := xσ− b−1M; G0 := I n
G0 := I n; i 1 log k
si := − cdeg−s Gi−1; s1 = s
Pi := unbalancedFastOrderBasis
Ni Gi−1, σi, −si
[Gi, Qi] := Pi Ni
Mi, −si
Gi := Gi−1 · Gi;
Gi
NT
s
k N
ξ
s
cdegs N = b ≤
s ≤ ξ k/c N s
cξ/k c ≥ 1
NT
s NT
log k s
N s
N = [N1, N2, · · · , Nlog k−1, Nlog k]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 118/168
Nlog k, Nlog k−1, . . . , N2, N1 s [0, 2ξ/k]
(2ξ/k, 4ξ/k], (4ξ/k, 8ξ/k], ..., (ξ/4, ξ/2], (ξ/2, ξ ].
σi =
ξ/2
i−1
+ 1, . . . , ξ /2
i−1
+ 1
Ni
σ = [σlog k, σlog k−1, . . . , σ1]
NT
N =
N1
Nlog k
= xσ− b−1
NT 1
NT log k
= xσ− b−1NT
N, σ, −s
N
T
, b + 1, −s
NT , −s
s1 = s
N1, σ1, −s1
P1 = [G1, Q1] G1
N1, −s1
G1 = G1 s2 = − cdeg−s G1
N2
G1, σ2, −s2
P2 = [G2, Q2] s3 = − cdeg−s2
G2
G2 = G1G2
i
Ni
Gi−1, σi, −si
Pi =
[Gi, Qi]
Gi = i
j=1 Gi = Gi−1Gi
Glog k
NT , −s
NT , −s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 119/168
Ni
Gi−1
Gi−1Gi s = ξ/n
Ni
Gi−1, σi, −si
O∼ (nωs)
Ni
2i
cdeg
s
Ni > 2iξ/2i = ξ,
cdeg
s
N =
b ≤
s ≤ ξ.
Ni
Ni Gi−1 2i
σi = [ξ/2i−1 + 1, . . . , ξ /2i−1 + 1] Θ (ξ/2i)
O∼ (nωs)
Ni
Gi−1 O∼ (nωs)
Ni 2i−1 ×n
rdegs
Ni ≤ 2i−1 ·ξ/2i−1 =
ξ cdeg−s Gi−1 ≤ 0 rdeg Gi−1 ≤ s
GT i−1
NT i
O∼ (nωs)
Gi−1Gi O∼ (nωs)
cdeg−s Gi−1 = −si cdeg−si
Gi = −si+1 ≤ 0.
rdeg Gi ≤ si rdegsiGi−1 ≤ s
GT i
GT i−1 O∼ (nωs)
M ∈ K [x]
k×n
s ∈ Zn
ξ ∈ Z
•
rdegs M ≤ ξ
•
s ≤ ξ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 120/168
• (M, −s) s
−s
O∼ (nωs) (M, −s)
ξ
s
G F = TG T
O∼ (nωs)
G
F
T F = TG T
T
t = − rdeg−s G
G
−s rdeg−s F ≤ 0 rdeg− t T ≤ 0
T
t
t = − rdeg−s G r cdeg T
s r s
t ≤ s
G −s G G”
G
s” s
G”
G rdeg−s” G” = − t”
− t − t”
−s”
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 121/168
− t” ≥ −s”
t
t” s
s
T
T
t =
0, . . . , 0, t
∈ Zm+r
FT , GT
, − t
V
T
V ∈ Km×m
TV −1
T
F
−I
TT
FT , GT
−I
TT
U =
V
T
U V = −U
T =
TV −1
T
− t V
FT , GT
, − t
I
FT , GT , − t
FT , GT
, s + 1, − t
FT , GT
, − t
− t
FT , GT
, − t
− t
rdeg− t I
TT
≤ 0
F =
x2 x2 x + x2 1 + x2
1 + x + x2 x2 1 + x2 1 + x2
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 122/168
G =
1 0 1 0
x x2 0 1 + x2
F
T
F = TG
cdeg T ≤ t = [2, 0]
0, 0, − t
F
G
V, T =
1 0 x + x2 1
1 1 1 + x 0
T = V −1T =
x + x2 1
1 + x2 1
.
FT , GT
, − t∗
FT , GT
, − t∗
O∼ (nωs) s = ξ/n F
FT , GT
, t∗, ξ
•
rdeg t∗
FT , GT
≤ ξ
t = − rdeg−s G
cdeg t G ≤ s rdeg t GT ≤ s
rdeg FT ≤ s rdeg t∗
FT , GT
≤ s
•
t∗ ≤ ξ
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 123/168
colBasis(F)
F ∈ K [x]m×n
F
s := cdeg F
N := minimalKernelBasis (F, s)
G :=
minimaKernelBasisReversed(NT , s)
T
t :=
0, . . . , 0, − rdeg−s G
rowDimension(G)
V T , TT
T := minimaKernelBasisReversed(
FT , GT
, t) V
T =
TV −1T
T
•
−I
TT
t∗
FT , GT
, − t∗
V
T
T =
TV −1T
T F O∼ (nωs)
s = ξ/n F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 124/168
F
n
m F = F1, F2, . . . , Fn/m n/m
m × m n m
T1 [F1, F2]
T2 [T1, F3] i
Ti [Ti−1, Fi+1] i = n/m − 1
F
i Ti [Ti−1, Fi+1]
O∼ (mω(si + si+1)/2) si = (
cdeg Fi) /m
Ti−1 [F1, . . . , Fi]
Fi
cdeg Ti−1 ≤
cdeg Fi
Ti [Ti−1, Fi+1] O∼ (mωs)
s =
cdeg Ti−1 +
cdeg Fi+1
/2m ≤ (si + si+1) /2.
F
O∼ (mωs)
s = (
cdeg F) /n
n/m−1i=1
O∼ (mω (si + si+1) /2)
⊂ O∼
mω
n/m
i=1
si
/(n/m)
= O∼ (mωs) .
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 125/168
n/m
m
d
O∼ (nmω−1d)
F ∈
K [x]m×n O∼ (nmω−1d) .
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 126/168
m F
n
F F = GT
G
T
F
t = − cdeg[−d,...,−d] G
t = d − cdeg G
cdeg− t T ≤ 0
t ≤ d
− t
T
T
GT
F
− t
T
T
xd− tT
d
F =
x2 1 + x + x2
x2 x2
x + x2 1 + x2
1 + x2 1 + x2
,
F
F = GT =
1 x
0 x2
1 0
0 1 + x2
x + x2 1 + x2
1 1
G
G cdeg G = [0, 2]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 127/168
[0, 2] T
T
T =
1 + x x + x2
0 1
.
GT =
1 + x x2
0 x2
1 + x x + x2
0 1 + x2
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 128/168
F ∈ K [x]m×n n > m s
G ∈ K [x](n−m)×n
F
G
O∼ (nωs)
s m F
F = [0, x]
F
F
F
A
([A
, I ])
F
B
B
F
B
F
U
FU = [I m, 0]
F = [I m, 0] U−1
F
m U−1
U−1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 129/168
F
F F
F
F
F = TR
T
F
R
R
T
F
F
U
F
U
U
F
ξ U ξ
p = p0 + p1x + · · · + puxu ∈ K [x]
u
rev( p, u) = p(x−1)
xu = pu + pu−1x + · · · + p1xu−1 + p0xu.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 130/168
u = [u1, . . . un] ∈ Zn
a ∈ K [x]n×1 u v
colRev(a, u, v) = x−u
a(x−1)
xv =
rev( p, v − u1)
rev( p, v − un)
.
b ∈ K [x]1×n u v
u = [u1, . . . un] ∈ Zn
rowRev(b, u, v) = colRev(bT , u, v)T = xv
b(x−1)
x− u.
f = [10 + x, 5 + x + 2x2] u = [−1, −2] v = 0
rowRev(f
, u, v) = x
0 10 + x
−1
, 5 + x
−1
+ 2x
−2x
x2
=
10x + 1, 5x
2
+ x + 2
.
u = [u1, . . . un] ∈ Zn
A ∈ K [x]n×k
u v = [v1, . . . , vk]
colRev(A
, u, v) = x
−u
(A
(1/x)) x
v
u = [u1, . . . , un] B ∈ K [x]k×n
u
v = [v1, . . . , vk]
rowRev(B, u, v) = colRev(BT , u, v)T = xv (B(1/x)) x−u
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 131/168
rowRev(B, u, v) = colRev(B, −v, −u)
A ∈ K [x]n×k
u
v colRev(A, u, v) u
v
colRev (colRev(A, u, v), u, v) = A
rowRev (rowRev(B, u, v), u, v) = B
a ∈ K [x]1×n aT (−u) α
a (−u) α b ∈ K [x]n×1 u
β ab α + β
ax−u
α x ub β
ax−ux ub = ab α + β
a ∈ K [x]1×n
(−u) α b ∈ K [x]n×1
u β
rowRev(a, −u, α) · colRev(b, u, β ) = rev(ab, α + β ).
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 132/168
rowRev(a, −u, α) · colRev(b, u, β )
= xα
(a(1/x)) x u
x− u
(b(1/x)) xβ
= (a(1/x)) xux− u (b(1/x)) xα+β
= (a(1/x)) (b(1/x)) xα+β
= ((ab) (1/x)) xα+β
= rev(ab, α + β )
A ∈ K [x]m×n u v B ∈
K [x]n×k v w
colRev(A, u, v) colRev(B, v, w) = colRev(AB, u, w)
u w
colRev(A, u, v) colRev(B, v, w)
= x− u (A(1/x)) xvx−v (B(1/x)) x w
= x− u (AB) (1/x)x w.
A ∈ K [x]m×n u v B ∈ K [x]n×k
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 133/168
−u w
rowRev(A, u, v) colRev(B, −u, w) = colRev(AB, −v, w).
rowRev(A, u, v) colRev(B, −u, cdeg− u
B)
= xv (A(1/x)) x− ux u (B(1/x)) xcdeg− uB
= x
v
(A
(1/x)) (B
(1/x)) x
cdeg− uB
= xv (AB(1/x)) xcdeg− uB.
u ∈ Zn A ∈ K [x]m×n
(−u)
a Ar = rowRev (A, −u, a)
N ∈ K [x]n×k u
b (A, u) Nr = colRev
N, u, b
(Ar, u)
N
A
rowRev (A, −u, a) · colRev
N, u, b
= 0,
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 134/168
colRev
N, u, b
rowRev (A, −u, a) colRev
N, u, b
u M
rowRev (A, −u, a)
u c
b
colRev (M, u, c) A u b
u N
A
A
A ∈ K [x]m×n
N ∈ K [x]n×(n−m)
A
B
N
A = UB
U
U
A
u = [u1, . . . un] ∈ Zn (A, σ, u)
P
cdegu P = v = [v1, . . . , vk] det(P) = cx
v−
u det (colRev(P, u, v)) = c
c ∈ K colRev(P, u, v)
det(P) = cx
v−
u (A, 0, u)
u u 1 u
P
x
det (colRev(P, u, v)) = c
colRev(P, u, v) = x−u (P(1/x)) xv.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 135/168
F
F
F
F M
M
F
M
F
F
F
Fr = rowRev (F, −s, 0) M (Fr, s)
cdegs M = b P = [P1, P2]
MT , b + 1, −s
P1
p
cdeg−s p ≤ 0 Pr
2 = colRev
P2, −s, cdeg−s P2
FT , Pr
2
Pr
1 = colRev
P1, −s, cdeg−s P1
[Pr1, Pr
2] Mr = colRev
M, s, b
Mr (F, s) Pr1
(Mr)
T
, −s
F = U (Pr
1)T
U
FT , Pr
2
T =
([U, I ]) [Pr1, Pr
2]T
F
MT
Fr = rowRev (F, −s, 0)
M
(Fr, s) cdegs M = b M = [M1, M2]
P1
MT
1 , cdegs M1 + 1, −s
P1 = [N1, Q1]
N1 p
P1 cdeg−s p ≤ 0
t = cdeg−s N1
P2
MT
2 N1, cdegs M2 + 1, t
P2 = [N2, Q2]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 136/168
N2 p
P2 cdeg− t p ≤ 0
R = [N1Q2, Q1]
Rr = colRev
R, −s, cdeg−s R
FT , Rr
Pr1 = colRevP1, −s, cdeg−s P1
Pr2 = colRev
P1, t, cdeg t P2
Pr1 ·
([Pr2, I ]) =
[Nr1Nr
2, Nr1Qr
2, Q1] = [Nr1Nr
2, Rr] N1N2
M
F
(Fr, s)
O∼ (nωs)
−s
1 M
s
A ∈ Km×n[x] u ∈ Zn
σ ∈ Zm v u (A, σ, u) t ≤ s+
σ
s
s [0, . . . , 0]
(A, [0, . . . , 0] , s) 1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 137/168
σ
A ∈ Km×n[x] rdeg u A ≤ v cdeg−v A ≤ −u
(A, −u) −u
v −
u
P =
B, B
(A, v + [σ , . . . , σ] , −u)
B
A cdeg− u P
mσ + v − u cdeg− u
B ≥
cdeg−v AB cdeg AB ≥ v+[σ , . . . , σ]
cdeg−v AB ≥ mσ
cdeg− u
B ≥ mσ
cdeg− u B ≤ mσ +
v−
u−mσ =v −
u
A
BT , u
A ∈ Km×n
[x]
B ∈ Kn×(n−m)
[x]
B
(A, −u)
cdeg− u B = w AT
BT , u
rdeg u A = v
w =
v −
u
w ≤
v −
u v ≤
w +
u
MT , b + 1, −s
MT , −s
−s
MT , b + 1, −s
Fr = rowRev (F, −s, 0) M (Fr, s)
cdegs M = b P
MT , b + 1, −s
cdeg− b−1 MT P2 =
[0, . . . , 0] cdeg−s P2 = [1, . . . , 1]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 138/168
P
MT , −s
P1
P = [P1, P2]
cdeg−s P = −
s + b +n − m
P1
P
cdeg−s P1 =
b −
s
cdeg−s P2 = n−m
cdeg− b MT P2 ≤
cdeg−s P2 =
n−m
cdeg− b−1 MT P2 = 0 P2
F, b + 1
cdeg− b−1 MT P2 ≥ [0, . . . , 0]
cdeg− b−1 MT P2 ≥ 0
cdeg− b−1 MT P2 = 0 cdeg− b−1 MT P2 = [0, . . . , 0] cdeg− b MT P2 =
[1, . . . , 1]
cdeg− b MT P2 ≤
cdeg−s P2 = n − m
cdeg−s P2 = [1, . . . , 1]
MT , b + 1, −s
MT
s MT
log k s
MT =
MT 1 , MT
2 , · · · , MT log k−1, MT
log k
Mlog k, Mlog k−1, · · · , M2, M1 s
[0, 2ξ/k] , (2ξ/k, 4ξ/k], (4ξ/k, 8ξ/k], ..., (ξ/4, ξ/2], (ξ/2, ξ ].
σi = [ξ/2i−1 + 1, . . . , ξ /2i−1 + 1]
Mi σ = [σlog k, σlog k−1, . . . , σ1]
MT
M =
M1
Mlog k
= xσ− b−1
M1
Mlog k
= xσ− b−1M
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 139/168
M, σ, −s
M, b + 1, −s
F
s1 = s
M1, σ1, −s1
P1 = [N1, Q1] N1
M1, −s1
O∼ (nωs) s = ξ/n
N1 = N1 s2 = − cdeg−s N1
t2 = − cdeg−s Q1
M2
N1, σ2, −s2
P2 = [N2, Q2] s3 = − cdeg−s2N2
t3 = − cdeg−s2Q2
N2 = N1N2
i Mi Ni−1, σi, −si Pi =
[Ni, Qi]
Ni = i
j=1 Ni = Ni−1Ni
Nlog k (M, −s)
R =
Q1, N1Q2, . . . , Nlog k−2Qlog k−1, Nlog k−1Qlog k
Rr = colRev
R, −s, cdeg−s R
FT , Rr
Mi
Ni−1
Ni−1
Ni
Ni−1Qi
Mi Ni−1 O∼ (nωs)
Mi 2i−1×n
rdegs
Mi ≤ 2i−1·ξ/2i−1 =
ξ cdeg−s Ni−1 ≤ 0 rdeg Ni−1 ≤ s
NT i−1 MT
i O∼ (nωs)
Ni−1Ni O∼ (nωs)
cdeg−s Ni−1 = −si cdeg−si
Ni = −si+1 ≤ 0.
rdeg Ni ≤ si rdegsiNi−1 ≤ s
NT i
NT i−1 O∼ (nωs)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 140/168
unimodularCompletion(F)
F ∈ K [x]m×n
s
F
G ∈ K [x](n−m)×n
F
G
s := cdeg F
Fr := rowRev (F, −s, 0)
M := minimalKernelBasis (Fr, s)
b := cdegs M k := n − m;
MT
1 , MT 2 , · · · , MT
log k−1, MT log k
:= M
Mlog k, Mlog k−1, · · · , M2, M1
s [0, 2ξ/k] , (2ξ/k, 4ξ/k],..., (ξ/4, ξ/2], (ξ/2, ξ ]. i 1 log k
σi := [ξ/2i−1 + 1, . . . , ξ /2i−1 + 1]
Mi;
σ := [σlog k, σlog k−1, . . . , σ1]
ˆM := x
σ− b−1
M;
N0 := I n
N0 := I n; i 1 log k
si := − cdeg−s Ni−1; s1 = s
Pi := unbalancedFastOrderBasis
Mi Ni−1, σi, −si
[Ni, Qi] := Pi Ni
Mi, −si
Ni := Ni−1 · Ni;
R :=
R, Ni−1Qi
Rr
:= colRev
R, −s, cdeg−s R
; (Rr)T
Ni−1Qi O∼ (nωs)
cdeg−siQi ≤ max cdegs P = 1 rdeg Qi ≤ si + 1
Qi xI
rdeg (Qi/x) ≤ si rdegsiNi−1 ≤ s
QT
i NT
i−1 O∼ (nωs)
F
O∼ (nωs)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 141/168
F ∈
K [x]n×n s
O∼ (nωs) s =
s/n
F
F
FU = G =
G1 0
∗ G2
,
G
F
G1
G2
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 142/168
F
U
U
G1
G2
U
F
F =
FU
FD
F
U
U =
UL UR
UL
FU
FU =
FU
FD
UL UR
= G =
G1 0
∗ G2
.
G1 FU
G2 = FDUR
UR
F
G
UR
F
F =
FU
FD
G1
FU N
FU
U = [∗, N]
FU =G1
∗ G2
,
G2 = FDN F G1 G2
∗
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 143/168
hermiteDiagonal(F)
F ∈ K [x]n×n
d ∈ K [x]n F
FU
FD := F
FU n/2 F
n = 1 F
G1 := colBasis(FU )
N := minimalKernelBasis (FU , cdeg F)
G2 := FDN
d1 := hermiteDiagonal(G1);d2 := hermiteDiagonal(G2); [d1, d2]
G1
G2
G1
N
FU
G2 = FDN
G1
G2
c det F c ∈ K
F
c−1 c
F
U = [UL, UR]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 144/168
F
FU =
FU
FD
UL UR =
G1 0
∗ G2
= G.
V =
VU
VD
= U−1
U R = UR mod x V U = VU mod x U ∗L ∈ Kn×∗
U ∗ = [U ∗L, U R] U R det U ∗ =
a ∈ K det F = det G det(V U U ∗L) /a
det F = det G det V det V = det(V U U ∗L) /a
V = V mod x
det V = det(V U U ∗L) /a V
det V = det V
det V det U ∗ = det (V U ∗)
= det
V U
V D
U ∗L U R
= det
V U U ∗L 0
∗ I
= det (V U U ∗L) ,
det V = det(V U U ∗L) /a
U R
V U
V U
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 145/168
hermiteDiagonalWithScale(F)
F ∈ K [x]n×n
d ∈ K [x]n F
c
FU
FD
:= F
FU
n/2
F
n = 1 F, 1
G1, UR, VL := colBasis(FU ) colBasis()
G2 := FDUR
U R := UR mod x V U := VU mod x
U ∗L ∈ Kn×∗ U ∗ =
[U ∗L, U R]
d1, c1 := hermiteDiagonalWithScale(G1);
d2, c2 := hermiteDiagonalWithScale(G2); [d
1, d
2] , c
1c
2 det (V
U U ∗
L) / det(U )∗
O (nmω−1)
F
O∼ (nωs)
F ∈ K [x]n×n s F
FU
N
FU
FDN
G1 FU O∼ (nωs) .
G1
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 146/168
s
O∼ (nωs) s
N
FU s
N
s
FDN
FD s
N
s
O∼ (nωs)
g(n)
n
g(n) ∈ O∼(nω−1) + g(n/2) + g(n/2),
g(n) = O∼(nωs)
U R
O (nω)
F ∈ K [x]n×n
O∼(nωs) s
F FT
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 147/168
F ∈ K [x]n×n
H F
O∼ (nωd)
F
d = [d1, . . . , dn] d = max d s = [s1, . . . , sn]
H
u = [max s, . . . , max s] n
[−u, −s]
[F, I ]
V
G
[−u, −s] [F, −I ]
n × n G
H F s H
U
FU = H
d
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 148/168
max s
U
max s cdeg− u U ≤ 0
cdeg[−u,−s]
U
H
= cdeg−s H = 0
U
H
[−u, −s]
[−u, −s] [F, −I ] [−u, −s]
V
G
[F, −I ]
V
G
U
H
V
cdeg[−u,−s]V
G
= cdeg[− u,−s]
U
H
= 0
cdeg−s G ≤ 0 = cdeg−s H
H
cdeg−s G = cdeg−s H = 0
rdeg G = rdeg H = s
G
H
H
H
G
H
F
A ∈ K [x]n×k
A U ∈ Kn×n
lcoeff
x−sA
U
H n × n
AU
H
A
−s
lcoeff x−sA
lcoeff
x−sH
H F [−u, −s]
[F, I ] max s
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 149/168
H
H
H O(n)
H
H
H
si s q i ri si
d i ei I [F, I ]
si
E(i) =
ei, xsi−qidei, . . . , xsi−dei
si = [ri, d , . . . , d , ] ,
si q i + 1
s s = [s1, . . . , sn] ∈ Zn≤0
E = [E, . . . , E(n)]
=
1 xs1−q1d · · · xs1−2d xs1−d
1 xsn−qnd · · · xsn−2d xsn−d
n×n
,
n
n = n +n
i=1
q i ≤ n +
n
i=1
si/d ≤ n + nd/d = 2n.
H
[−u, −s] [F, −E]
B =
V
G
([F, −E] , [−u, −s])
G
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 150/168
n × n
B0 G
−s H
EB0
EB0 −s
H
EB0
([F, −E] , [−u, −s])
A =
U 0
HE NE
,
U
FU = H
HE
H
E
HE s
HEE = H
NE
(E, −s) B =
V
G
([F, −E] , [−u, −s])
A0 B0 A B
[−u, −s] 0
A0U0 = B0
U0
A0
B0 n A0
B0
A0U0 = B0 EA0U0 = EB0 cdeg−s EA0 ≤ 0
cdeg−s EB0 ≤ 0 cdeg−s A0 ≤ 0 cdeg−s
B0 ≤ 0
A0 = [HE, N]
N
NE −s
EA0U0 = E [HE, N] U0 = [H, 0] U0 = EB0 H
−s
−s 0 EB0 −s
0 −s
([F, I ] , [−u, −s])
([F, E] , [−u, −s]) E
u
E
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 151/168
R = E − FQ
Q
R
d u = [2d , . . . , 2d] ∈ Zn
D =
V
G
([F, −R] , [−u, −s])
G
n × n
D0
G
−s H
ED0
ED0 −s
H ED0
A =
U 0
HE NE
[F, −E]
C =
I −Q
0 I
A =
U − QHE −QNE
HE NE
[F, −R] = [F, −E]
I Q
0 I
D ([F, −R] , [−u, −s])
CV = D
V
C0
D0
C
D
[−u, −s]
0 C0 = D0V0
V0
C
D
C0
D0 n C D C0 D0
CV = D
C0 = D0V0 ECV = E [HE, NE] V = [H, 0] V = ED
EC0 = E [HE, N] = [H, 0] = ED0V0
N
NE −s [H, 0] V = ED
ED
−s
cdeg−s H = 0
cdeg−s ED0 ≤ 0 cdeg−s D0 ≤ 0
ED0 −s 0 [H, 0] V = ED
[H, 0] = ED0V0 H
ED0
([F, −R] , [−u, −s])
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 152/168
R
E
F
Fr = colRev(F, 0, d) = F(1/x)
xd1
xdn
,
F
deg det F =
d
x deg det Fr (Fr)−1
xd
(Fr)−1 xkI
F
(F
r
)
−1
¯F = F 0 + F 1x + F 2x
2
+ . . .
k ≥ d
I = Fr
F mod xk− d
+ xk−dC,
F mod xk− d
i
F mod xk−di i
Cr = colRev
xk−dC, 0, k
d xkI = F · (∗) + Cr
k
xk−dC k
C
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 153/168
d
colRev (I, 0, k)
= colRev(Fr
, 0, d) · colRev
F mod xk− d
, d, k
+ colRev
xk−d
C, 0, k
,
xkI = F · (∗) + Cr,
Cr
xkI F
Cr
d
F
xkI F
k ≥ d i
Fi = Fei
F
r
xkei F
deg r < d
ei si
Fi si
Fi si i
si ≥ d O∼ (nωd)
F
s = [s1, . . . , sn]
s s log n + 1
s¯ j(0), s¯ j(1), s¯ j(2), . . . , s¯ j(logn) [0, d) [d, 2d) [2d, 4d) [4d, 8d)
[2log n−2d, 2log n−1d) [2log n−1d,nd] ¯ j(i)
s s¯ j(i)
¯ j(i)
n/2i−1 s¯ j(i)
s = nd
F¯ j(1), F¯ j(2), . . . , F¯ j(logn)
2d, 4d , . . . , 2log n−1d/2, nd
F¯ j(i)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 154/168
F
¯ j(i)
F¯ j(i) n/2i−1
2id O∼ (nωd)
i
1
log n
O∼ (nωd)
R
E
F
R E F deg R < d
O∼ (nωd)
r
xk
ei
F
ei − Fr
Fi mod xk− d
/xk−d.
Fi [k − 2d, k)
Fr
2d
n
d
n 2d O∼ (nωd)
R
([F, −R] , [−u, −s])
F
O∼ (nωd)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 155/168
F ∈ K [x]m×n
n ≥ m
O∼(nmω−1s)
s F
O∼ (nmrω−2s) r F
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 156/168
F
[i1, i2, . . . ir] F
r
F
F
g
f
F g F F f
g = 0 f F
g F
F
g
f
g
F
f
F
g
F
F
n
r F
F
F
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 157/168
minimalKernelBasisWithRankProfile(F, s)
F ∈ K [x]m×n
s = [s1, . . . , sn] ∈ Zn
F
s N
F
F
e = [e1, . . . , em] 1
ξ := n
i=1 si ρ := n
i=n−m+1 si; s := ρ/m
P, b
:= orderBasis (F, 3s, s) (F, 3s, s) P
s
b
b
[P1, P2] := P
P1 p
P
Fp = 0
m = 1
F = 0
P1, [0]
P1, [1]
t := degs P2 − [3s, 3s , . . . , 3s] ; G := FP2/x3s
GT
1 , GT 2
T := G G1 m/2 G2 m/2
N1, e1 := minimalKernelBasis
G1, t
;
N2, e2 := minimalKernelBasis (G2N1, cdeg t N1) ; Q := N1N2
[P1, P2Q] , [e1, e2]
F
F
F
¯ j = [ j1, . . . , jk]
G = F[¯ j,jk+1...,jk+k]
k
¯ j k
T
G
T
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 158/168
rankProfile(F)
F ∈ K [x]m×n
¯ j = [ j1, . . . , jr] ∈ Zr F
k := 1 k
k ≤ m Fk = 0 k := k + 1
Fk
¯ j = [k] ; r := 1 r
k < m
k := min (m, k + r − 1)
G := F[¯ j,k...,k]; r
T := colBasis(G); N, e := minimalKernelBasisWithRankProfile(G); i r + 1 2r
¯ j
ei = 1
¯ j := [¯ j, ei − r + k − 1]
k := k + r
¯ j
F
F
F
O∼ (nmrω−2s)
F ∈ K [x]m×n
ri i
i O∼
rω−1i ns
O∼ rω−1i ns = O∼ ns rω−1
i .
ri = m ri r
F
rω−1
i ≤ m
r rω−1 = mrω−2.
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 159/168
O∼
rω−1i ns
= O∼
ns
rω−1i
= O∼
nmrω−2s
.
n ≥ m
n
m.
¯ j F
F¯ j
r r
n
d
F
m r O∼ (nmrω−2d)
F ∈ K [x]m×n
d
F O∼(nmrω−2d + nω−1rd)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 160/168
ω
n
n
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 161/168
m×n
K m ≤ n σ s
O∼(nωa)
K a = mσ/n. O∼(nω−1mσ)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 162/168
O∼(nωa)
ni=1(max(s) − si) ≤ mσ
m × n K
m ≤ n
d
O∼ (nω−1md) K
s ∈ Zn
s
O∼(nωs) s m
s
K [x]n×n O∼ (n3s) s
log n
O∼ (nωs)
K [x]m×n
O∼ (mωns) s
K [x]m×n m < n O∼ (nωs) s
m
K [x]n×n O∼ (nωs)
s
d
K [x]n×n O∼ (nωd)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 163/168
K [x]m×n O∼ (mrω−2ns) s
O∼(nmrω−2d + nω−1rd)
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 164/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 165/168
k[x]
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 166/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 167/168
8/22/2019 Fast Algorithms for Polynomial Matrix Computations
http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 168/168
Top Related