|
D.6.3.10 MinimalDecomposition
Procedure from library rinvar.lib (see rinvar_lib).
- Usage:
MinimalDecomposition(f,a,b); poly f; int a, b.
- Purpose:
decompose f as a sum M[1,1]*M[2,1] + ... + M[1,r]*M[2,r] where M[1,i]
contains only s(1..a), M[2,i] contains only t(1...b) s.t. r is minimal
- Assume:
f polynomial in K[s(1..a),t(1..b)], K = Q or K = Q(a) and minpoly != 0
- Return:
2 x r matrix M s.t. f = M[1,1]*M[2,1] + ... + M[1,r]*M[2,r]
Example:
| LIB "rinvar.lib";
ring R = 0, (s(1..2), t(1..2)), dp;
poly h = s(1)*(t(1) + t(1)^2) + (t(2) + t(2)^2)*(s(1)^2 + s(2));
matrix M = MinimalDecomposition(h, 2, 2);
M;
→ M[1,1]=s(1)^2+s(2)
→ M[1,2]=s(1)
→ M[2,1]=t(2)^2+t(2)
→ M[2,2]=t(1)^2+t(1)
M[1,1]*M[2,1] + M[1,2]*M[2,2] - h;
→ 0
|
|