# cliffordModuleToMatrixFactorization -- reads off a matrix factorization from a Clifford module

## Synopsis

• Usage:
(M1,M2) = cliffordModuleToMatrixFactorization(M,S)
• Inputs:
• M, an instance of the type CliffordModule, a Clifford module on a hyperelliptic curve E of genus g
• S, a ring, a polynomial ring in x_0..y_{(g-1)},z_1,z_2,s,t
• Outputs:
• M1, ,
• M2, , (M1, M2) a matrix factorization of qq, the equation of the associated pencil of quadrics

## Description

Part of the series of explicit functors giving category equivalences:

cliffordModule

cliffordModuleToCIResolution

cliffordModuleToMatrixFactorization

ciModuleToMatrixFactorization

ciModuleToCliffordModule

A Clifford module M on the Clifford algebra C:=Cliff(qq) of a quadratic form qq has keys evenOperator and oddOperator, the list of the even operators uEv_i : M_0 \to M_1 and the odd operators uOdd_i : M_1 \to M_0, which form a representation of C.

From this representation we read off a matrix factorization (M1, M2) of qq.

 i1 : kk=ZZ/101; i2 : g=1; i3 : rNP=randNicePencil(kk,g); i4 : qq=rNP.quadraticForm; i5 : S=rNP.qqRing; i6 : cM=cliffordModule(rNP.matFact1,rNP.matFact2,rNP.baseRing) o6 = CliffordModule{...6...} o6 : CliffordModule i7 : (M1,M2)=cliffordModuleToMatrixFactorization(cM,S); i8 : r=rank source M1 o8 = 8 i9 : M1*M2 - qq*id_(S^r) == 0 o9 = true i10 : M1 == rNP.matFact1 o10 = true i11 : M2 == rNP.matFact2 o11 = true i12 : cMu=cliffordModule(rNP.matFactu1,rNP.matFactu2,rNP.baseRing) o12 = CliffordModule{...6...} o12 : CliffordModule i13 : (Mu1,Mu2)=cliffordModuleToMatrixFactorization(cMu,S); i14 : ru=rank source Mu1 o14 = 4 i15 : Mu1*Mu2 - qq*id_(S^ru) == 0 o15 = true i16 : Mu1 == rNP.matFactu1 o16 = true i17 : Mu2 == rNP.matFactu2 o17 = true