matrix¶
The matrix module defines an abstract Matrix
object and several
implementations. Matrix objects support basic addition and subtraction
operations and provide a consistent insterface for solving linear systems.
Matrices can be converted into other forms suitable for external processing via
the export
method.
- exception nutils.matrix.MatrixError¶
Bases:
Exception
General error message for matrix-related failure.
- __weakref__¶
list of weak references to the object (if defined)
- exception nutils.matrix.BackendNotAvailable¶
Bases:
nutils.matrix.MatrixError
Error message reporting that the selected matrix backend is not available on the system.
- exception nutils.matrix.ToleranceNotReached(best)¶
Bases:
nutils.matrix.MatrixError
Error message reporting that the configured linear solver tolerance was not reached. The
.best
attribute carries the non-conforming solution.
- class nutils.matrix.Backend¶
Bases:
object
backend base class
- abstract assemble(self, data, index, shape)¶
Assemble a (sparse) matrix based on index-value pairs.
Note
This function is abstract.
- __weakref__¶
list of weak references to the object (if defined)
- class nutils.matrix.Matrix(shape)¶
Bases:
object
matrix base class
- abstract __add__(self, other)¶
add two matrices
- abstract __mul__(self, other)¶
multiply matrix with a scalar
- abstract __matmul__(self, other)¶
multiply matrix with a dense tensor
- abstract __neg__(self)¶
negate matrix
- abstract property T¶
transpose matrix
- rowsupp(self, tol=0)¶
return row indices with nonzero/non-small entries
- solve(self, rhs=None, *, lhs0=None, constrain=None, rconstrain=None, solver='direct', atol=0.0, rtol=0.0, **solverargs)¶
Solve system given right hand side vector and/or constraints.
- Parameters
rhs (
float
vector orNone
) – Right hand side vector. None implies all zeros.lhs0 (class:float vector or
None
) – Initial values. None implies all zeros.constrain (
float
orbool
array, orNone
) – Column constraints. For float values, a number signifies a constraint, NaN signifies a free dof. For boolean, a True value signifies a constraint to the value in lhs0, a False value signifies a free dof. None implies no constraints.rconstrain (
bool
array orNone
) – Row constrains. A True value signifies a constrains, a False value a free dof. None implies that the constraints follow those defined in constrain (by implication the matrix must be square).solver (
str
) – Name of the solver algorithm. The set of available solvers depends on the type of the matrix (i.e. the active backend), although all matrices should implement at least the ‘direct’ solver.**kwargs – All remaining arguments are passed on to the selected solver method.
- Returns
Left hand side vector.
- Return type
- solve_leniently(self, *args, **kwargs)¶
Identical to
nutils.matrix.Matrix.solve()
, but emit a warning in case tolerances are not met rather than an exception, while returning the obtained solution vector.
- abstract submatrix(self, rows, cols)¶
Create submatrix from selected rows, columns.
- export(self, form)¶
Export matrix data to any of supported forms.
- Parameters
form (
str
) –“dense” : return matrix as a single dense array
”csr” : return matrix as 3-tuple of (data, indices, indptr)
”coo” : return matrix as 2-tuple of (data, (row, col))
- __weakref__¶
list of weak references to the object (if defined)
- class nutils.matrix.Numpy¶
Bases:
nutils.matrix.Backend
matrix backend based on numpy array
- class nutils.matrix.NumpyMatrix(core)¶
Bases:
nutils.matrix.Matrix
matrix based on numpy array
- class nutils.matrix.Scipy¶
Bases:
nutils.matrix.Backend
matrix backend based on scipy’s sparse matrices
- class nutils.matrix.ScipyMatrix(core, scipy)¶
Bases:
nutils.matrix.Matrix
matrix based on any of scipy’s sparse matrices
- class nutils.matrix.MKL(threading=None)¶
Bases:
nutils.matrix.Backend
matrix backend based on Intel’s Math Kernel Library
- class nutils.matrix.Pardiso(libmkl)¶
Bases:
object
simple wrapper for libmkl.pardiso
https://software.intel.com/en-us/mkl-developer-reference-c-pardiso
- __weakref__¶
list of weak references to the object (if defined)
- class nutils.matrix.MKLMatrix(data, rowptr, colidx, ncols, libmkl)¶
Bases:
nutils.matrix.Matrix
matrix implementation based on sorted coo data