symforce.geo.matrix module

class Matrix(*args, **kwargs)[source]

Bases: Storage

Matrix type that wraps the Sympy Matrix class. Care has been taken to allow this class to create fixed-size child classes like Matrix31. Anytime __new__ is called, the appropriate fixed size class is returned rather than the type of the arguments. The API is meant to parallel the way Eigen’s C++ matrix classes work with dynamic and fixed sizes.

References

https://docs.sympy.org/latest/tutorial/matrices.html https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html https://en.wikipedia.org/wiki/Vector_space

Matrix does not implement the group or lie group concepts using instance/class methods directly, because we want it to represent the group R^{NxM}, not GL(n), which leads to the identity and inverse methods being confusingly named. For the group ops and lie group ops, use ops.GroupOps and ops.LieGroupOps respectively, which use the implementation in vector_class_lie_group_ops.py of the R^{NxM} group under matrix addition. For the identity matrix and inverse matrix, see Matrix.eye and Matrix.inv respectively.

Parameters:
  • args (Any) –

  • kwargs (Any) –

MatrixT

alias of TypeVar(‘MatrixT’, bound=Matrix)

SHAPE = (-1, -1)
static __new__(cls, *args, **kwargs)[source]

Beast of a method for creating a Matrix. Handles a variety of construction use cases and always returns a fixed size child class of Matrix rather than Matrix itself. The available construction options depend on whether cls is a fixed size type or not.

Generally modeled after the Eigen interface, but must also support internal use within sympy and symengine which we cannot change.

Examples

  1. Matrix32() # Zero constructed Matrix32

2) Matrix(sm.Matrix([[1, 2], [3, 4]])) # Matrix22 with [1, 2, 3, 4] data 3A) Matrix([[1, 2], [3, 4]]) # Matrix22 with [1, 2, 3, 4] data 3B) Matrix22([1, 2, 3, 4]) # Matrix22 with [1, 2, 3, 4] data (must matched fixed shape) 3C) Matrix([1, 2, 3, 4]) # Matrix41 with [1, 2, 3, 4] data - column vector assumed 4) Matrix(4, 3) # Zero constructed Matrix43 5) Matrix(2, 2, [1, 2, 3, 4]) # Matrix22 with [1, 2, 3, 4] data (first two are shape) 6) Matrix(2, 2, lambda row, col: row + col) # Matrix22 with [0, 1, 1, 2] data 7) Matrix22(1, 2, 3, 4) # Matrix22 with [1, 2, 3, 4] data (must match fixed length)

Parameters:
  • args (Any) –

  • kwargs (Any) –

Return type:

Matrix

__init__(*args, **kwargs)[source]
Parameters:
  • args (Any) –

  • kwargs (Any) –

property rows: int
Return type:

int

property cols: int
Return type:

int

property shape: Tuple[int, int]
Return type:

Tuple[int, int]

property is_Matrix: bool
Return type:

bool

classmethod storage_dim()[source]

Dimension of underlying storage

Return type:

int

classmethod from_storage(vec)[source]

Construct from a flat list representation. Opposite of .to_storage().

Parameters:
  • cls (_T.Type[MatrixT]) –

  • vec (_T.Sequence[_T.Scalar]) –

Return type:

MatrixT

to_storage()[source]

Flat list representation of the underlying storage, length of STORAGE_DIM. This is used purely for plumbing, it is NOT like a tangent space.

Return type:

List[float]

classmethod tangent_dim()[source]
Return type:

int

classmethod from_tangent(vec, epsilon=0.0)[source]
Parameters:
  • cls (_T.Type[MatrixT]) –

  • vec (_T.Sequence[_T.Scalar]) –

  • epsilon (_T.Scalar) –

Return type:

MatrixT

to_tangent(epsilon=0.0)[source]
Parameters:

epsilon (float) –

Return type:

List[float]

storage_D_tangent()[source]
Return type:

Matrix

tangent_D_storage()[source]
Return type:

Matrix

classmethod zero()[source]

Matrix of zeros.

Parameters:

