def rank_of_forms(forms, prec=5): ts = [(t, i) for t in PrecisionDeg2(5) for i in range(11)] m = matrix([[f[t] for t in ts] for f in forms]) r = m.rank() return (r, find_linearly_indep_indices(list(m), r))
def linearly_indep_consts(self, consts, prec=5): ms = self._mat_ls(consts, prec) idcs = find_linearly_indep_indices(ms, matrix(ms).rank()) return [consts[i] for i in idcs]