fast algorithms for polynomial matrix computations

168
                      

Upload: wei-zhou

Post on 08-Aug-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 1/168

Page 2: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 2/168

Page 3: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 3/168

Page 4: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 4/168

Page 5: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 5/168

Page 6: Fast Algorithms for Polynomial Matrix Computations

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)

Page 7: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 7/168

n ≥ m

Page 8: Fast Algorithms for Polynomial Matrix Computations

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)

Page 9: Fast Algorithms for Polynomial Matrix Computations

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σ,

Page 10: Fast Algorithms for Polynomial Matrix Computations

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]

σ

Page 11: Fast Algorithms for Polynomial Matrix Computations

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

Page 12: Fast Algorithms for Polynomial Matrix Computations

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

Page 13: Fast Algorithms for Polynomial Matrix Computations

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

Page 14: Fast Algorithms for Polynomial Matrix Computations

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)

Page 15: Fast Algorithms for Polynomial Matrix Computations

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σ

Page 16: Fast Algorithms for Polynomial Matrix Computations

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σ)

Page 17: Fast Algorithms for Polynomial Matrix Computations

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

Page 18: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 18/168

Page 19: Fast Algorithms for Polynomial Matrix Computations

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

Page 20: Fast Algorithms for Polynomial Matrix Computations

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) ω

Page 21: Fast Algorithms for Polynomial Matrix Computations

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.

Page 22: Fast Algorithms for Polynomial Matrix Computations

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)

Page 23: Fast Algorithms for Polynomial Matrix Computations

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

Page 24: Fast Algorithms for Polynomial Matrix Computations

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

Page 25: Fast Algorithms for Polynomial Matrix Computations

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]

Page 26: Fast Algorithms for Polynomial Matrix Computations

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

.

Page 27: Fast Algorithms for Polynomial Matrix Computations

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

Page 28: Fast Algorithms for Polynomial Matrix Computations

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

Page 29: Fast Algorithms for Polynomial Matrix Computations

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.

Page 30: Fast Algorithms for Polynomial Matrix Computations

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]

Page 31: Fast Algorithms for Polynomial Matrix Computations

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

Page 32: Fast Algorithms for Polynomial Matrix Computations

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)

Page 33: Fast Algorithms for Polynomial Matrix Computations

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)

Page 34: Fast Algorithms for Polynomial Matrix Computations

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

Page 35: Fast Algorithms for Polynomial Matrix Computations

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

log σi=0

M (σ)

=O(nω M(σ)log σ).

2i

≤ σ

M (2i

) 2−i

≤ M (σ) /σ

n

σ

m ∈ Θ (n) m m = 1

Page 36: Fast Algorithms for Polynomial Matrix Computations

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

Page 37: Fast Algorithms for Polynomial Matrix Computations

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

Page 38: Fast Algorithms for Polynomial Matrix Computations

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

Page 39: Fast Algorithms for Polynomial Matrix Computations

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σ)

Page 40: Fast Algorithms for Polynomial Matrix Computations

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

Page 41: Fast Algorithms for Polynomial Matrix Computations

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.

Page 42: Fast Algorithms for Polynomial Matrix Computations

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.

Page 43: Fast Algorithms for Polynomial Matrix Computations

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

τ ∈ Z q ∈ (F, σ, 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

Page 44: Fast Algorithms for Polynomial Matrix Computations

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 τ

Page 45: Fast Algorithms for Polynomial Matrix Computations

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)

Page 46: Fast Algorithms for Polynomial Matrix Computations

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)]

Page 47: Fast Algorithms for Polynomial Matrix Computations

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

Page 48: Fast Algorithms for Polynomial Matrix Computations

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

Page 49: Fast Algorithms for Polynomial Matrix Computations

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

Page 50: Fast Algorithms for Polynomial Matrix Computations

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

Page 51: Fast Algorithms for Polynomial Matrix Computations

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,

Page 52: Fast Algorithms for Polynomial Matrix Computations

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)

Page 53: Fast Algorithms for Polynomial Matrix Computations

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)

Page 54: Fast Algorithms for Polynomial Matrix Computations

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

Page 55: Fast Algorithms for Polynomial Matrix Computations

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))

Page 56: Fast Algorithms for Polynomial Matrix Computations

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))

Page 57: Fast Algorithms for Polynomial Matrix Computations

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)

