diff -r 000000000000 -r 0efde00f9229 python/clcoef.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/clcoef.py Fri May 27 14:24:59 2011 +0530 @@ -0,0 +1,36 @@ +#!/usr/bin/python + +import pylab as pl +from polyfuncs import polsize + +def clcoef(Q, degQ): + """Function to clear zero leading coefficient matrices + of a Polynomial Matrix""" + rQ, cQ = polsize(Q, degQ) + + if pl.allclose(Q, pl.zeros_like(Q)): + P = pl.zeros((rQ,cQ)) + degP = 0 + else: + P, degP = Q, degQ + rP, cP = rQ, cQ + j = degP + while j>=0: + if pl.norm(P[:, -cP:], pl.inf) < 1e-8 *pl.norm(P, pl.inf): + P = P[:, :j*cP] + degP = degP-1 + else: + j=0 + j -= 1 + return P, degP + +if __name__== "__main__": + s = """P = pl.array([[1, 2, 3, 4, 0, 0, 0, 0], + [9, 10, 11, 12, 0, 0, 0, 0], + [5, 6, 7, 8, 0, 0, 0, 0]])""" + t = """degP = 3""" + print s, t + exec(s) + exec(t) + + print clcoef(P, degP)