def solve(A, B): F = Algebra(); if isinstance(A, ndarray) and isinstance(B, float): return F.solve(A._M, B); elif isinstance(B, ndarray) and isinstance(A, float): return F.solve(A, B._M); elif isinstance(A,ndarray) and isinstance(B, ndarray): return ndarray(F.solve(A._M, B._M)) else: return A / B
def solve(A, B): F = Algebra() if isinstance(A, ndarray) and isinstance(B, float): return F.solve(A._M, B) elif isinstance(B, ndarray) and isinstance(A, float): return F.solve(A, B._M) elif isinstance(A, ndarray) and isinstance(B, ndarray): return ndarray(F.solve(A._M, B._M)) else: return A / B
def __div__(A, B): try: F = Algebra() R = F.solve(A._M, B._M) return R except (java.lang.IllegalArgumentException), e: # check the error class types according to the matrix class so we can intelligently report the error. print e.getMessage() return None
def __div__(A, B): try: F = Algebra(); R = F.solve(A._M, B._M); return R; except (java.lang.IllegalArgumentException), e: # check the error class types according to the matrix class so we can intelligently report the error. print e.getMessage() return None
def directlinearsolve(): from no.uib.cipr.matrix import Matrices, DenseMatrix, DenseVector from cern.colt.matrix import DoubleMatrix2D, DoubleFactory2D from cern.colt.matrix.linalg import Algebra sz = 1000 # MTJ x = DenseVector(sz) t = time.time() mat = Matrices.random(sz,sz) b = Matrices.random(sz) mat.solve(b,x) print "Mtj :" + str(time.time() - t) # Colt alg = Algebra() f = DoubleFactory2D.dense t = time.time() A = f.random(sz,sz) b = f.random(sz,1) x = alg.solve(A,b) print "Colt :" + str(time.time() - t)