cls (_T.Type[MatrixT]) –

Return type:

MatrixT

classmethod zeros(rows, cols)[source]

Matrix of zeros.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

classmethod one()[source]

Matrix of ones.

Parameters:

cls (_T.Type[MatrixT]) –

Return type:

MatrixT

classmethod ones(rows, cols)[source]

Matrix of ones.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

classmethod diag(diagonal)[source]

Construct a square matrix from the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • diagonal (_T.Sequence[_T.Scalar]) –

Return type:

MatrixT

classmethod eye(rows=None, cols=None)[source]

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

inv(method='LU')[source]

Inverse of the matrix.

Parameters:
  • self (MatrixT) –

  • method (str) –

Return type:

MatrixT

classmethod symbolic(name, **kwargs)[source]

Create with symbols.

Parameters:
  • name (str) – Name prefix of the symbols

  • **kwargs (dict) – Forwarded to sf.Symbol

  • cls (_T.Type[MatrixT]) –

  • kwargs (_T.Any) –

Return type:

MatrixT

row_join(right)[source]

Concatenates self with another matrix on the right

Parameters:

right (Matrix) –

Return type:

Matrix

col_join(bottom)[source]

Concatenates self with another matrix below

Parameters:

bottom (Matrix) –

Return type:

Matrix

classmethod block_matrix(array)[source]

Constructs a matrix from block elements. For example: [[Matrix22(…), Matrix23(…)], [Matrix11(…), Matrix14(…)]] -> Matrix35 with elements equal to given blocks

Parameters:

array (Sequence[Sequence[Matrix]]) –

Return type:

Matrix

simplify(*args, **kwargs)[source]

Simplify this expression.

This overrides the sympy implementation because that clobbers the class type.

Parameters:
  • args (Any) –

  • kwargs (Any) –

Return type:

Matrix

limit(*args, **kwargs)[source]

Take the limit at z = z0

This overrides the sympy implementation because that clobbers the class type.

Parameters:
  • args (Any) –

  • kwargs (Any) –

Return type:

Matrix

jacobian(X, tangent_space=True)[source]

Compute the jacobian with respect to the tangent space of X if tangent_space = True, otherwise returns the jacobian wih respect to the storage elements of X.

Parameters:
  • X (Any) –

  • tangent_space (bool) –

Return type:

Matrix

diff(*args)[source]

Differentiate wrt a scalar.

Parameters:

args (float) –

Return type:

Matrix

property T: Matrix

Matrix Transpose

Return type:

Matrix

transpose()[source]

Matrix Transpose

Return type:

Matrix

reshape(rows, cols)[source]
Parameters:
  • rows (int) –

  • cols (int) –

Return type:

Matrix

dot(other)[source]

Dot product, also known as inner product. dot only supports mapping 1 x n or n x 1 Matrices to scalars. Note that both matrices must have the same shape.

Parameters:

other (Matrix) –

Return type:

float

cross(other)[source]

Cross product.

Parameters:
  • self (MatrixT) –

  • other (MatrixT) –

Return type:

Vector3

squared_norm()[source]

Squared norm of a vector, equivalent to the dot product with itself.

Return type:

float

norm(epsilon=0.0)[source]

Norm of a vector (square root of magnitude).

Parameters:

epsilon (float) –

Return type:

float

normalized(epsilon=0.0)[source]

Returns a unit vector in this direction (divide by norm).

Parameters:
  • self (MatrixT) –

  • epsilon (_T.Scalar) –

Return type:

MatrixT

clamp_norm(max_norm, epsilon=0.0)[source]

Clamp a vector to the given norm in a safe/differentiable way.

Is _NOT_ safe if max_norm can be negative, or if derivatives are needed w.r.t. max_norm and max_norm can be 0 or small enough that max_squared_norm / squared_norm is truncated to 0 in the particular floating point type being used (e.g. all of these are true if max_norm is optimized)

Currently only L2 norm is supported

Parameters:
  • self (MatrixT) –

  • max_norm (_T.Scalar) –

  • epsilon (_T.Scalar) –

