Matrix#
- class discopy.matrix.Matrix(dom, cod, array)[source]#
Bases:
Box
Implements a matrix with dom, cod and numpy array.
Examples
>>> m = Matrix(PRO(2), PRO(2), [0, 1, 1, 0]) >>> v = Matrix(PRO(1), PRO(2), [0, 1]) >>> assert (str(v) == repr(v) ... == 'Matrix(dom=PRO(1), cod=PRO(2), array=[0, 1])') >>> v >> m >> v.dagger() Matrix(dom=PRO(1), cod=PRO(1), array=[0]) >>> m + m Matrix(dom=PRO(2), cod=PRO(2), array=[0, 2, 2, 0]) >>> assert m.then(m, m, m, m) == m == m >> m >> m >> m >> m
The monoidal product for
Matrix
is the direct sum:>>> x = Matrix(PRO(2), PRO(1), [2, 4]) >>> x.array array([[2], [4]]) >>> x @ x Matrix(dom=PRO(4), cod=PRO(2), array=[2, 0, 4, 0, 0, 2, 0, 4]) >>> (x @ x).array array([[2, 0], [4, 0], [0, 2], [0, 4]])
- property array#
Numpy array.