Beispiel #1
0
def rank(A):

    if isinstance(A, ndarray):
        F = Algebra()
        r = F.rank(A._M)
        return int(r)
    else:
        raise PyValueException, "Rank function can only be called on matrix objects"
Beispiel #2
0
 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
Beispiel #3
0
 def __mul__(A, B):
     # need to check types and multiple based on them..
     try:
         F = Algebra()
         C = (F.mult(A._M, B._M))
     except:
         raise PyValueException, "Inner dimension mismatch in matrix multiply."
         return None
     return ndarray(C)
Beispiel #4
0
def norm(A, ntype=None):
    F = Algebra()
    if ntype == 'fro':
        r = F.normF(A._M)
    elif ntype == 2:
        r = F.norm2(A._M)
    else:
        r = F.norm2(A._M)
    return r
Beispiel #5
0
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
Beispiel #6
0
def inverse(A):
    F = Algebra()
    x = F.inverse(A._M)
    return ndarray(x)
Beispiel #7
0
def transpose(A):
    F = Algebra()
    if isinstance(A, float):
        return A
    else:
        return ndarray(F.transpose(A._M))
Beispiel #8
0
def cond(A):
    F = Algebra()
    return F.cond(A._M)