Decomposition( A, B, depth )
Decomposition( A, B, "nonnegative" )
For a m times n matrix A of cyclotomics that has rank m leq n,
and a list B of cyclotomic vectors, each of dimension n,
Decomposition
tries to find integral solutions x of the linear
equation systems x * A = B[i]
by computing the p--adic series
of hypothetical solutions.
Decomposition( A, B, depth )
, where depth is a nonnegative
integer, computes for every vector B[i]
the initial part
sum_{k=0}^{<depth>} x_k p^k (all x_k integer vectors with entries
bounded by pmfrac{p-1}{2}). The prime p is 83 first; if the
reduction of A modulo p is singular, the next prime is chosen
automatically.
A list X is returned. If the computed initial part really is a
solution of x * A = B[i]
, we have X[i] = x
, otherwise
X[i] = false
.
Decomposition( A, B, "nonnegative" )
assumes that the solutions
have only nonnegative entries, and that the first column of A consists
of positive integers. In this case the necessary number depth of
iterations is computed; the i
-th entry of the returned list is false
if there exists no nonnegative integral solution of the system x *
A = B[i]
, and it is the solution otherwise.
If A is singular, an error is signalled.
gap> a5:= CharTable( "A5" );; a5m3:= CharTable( "A5mod3" );; gap> a5m3.irreducibles; [ [ 1, 1, 1, 1 ], [ 3, -1, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ], [ 3, -1, -E(5)^2-E(5)^3, -E(5)-E(5)^4 ], [ 4, 0, -1, -1 ] ] gap> reg:= CharTableRegular( a5, 3 );; gap> chars:= Restricted( a5, reg, a5.irreducibles ); [ [ 1, 1, 1, 1 ], [ 3, -1, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ], [ 3, -1, -E(5)^2-E(5)^3, -E(5)-E(5)^4 ], [ 4, 0, -1, -1 ], [ 5, 1, 0, 0 ] ] gap> Decomposition( a5m3.irreducibles, chars, "nonnegative" ); [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ], [ 1, 0, 0, 1 ] ] gap> last * a5m3.irreducibles = chars; true
GAP 3.4.4