Page 58: Fast Algorithms for Polynomial Matrix Computations

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)

Page 59: Fast Algorithms for Polynomial Matrix Computations

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

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

2i−ω

2i

ω−1 M (a)log(a)

⊂O

nω M (a)log(a)

∞i=1

2−i

⊂O (nω M (a)log(a)) .

Page 60: Fast Algorithms for Polynomial Matrix Computations

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

Page 61: Fast Algorithms for Polynomial Matrix Computations

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

Page 62: Fast Algorithms for Polynomial Matrix Computations

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σ)

Page 63: Fast Algorithms for Polynomial Matrix Computations

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σ

Page 64: Fast Algorithms for Polynomial Matrix Computations

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]

Page 65: Fast Algorithms for Polynomial Matrix Computations

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

Page 66: Fast Algorithms for Polynomial Matrix Computations

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σ.

Page 67: Fast Algorithms for Polynomial Matrix Computations

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

Page 68: Fast Algorithms for Polynomial Matrix Computations

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 −α − β

Page 69: Fast Algorithms for Polynomial Matrix Computations

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

Page 70: Fast Algorithms for Polynomial Matrix Computations

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

.

Page 71: Fast Algorithms for Polynomial Matrix Computations

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

Page 72: Fast Algorithms for Polynomial Matrix Computations

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)

Page 73: Fast Algorithms for Polynomial Matrix Computations

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

−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

Page 74: Fast Algorithms for Polynomial Matrix Computations

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

Page 75: Fast Algorithms for Polynomial Matrix Computations

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)

Page 76: Fast Algorithms for Polynomial Matrix Computations

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

Page 77: Fast Algorithms for Polynomial Matrix Computations

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

Page 78: Fast Algorithms for Polynomial Matrix Computations

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)

Page 79: Fast Algorithms for Polynomial Matrix Computations

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)

Page 80: Fast Algorithms for Polynomial Matrix Computations

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

Page 81: Fast Algorithms for Polynomial Matrix Computations

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,

Page 82: Fast Algorithms for Polynomial Matrix Computations

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 ∈

Page 83: Fast Algorithms for Polynomial Matrix Computations

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

Page 84: Fast Algorithms for Polynomial Matrix Computations

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)

Page 85: Fast Algorithms for Polynomial Matrix Computations

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

Page 86: Fast Algorithms for Polynomial Matrix Computations

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)

Page 87: Fast Algorithms for Polynomial Matrix Computations

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

σ

Page 88: Fast Algorithms for Polynomial Matrix Computations

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.

Page 89: Fast Algorithms for Polynomial Matrix Computations

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

Page 90: Fast Algorithms for Polynomial Matrix Computations

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

Page 91: Fast Algorithms for Polynomial Matrix Computations

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 b2Qx−

b2 [0, . . . , 0] x[ b1, b2]Qx−[ b1, b2]

Page 92: Fast Algorithms for Polynomial Matrix Computations

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

Page 93: Fast Algorithms for Polynomial Matrix Computations

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

Page 94: Fast Algorithms for Polynomial Matrix Computations

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

Page 95: Fast Algorithms for Polynomial Matrix Computations

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

Page 96: Fast Algorithms for Polynomial Matrix Computations

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

Page 97: Fast Algorithms for Polynomial Matrix Computations

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)

Page 98: Fast Algorithms for Polynomial Matrix Computations

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

Page 99: Fast Algorithms for Polynomial Matrix Computations

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)

Page 100: Fast Algorithms for Polynomial Matrix Computations

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

.

Page 101: Fast Algorithms for Polynomial Matrix Computations

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) .

Page 102: Fast Algorithms for Polynomial Matrix Computations

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)

Page 103: Fast Algorithms for Polynomial Matrix Computations

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)

Page 104: Fast Algorithms for Polynomial Matrix Computations

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]

Page 105: Fast Algorithms for Polynomial Matrix Computations

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)

Page 106: Fast Algorithms for Polynomial Matrix Computations

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 ξ

Page 107: Fast Algorithms for Polynomial Matrix Computations

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

Page 108: Fast Algorithms for Polynomial Matrix Computations

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

Page 109: Fast Algorithms for Polynomial Matrix Computations

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

Page 110: Fast Algorithms for Polynomial Matrix Computations

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

Page 111: Fast Algorithms for Polynomial Matrix Computations

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

