%cython
from sage.rings.complex_double cimport ComplexDoubleElement
from sage.rings.complex_double import CDF
cdef ComplexDoubleElement one = CDF(1), zero = CDF(0)
import numpy
cdef class Matrix2:
cdef complex m00, m01, m10, m11
def __init__(self, complex a, complex b,complex c,complex d):
self.m00=a; self.m01=b;
self.m10=c; self.m11=d
def __repr__(self):
return repr(self.numpy())
def numpy(self):
return numpy.array([[self.m00, self.m01], [self.m10, self.m11]])
def __mul__(Matrix2 self not None, Matrix2 right not None):
cdef Matrix2 res = PY_NEW(Matrix2)
res.m00=self.m00*right.m00+self.m01*right.m10
res.m01=self.m00*right.m01+self.m01*right.m11
res.m10=self.m10*right.m00+self.m11*right.m10
res.m11=self.m10*right.m01+self.m11*right.m11
return res