  
  [1X14 [33X[0;0YInterfaces to other software packages[133X[101X
  
  [33X[0;0Y[5Xsimpcomp[105X contains various interfaces to other software packages (see Chapter
  [14X13[114X  for  file-related export and import formats). In this chapter, some more
  sophisticated interfaces to other software packages are described.[133X
  
  [33X[0;0YNote  that  this chapter is subject to change and extension as it is planned
  to  expand  [5Xsimpcomp[105X's  functionality in this area in the course of the next
  versions.[133X
  
  
  [1X14.1 [33X[0;0YInterface to the [5XGAP[105X[101X[1X-package [5Xhomalg[105X[101X[1X[133X[101X
  
  [33X[0;0YAs of Version 1.5, [5Xsimpcomp[105X is equipped with an interface to the [5XGAP[105X-package
  [5Xhomalg[105X  [BR08]  by  Mohamed  Barakat.  This  allows to use [5Xhomalg[105X's powerful
  capabilities  in  the  field  of  homological algebra to compute topological
  properties of simplicial complexes.[133X
  
  [33X[0;0YFor the time being, the only functions provided are ones allowing to compute
  the  homology  and  cohomology groups of simplicial complexes with arbitrary
  coefficients.  It  is planned to extend the functionality in future releases
  of  [5Xsimpcomp[105X. See below for a list of functions that provide an interface to
  [5Xhomalg[105X.[133X
  
  [1X14.1-1 SCHomalgBoundaryMatrices[101X
  
  [29X[2XSCHomalgBoundaryMatrices[102X( [3Xcomplex[103X, [3Xmodulus[103X ) [32X method
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X objects upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis  function  computes  the  boundary operator matrices for the simplicial
  complex [3Xcomplex[103X with a ring of coefficients as specified by [3Xmodulus[103X: a value
  of [10X0[110X yields [22XQ[122X-matrices, a value of [10X1[110X yields [22XZ[122X-matrices and a value of [10Xq[110X, q a
  prime or a prime power, computes the [22XF_q[122X-matrices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("CP^2 (VT)");
[128X[104X
    [4X[28X [ [ 16, "CP^2 (VT)" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(last[1][1]);;
[128X[104X
    [4X[28X gap> SCHomalgBoundaryMatrices(c,0);
[128X[104X
    [4X[28X [ <A 36 x 9 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <A 84 x 36 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <A 90 x 84 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <A 36 x 90 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <An unevaluated 0 x 36 zero matrix over an internal ring> ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X14.1-2 SCHomalgCoboundaryMatrices[101X
  
  [29X[2XSCHomalgCoboundaryMatrices[102X( [3Xcomplex[103X, [3Xmodulus[103X ) [32X method
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X objects upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis  function  computes the coboundary operator matrices for the simplicial
  complex [3Xcomplex[103X with a ring of coefficients as specified by [3Xmodulus[103X: a value
  of [10X0[110X yields [22XQ[122X-matrices, a value of [10X1[110X yields [22XZ[122X-matrices and a value of [10Xq[110X, q a
  prime or a prime power, computes the [22XF_q[122X-matrices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("CP^2 (VT)");
[128X[104X
    [4X[28X [ [ 16, "CP^2 (VT)" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(last[1][1]);;
[128X[104X
    [4X[28X gap> SCHomalgCoboundaryMatrices(c,0);
[128X[104X
    [4X[28X [ <A 9 x 36 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <A 36 x 84 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <A 84 x 90 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <A 90 x 36 mutable matrix over an internal ring>, [128X[104X
    [4X[28X   <An unevaluated 36 x 0 zero matrix over an internal ring> ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X14.1-3 SCHomalgHomology[101X
  
  [29X[2XSCHomalgHomology[102X( [3Xcomplex[103X, [3Xmodulus[103X ) [32X method
  [6XReturns:[106X  [33X[0;10Ya list of integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis  function  computes  the ranks of the homology groups of [3Xcomplex[103X with a
  ring  of  coefficients  as  specified  by [3Xmodulus[103X: a value of [10X0[110X computes the
  [22XQ[122X-homology, a value of [10X1[110X computes the [22XZ[122X-homology and a value of [10Xq[110X, q a prime
  or a prime power, computes the [22XF_q[122X-homology ranks.[133X
  
  [33X[0;0YNote  that  if  you  are  interested  not  only in the ranks of the homology
  groups,  but  rather  their  full  structure,  have  a  look at the function
  [2XSCHomalgHomologyBasis[102X ([14X14.1-4[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");
[128X[104X
    [4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(last[1][1]);;
[128X[104X
    [4X[28X gap> SCHomalgHomology(c,0);
[128X[104X
    [4X[28X #I  SCHomalgHomologyOp: Q-homology ranks: [ 1, 0, 22, 0, 1 ][128X[104X
    [4X[28X [ 1, 0, 22, 0, 1 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X14.1-4 SCHomalgHomologyBasis[101X
  
  [29X[2XSCHomalgHomologyBasis[102X( [3Xcomplex[103X, [3Xmodulus[103X ) [32X method
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis  function computes the homology groups (including explicit bases of the
  modules  involved)  of  [3Xcomplex[103X  with a ring of coefficients as specified by
  [3Xmodulus[103X:  a  value  of  [10X0[110X computes the [22XQ[122X-homology, a value of [10X1[110X computes the
  [22XZ[122X-homology  and  a  value  of  [10Xq[110X,  q  a prime or a prime power, computes the
  [22XF_q[122X-homology groups.[133X
  
  [33X[0;0YThe    [22Xk[122X-th    homology    group    [10Xhk[110X    can   be   obtained   by   calling
  [10Xhk:=CertainObject(homology,k);[110X, where [10Xhomology[110X is the [5Xhomalg[105X object returned
  by   this   function.  The  generators  of  [10Xhk[110X  can  then  be  obtained  via
  [10XGeneratorsOfModule(hk);[110X.[133X
  
  [33X[0;0YNote  that  if  you are only interested in the ranks of the homology groups,
  then  it is better to use the funtion [2XSCHomalgHomology[102X ([14X14.1-3[114X) which is way
  faster.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");
[128X[104X
    [4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(last[1][1]);;
[128X[104X
    [4X[28X gap> SCHomalgHomologyBasis(c,0);
[128X[104X
    [4X[28X #I  SCHomalgHomologyBasisOp: constructed Q-homology groups.[128X[104X
    [4X[28X <A graded homology object consisting of 5 left modules at degrees [ 0 .. 4 ]>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X14.1-5 SCHomalgCohomology[101X
  
  [29X[2XSCHomalgCohomology[102X( [3Xcomplex[103X, [3Xmodulus[103X ) [32X method
  [6XReturns:[106X  [33X[0;10Ya list of integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis  function computes the ranks of the cohomology groups of [3Xcomplex[103X with a
  ring  of  coefficients  as  specified  by [3Xmodulus[103X: a value of [10X0[110X computes the
  [22XQ[122X-cohomology,  a  value of [10X1[110X computes the [22XZ[122X-cohomology and a value of [10Xq[110X, q a
  prime or a prime power, computes the [22XF_q[122X-cohomology ranks.[133X
  
  [33X[0;0YNote  that  if  you  are  interested not only in the ranks of the cohomology
  groups,  but  rather  their  full  structure,  have  a  look at the function
  [2XSCHomalgCohomologyBasis[102X ([14X14.1-6[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");
[128X[104X
    [4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(last[1][1]);;
[128X[104X
    [4X[28X gap> SCHomalgCohomology(c,0);
[128X[104X
    [4X[28X #I  SCHomalgCohomologyOp: Q-cohomology ranks: [ 1, 0, 22, 0, 1 ][128X[104X
    [4X[28X [ 1, 0, 22, 0, 1 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X14.1-6 SCHomalgCohomologyBasis[101X
  
  [29X[2XSCHomalgCohomologyBasis[102X( [3Xcomplex[103X, [3Xmodulus[103X ) [32X method
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis  function  computes  the cohomology groups (including explicit bases of
  the modules involved) of [3Xcomplex[103X with a ring of coefficients as specified by
  [3Xmodulus[103X:  a  value of [10X0[110X computes the [22XQ[122X-cohomology, a value of [10X1[110X computes the
  [22XZ[122X-cohomology  and  a  value  of  [10Xq[110X, q a prime or a prime power, computes the
  [22XF_q[122X-homology groups.[133X
  
  [33X[0;0YThe    [22Xk[122X-th    cohomology    group   [10Xck[110X   can   be   obtained   by   calling
  [10Xck:=CertainObject(cohomology,k);[110X,  where  [10Xcohomology[110X  is  the  [5Xhomalg[105X object
  returned  by  this  function.  The generators of [10Xck[110X can then be obtained via
  [10XGeneratorsOfModule(ck);[110X.[133X
  
  [33X[0;0YNote  that if you are only interested in the ranks of the cohomology groups,
  then  it  is  better to use the funtion [2XSCHomalgCohomology[102X ([14X14.1-5[114X) which is
  way faster.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");
[128X[104X
    [4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(last[1][1]);;
[128X[104X
    [4X[28X gap> SCHomalgCohomologyBasis(c,0);
[128X[104X
    [4X[28X #I  SCHomalgCohomologyBasisOp: constructed Q-cohomology groups.[128X[104X
    [4X[28X <A graded cohomology object consisting of 5 left modules at degrees [128X[104X
    [4X[28X [ 1 .. 5 ]>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