Return type:

MatrixT

multiply_elementwise(rhs)[source]

Do the elementwise multiplication between self and rhs, and return the result as a new Matrix

Parameters:
  • self (MatrixT) –

  • rhs (MatrixT) –

Return type:

MatrixT

applyfunc(func)[source]

Apply a unary operation to every scalar.

Parameters:
  • self (MatrixT) –

  • func (_T.Callable) –

Return type:

MatrixT

__getitem__(item)[source]

Get a scalar value or submatrix slice.

Parameters:

item (Any) –

Return type:

Any

row(r)[source]

Extract a row of the matrix

Parameters:

r (int) –

Return type:

Matrix

col(c)[source]

Extract a column of the matrix

Parameters:

c (int) –

Return type:

Matrix

__neg__()[source]

Negate matrix.

Parameters:

self (MatrixT) –

Return type:

MatrixT

__add__(right)[source]

Add a scalar or matrix to this matrix.

Parameters:
  • self (MatrixT) –

  • right (_T.Union[_T.Scalar, MatrixT]) –

Return type:

MatrixT

__sub__(right)[source]

Subtract a scalar or matrix from this matrix.

Parameters:
  • self (MatrixT) –

  • right (_T.Union[_T.Scalar, MatrixT]) –

Return type:

MatrixT

__mul__(right)[source]

Multiply a matrix by a scalar or matrix

Parameters:

right (_T.Union[MatrixT, _T.Scalar, Matrix, sf.sympy.MutableDenseMatrix]) –

Return type:

_T.Union[MatrixT, Matrix]

__rmul__(left)[source]

Left multiply a matrix by a scalar or matrix

Parameters:

left (_T.Union[MatrixT, _T.Scalar, Matrix, sf.sympy.MutableDenseMatrix]) –

Return type:

_T.Union[MatrixT, Matrix]

__div__(right)[source]

Divide a matrix by a scalar or a matrix (which takes the inverse).

Parameters:

right (_T.Union[MatrixT, _T.Scalar, Matrix, sf.sympy.MutableDenseMatrix]) –

Return type:

_T.Union[MatrixT, Matrix]

compute_AtA(lower_only=False)[source]

Compute a symmetric product A.transpose() * A

Parameters:

lower_only (bool) – If given, only fill the lower half and set upper to zero

Returns:

Symmetric matrix AtA = self.transpose() * self

Return type:

(Matrix(N, N))

LU()[source]

LU matrix decomposition

Return type:

Union[Tuple[Matrix, Matrix], Tuple[Matrix, Matrix, List[Tuple[int, int]]]]

LDL()[source]

LDL matrix decomposition (stable cholesky)

Return type:

Tuple[Matrix, Matrix]

FFLU()[source]

Fraction-free LU matrix decomposition

Return type:

Tuple[Matrix, Matrix]

FFLDU()[source]

Fraction-free LDU matrix decomposition

Return type:

Union[Tuple[Matrix, Matrix, Matrix], Tuple[Matrix, Matrix, Matrix, Matrix]]

solve(b, method='LU')[source]

Solve a linear system using the given method.

Parameters:
  • b (Matrix) –

  • method (str) –

Return type:

Matrix

__truediv__(right)

Divide a matrix by a scalar or a matrix (which takes the inverse).

Parameters:

right (_T.Union[MatrixT, _T.Scalar, Matrix, sf.sympy.MutableDenseMatrix]) –

Return type:

_T.Union[MatrixT, Matrix]

static are_parallel(a, b, tolerance)[source]

Returns 1 if a and b are parallel within tolerance, and 0 otherwise.

Parameters:
Return type:

float

static skew_symmetric(a)[source]

Compute a skew-symmetric matrix of given a 3-vector.

Parameters:

a (Matrix31) –

Return type:

Matrix33

evalf()[source]

Perform numerical evaluation of each element in the matrix.

Return type:

Matrix

to_list()[source]

Convert to a nested list

Return type:

List[List[float]]

to_flat_list()[source]

Convert to a flattened list

