diff -r 000000000000 -r 0efde00f9229 python/cindep.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/cindep.py Fri May 27 14:24:59 2011 +0530 @@ -0,0 +1,37 @@ +#!/usr/bin/python + +import pylab as pl +from makezero import makezero + +def cindep(S, gap=None): + E = pl.finfo(float).eps + + if gap == None: + gap = 1e8 + + r, c = pl.atleast_2d(S).shape + + if r>c: + ind = 0 + else: + sigma = pl.svd(S)[1] + l = len(sigma) + if(sigma[-1]/sigma[0] < (E*max(1, c))): + ind = 0 + else: + if pl.any(sigma[:-1]/sigma[1:] >= gap): + ind = 0 + else: + ind = 1 + if ind: + b = pl.array([]) + + else: + A, B = S[r-1,:], S[:r-1,:] + b = pl.lstsq(B.T, A.T)[0].T + b = makezero(b, gap) + b = b.squeeze() + return pl.atleast_2d(b) + +if __name__== "__main__": + pass