rdeefx.spad line 32 [edit on github]
ConstantLinearDependence(R, F) supports solving linear systems with coefficients in Expression(R) over constants. The parameter ld to each function is a list of derivations to use. By definition element f from Expression(R) is a constant if for each d in ld we have d(f) = 0. We assume that inputs are normalized in such a way that field of constants is generated by constant kernels.
constant_subspace(b, ld) returns [M, nb] such that nb is basis of subspace spanned by b over F consistng of vectors with constant coordinates. M is the transformation matrix, i.e. mnb = M mb where mb (mnb respectively) is matrix having b (nb respectively) as rows.
linearlyDependenceOverConstants([v1, ..., vn], ld) 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 constants.
linearlyDependentOverConstants?([v1, ..., vn], ld) returns true if the vi's are linearly dependent over constants, false otherwise.
nullSpaceOverConstants(A, ld) returns basis of the homogeneous system A*vc = 0 where vc is a vector of constants.
solveLinearlyOverConstants([v1, ..., vn], u, ld) returns [c1, ..., cn] such that c1*v1 + ... + cn*vn = u, "failed" if no such rational numbers ci's exist.
particularSolutionOverConstants([v1, ..., vn], u, ld) returns [c1, ..., cn] such that c1*v1 + ... + cn*vn = u, "failed" if no such constants numbers ci's exist.
reducedSystem(A, ld) returns a matrix of constants B such that A x = 0 and B x = 0 have the same solutions over constants.
reducedSystem(A, v, ld) returns matrix of constants B and vector of constants w such that A x = v and B x = w have the same solutions over constants.
solveLinearOverConstants([v1, ..., vn], u, ld) returns solution of the system c1*v1 + ... + cn*vn = u and and a basis of the associated homogeneous system c1*v1 + ... + cn*vn = 0
solveLinearOverConstants([v1, ..., vn], u, ld) returns solution of the system c1*v1 + ... + cn*vn = u and and a basis of the associated homogeneous system c1*v1 + ... + cn*vn = 0