Return type:

List[float]

classmethod from_flat_list(vec)[source]
Parameters:

vec (Sequence[float]) –

Return type:

Matrix

to_numpy(scalar_type=<class 'numpy.float64'>)[source]

Convert to a numpy array.

Parameters:

scalar_type (type) –

Return type:

ndarray

classmethod column_stack(*columns)[source]

Take a sequence of 1-D vectors and stack them as columns to make a single 2-D Matrix.

Parameters:

columns (tuple(Matrix)) – 1-D vectors

Return type:

Matrix

is_vector()[source]
Return type:

bool

static init_printing()[source]

Initialize SymPy pretty printing

_ipython_display_ is sufficient in Jupyter, but this covers other locations

Return type:

None

class Matrix11(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 1)
class Matrix21(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 1)
static unit_x()[source]

The unit vector [1, 0]

Return type:

Matrix21

static unit_y()[source]

The unit vector [0, 1]

Return type:

Matrix21

property x: float

The entry self[0, 0]

Return type:

float

property y: float

The entry self[1, 0]

Return type:

float

class Matrix31(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 1)
static unit_x()[source]

The unit vector [1, 0, 0]

Return type:

Matrix31

static unit_y()[source]

The unit vector [0, 1, 0]

Return type:

Matrix31

static unit_z()[source]

The unit vector [0, 0, 1]

Return type:

Matrix31

property x: float

The entry self[0, 0]

Return type:

float

property y: float

The entry self[1, 0]

Return type:

float

property z: float

The entry self[2, 0]

Return type:

float

