コード例 #1
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __mul__(self, other):
     if isinstance(other, Number):
         return Matrix(API.scalarMultiply(self._matrix, other))
     elif isinstance(other, Vector):
         return Vector(API.operate(self._matrix, other._vector))
     else:
         return Matrix(API.multiply(self._matrix, other._matrix))
コード例 #2
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __init__(self, mat):
     self._dec = API.newSingularValueDecompositionImpl(mat._matrix)
コード例 #3
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __sub__(self, other):
     if isinstance(other, Number):
         return Matrix(API.scalarAdd(self._matrix, -other))
     else:
         return Matrix(API.subtract(self._matrix, other._matrix))
コード例 #4
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def init_fromsize(self, rows, columns):
     self._matrix = API.newArray2DRowRealMatrix(rows, columns)
コード例 #5
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def norm(self):
     return API.getNorm(self._vector)
コード例 #6
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __setitem__(self, i, val):
     if 0 <= i < len(self):
         API.setEntry(self._vector, i, val)
     else:
         raise IndexError
コード例 #7
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __mul__(self, other):
     if isinstance(other, Number):
         return Vector(API.mapMultiply(self._vector, other))
     else:
         return Vector(API.dotProduct(self._vector, other._vector))
コード例 #8
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __add__(self, other):
     return Vector(API.add(self._vector, other._vector))
コード例 #9
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def rows(self):
     return API.getRowDimension(self._matrix)
コード例 #10
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def increment(self, i, j, val):
     API.addToEntry(self._matrix, i, j, val)
コード例 #11
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __getitem__(self, ij):
     i, j = ij
     return API.getEntry(self._matrix, i, j)
コード例 #12
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __setitem__(self, ij, val):
     i, j = ij
     API.setEntry(self._matrix, i, j, val)
コード例 #13
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __pow__(self, n):
     return Matrix(API.power(self._matrix, n))
コード例 #14
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __init__(self):
     self._vector = API.newArrayRealVector()
コード例 #15
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def columns(self):
     return API.getColumnDimension(self._matrix)
コード例 #16
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def init_fromlist(self, data):
     self._vector = API.newArrayRealVector(data)
コード例 #17
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def norm(self):
     return API.getNorm(self._matrix)
コード例 #18
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __sub__(self, other):
     return Vector(API.subtract(self._vector, other._vector))
コード例 #19
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def trace(self):
     return API.getTrace(self._matrix)
コード例 #20
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __getitem__(self, i):
     if 0 <= i < len(self):
         return API.getEntry(self._vector, i)
     else:
         raise IndexError
コード例 #21
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def solve_matrix(self, mat):
     return Matrix(API.solve(self._solver, mat._matrix))
コード例 #22
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __len__(self):
     return API.getDimension(self._vector)
コード例 #23
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def solve_vector(self, vec):
     return Vector(API.solve(self._solver, vec._vector))
コード例 #24
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __init__(self):
     self._matrix = API.newArray2DRowRealMatrix()
コード例 #25
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def solver(self):
     try:
         solver = self._solver
     except AttributeError:
         solver = self._solver = Solver(API.getSolver(self._dec))
     return solver
コード例 #26
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def init_fromdata(self, data):
     self._matrix = API.newArray2DRowRealMatrix(data)
コード例 #27
0
ファイル: linalg.py プロジェクト: aeriksson/geogebra
 def __add__(self, other):
     if isinstance(other, Number):
         return Matrix(API.scalarAdd(self._matrix, other))
     else:
         return Matrix(API.add(self._matrix, other._matrix))