Page 112: Fast Algorithms for Polynomial Matrix Computations

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

Page 113: Fast Algorithms for Polynomial Matrix Computations

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

Page 114: Fast Algorithms for Polynomial Matrix Computations

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

Page 115: Fast Algorithms for Polynomial Matrix Computations

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

Page 116: Fast Algorithms for Polynomial Matrix Computations

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

Page 117: Fast Algorithms for Polynomial Matrix Computations

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]

Page 118: Fast Algorithms for Polynomial Matrix Computations

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

Page 119: Fast Algorithms for Polynomial Matrix Computations

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 ≤ ξ

Page 120: Fast Algorithms for Polynomial Matrix Computations

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”

Page 121: Fast Algorithms for Polynomial Matrix Computations

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

Page 122: Fast Algorithms for Polynomial Matrix Computations

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∗ ≤ ξ

Page 123: Fast Algorithms for Polynomial Matrix Computations

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

Page 124: Fast Algorithms for Polynomial Matrix Computations

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∼

n/m

i=1

si

/(n/m)

= O∼ (mωs) .

Page 125: Fast Algorithms for Polynomial Matrix Computations

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

Page 126: Fast Algorithms for Polynomial Matrix Computations

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]

Page 127: Fast Algorithms for Polynomial Matrix Computations

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

Page 128: Fast Algorithms for Polynomial Matrix Computations

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

Page 129: Fast Algorithms for Polynomial Matrix Computations

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.

Page 130: Fast Algorithms for Polynomial Matrix Computations

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

Page 131: Fast Algorithms for Polynomial Matrix Computations

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, α + β ).

Page 132: Fast Algorithms for Polynomial Matrix Computations

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

Page 133: Fast Algorithms for Polynomial Matrix Computations

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,

Page 134: Fast Algorithms for Polynomial Matrix Computations

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.

Page 135: Fast Algorithms for Polynomial Matrix Computations

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]

Page 136: Fast Algorithms for Polynomial Matrix Computations

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

Page 137: Fast Algorithms for Polynomial Matrix Computations

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]

Page 138: Fast Algorithms for Polynomial Matrix Computations

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

Page 139: Fast Algorithms for Polynomial Matrix Computations

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)

Page 140: Fast Algorithms for Polynomial Matrix Computations

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)

Page 141: Fast Algorithms for Polynomial Matrix Computations

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

Page 142: Fast Algorithms for Polynomial Matrix Computations

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

Page 143: Fast Algorithms for Polynomial Matrix Computations

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]

Page 144: Fast Algorithms for Polynomial Matrix Computations

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

Page 145: Fast Algorithms for Polynomial Matrix Computations

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

Page 146: Fast Algorithms for Polynomial Matrix Computations

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

Page 147: Fast Algorithms for Polynomial Matrix Computations

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

Page 148: Fast Algorithms for Polynomial Matrix Computations

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

Page 149: Fast Algorithms for Polynomial Matrix Computations

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

Page 150: Fast Algorithms for Polynomial Matrix Computations

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

Page 151: Fast Algorithms for Polynomial Matrix Computations

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])

Page 152: Fast Algorithms for Polynomial Matrix Computations

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

Page 153: Fast Algorithms for Polynomial Matrix Computations

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)

Page 154: Fast Algorithms for Polynomial Matrix Computations

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)

Page 155: Fast Algorithms for Polynomial Matrix Computations

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

Page 156: Fast Algorithms for Polynomial Matrix Computations

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

Page 157: Fast Algorithms for Polynomial Matrix Computations

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

Page 158: Fast Algorithms for Polynomial Matrix Computations

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.

Page 159: Fast Algorithms for Polynomial Matrix Computations

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)

Page 160: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 160/168

ω

n

n

Page 161: Fast Algorithms for Polynomial Matrix Computations

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σ)

Page 162: Fast Algorithms for Polynomial Matrix Computations

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)

Page 163: Fast Algorithms for Polynomial Matrix Computations

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)

Page 164: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 164/168

Page 165: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 165/168

k[x]

Page 166: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 166/168

Page 167: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 167/168

Page 168: Fast Algorithms for Polynomial Matrix Computations

8/22/2019 Fast Algorithms for Polynomial Matrix Computations

http://slidepdf.com/reader/full/fast-algorithms-for-polynomial-matrix-computations 168/168