class Matrix41(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 1)
class Matrix51(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 1)
class Matrix61(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 1)
class Matrix71(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 1)
class Matrix81(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 1)
class Matrix91(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 1)
class Matrix12(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 2)
class Matrix22(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 2)
class Matrix32(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 2)
class Matrix42(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 2)
class Matrix52(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 2)
class Matrix62(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 2)
class Matrix72(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 2)
class Matrix82(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 2)
class Matrix92(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 2)
class Matrix13(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 3)
class Matrix23(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 3)
class Matrix33(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 3)
class Matrix43(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 3)
class Matrix53(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 3)
class Matrix63(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 3)
class Matrix73(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 3)
class Matrix83(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 3)
class Matrix93(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 3)
class Matrix14(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 4)
class Matrix24(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 4)
class Matrix34(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 4)
class Matrix44(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 4)
class Matrix54(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 4)
class Matrix64(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 4)
class Matrix74(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 4)
class Matrix84(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 4)
class Matrix94(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 4)
class Matrix15(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 5)
class Matrix25(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 5)
class Matrix35(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 5)
class Matrix45(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 5)
class Matrix55(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 5)
class Matrix65(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 5)
class Matrix75(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 5)
class Matrix85(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 5)
class Matrix95(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 5)
class Matrix16(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 6)
class Matrix26(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 6)
class Matrix36(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 6)
class Matrix46(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 6)
class Matrix56(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 6)
class Matrix66(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 6)
class Matrix76(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 6)
class Matrix86(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 6)
class Matrix96(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 6)
class Matrix17(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 7)
class Matrix27(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 7)
class Matrix37(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 7)
class Matrix47(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 7)
class Matrix57(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 7)
class Matrix67(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 7)
class Matrix77(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 7)
class Matrix87(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 7)
class Matrix97(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 7)
class Matrix18(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 8)
class Matrix28(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 8)
class Matrix38(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 8)
class Matrix48(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 8)
class Matrix58(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 8)
class Matrix68(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 8)
class Matrix78(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 8)
class Matrix88(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 8)
class Matrix98(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 8)
class Matrix19(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (1, 9)
class Matrix29(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (2, 9)
class Matrix39(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (3, 9)
class Matrix49(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (4, 9)
class Matrix59(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (5, 9)
class Matrix69(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (6, 9)
class Matrix79(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (7, 9)
class Matrix89(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (8, 9)
class Matrix99(*args, **kwargs)[source]

Bases: Matrix

Parameters:
  • args (Any) –

  • kwargs (Any) –

SHAPE = (9, 9)
m

alias of Matrix99

matrix_type_from_shape(shape)[source]

Return a fixed size matrix type (like Matrix32) given a shape. Either use the statically defined ones or dynamically create a new one if not available.

Parameters:

shape (Tuple[int, int]) –

Return type:

Type[Matrix]

M

alias of Matrix

Vector1

alias of Matrix11

Vector2

alias of Matrix21

Vector3

alias of Matrix31

Vector4

alias of Matrix41

Vector5

alias of Matrix51

Vector6

alias of Matrix61

Vector7

alias of Matrix71

Vector8

alias of Matrix81

Vector9

alias of Matrix91

V1

alias of Matrix11

V2

alias of Matrix21

V3

alias of Matrix31

V4

alias of Matrix41

V5

alias of Matrix51

V6

alias of Matrix61

V7

alias of Matrix71

V8

alias of Matrix81

V9

alias of Matrix91

M11

alias of Matrix11

M21

alias of Matrix21

M31

alias of Matrix31

M41

alias of Matrix41

M51

alias of Matrix51

M61

alias of Matrix61

M71

alias of Matrix71

M81

alias of Matrix81

M91

alias of Matrix91

M12

alias of Matrix12

M22

alias of Matrix22

M32

alias of Matrix32

M42

alias of Matrix42

M52

alias of Matrix52

M62

alias of Matrix62

M72

alias of Matrix72

M82

alias of Matrix82

M92

alias of Matrix92

M13

alias of Matrix13

M23

alias of Matrix23

M33

alias of Matrix33

M43

alias of Matrix43

M53

alias of Matrix53

M63

alias of Matrix63

M73

alias of Matrix73

M83

alias of Matrix83

M93

alias of Matrix93

M14

alias of Matrix14

M24

alias of Matrix24

M34

alias of Matrix34

M44

alias of Matrix44

M54

alias of Matrix54

M64

alias of Matrix64

M74

alias of Matrix74

M84

alias of Matrix84

M94

alias of Matrix94

M15

alias of Matrix15

M25

alias of Matrix25

M35

alias of Matrix35

M45

alias of Matrix45

M55

alias of Matrix55

M65

alias of Matrix65

M75

alias of Matrix75

M85

alias of Matrix85

M95

alias of Matrix95

M16

alias of Matrix16

M26

alias of Matrix26

M36

alias of Matrix36

M46

alias of Matrix46

M56

alias of Matrix56

M66

alias of Matrix66

M76

alias of Matrix76

M86

alias of Matrix86

M96

alias of Matrix96

M17

alias of Matrix17

M27

alias of Matrix27

M37

alias of Matrix37

M47

alias of Matrix47

M57

alias of Matrix57

M67

alias of Matrix67

M77

alias of Matrix77

M87

alias of Matrix87

M97

alias of Matrix97

M18

alias of Matrix18

M28

alias of Matrix28

M38

alias of Matrix38

M48

alias of Matrix48

M58

alias of Matrix58

M68

alias of Matrix68

M78

alias of Matrix78

M88

alias of Matrix88

M98

alias of Matrix98

M19

alias of Matrix19

M29

alias of Matrix29

M39

alias of Matrix39

M49

alias of Matrix49

M59

alias of Matrix59

M69

alias of Matrix69

M79

alias of Matrix79

M89

alias of Matrix89

M99

alias of Matrix99

I1(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I11(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I2(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I22(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I3(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I33(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I4(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I44(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I5(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I55(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I6(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I66(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I7(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I77(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I8(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I88(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I9(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT

I99(rows=None, cols=None)

Construct an identity matrix

If neither rows nor cols is provided, this must be called as a class method on a fixed-size class.

If rows is provided, returns a square identity matrix of shape (rows x rows).

If rows and cols are provided, returns a (rows x cols) matrix, with ones on the diagonal.

Parameters:
  • cls (_T.Type[MatrixT]) –

  • rows (int) –

  • cols (int) –

Return type:

MatrixT