IntegerLinearDependence(R)

lindep.spad line 133 [edit on github]

Test for linear dependence over the integers.

linearDependenceOverZ : Vector(R) -> Union(Vector(Integer), "failed")

linearlyDependenceOverZ([v1, ..., vn]) returns [c1, ..., cn] if c1*v1 + ... + cn*vn = 0 and not all the ci's are 0, "failed" if the vi's are linearly independent over the integers.

linearlyDependentOverZ? : Vector(R) -> Boolean

linearlyDependentOverZ?([v1, ..., vn]) returns true if the vi's are linearly dependent over the integers, false otherwise.

particularSolutionOverQ : (Matrix(R), Vector(R)) -> Union(Vector(Fraction(Integer)), "failed")

solveLinearlyOverQ([v1, ..., vn], u) returns [c1, ..., cn] such that c1*v1 + ... + cn*vn = u, "failed" if no such rational numbers ci's exist.

particularSolutionOverQ : (Vector(R), R) -> Union(Vector(Fraction(Integer)), "failed")

particularSolutionOverQ([v1, ..., vn], u) returns [c1, ..., cn] such that c1*v1 + ... + cn*vn = u, "failed" if no such rational numbers ci's exist.

solveLinearlyOverQ : (Matrix(R), Vector(R)) -> Record(particular : Union(Vector(Fraction(Integer)), "failed"), basis : List(Vector(Fraction(Integer))))

solveLinearlyOverQ([v1, ..., vn], u) returns solution of the system c1*v1 + ... + cn*vn = u and and a basis of the associated homogeneous system c1*v1 + ... + cn*vn = 0

solveLinearlyOverQ : (Vector(R), R) -> Record(particular : Union(Vector(Fraction(Integer)), "failed"), basis : List(Vector(Fraction(Integer))))

solveLinearlyOverQ([v1, ..., vn], u) returns solution of the system c1*v1 + ... + cn*vn = u and and a basis of the associated homogeneous system c1*v1 + ... + cn*vn = 0