Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

1035657 views
################################################################################
##
##  simpcomp / pkghom.gi
##
##  Loaded when `homology' package is available
##
##  $Id$
##
################################################################################


#setup homology package settings
SetHomologyAlgorithm(EliminateGMPAlgorithm);
SetHomologyGroupFormat(GapFormat);
HomologyInfo(0);

InstallGlobalFunction(SCHomologyClassic,
function(complex)

	local hom,facets;

	if(not SCIsSimplicialComplex(complex)) then
		Info(InfoSimpcomp,1,"SCHomologyClassic: first argument must be of type SCSimplicialComplex.");
		return fail;
	fi;

	if HasSCHomology(complex) then
		return SCHomology(complex);
	fi;
	
	if not IsBoundGlobal("SimplicialHomology") then
		return SCHomologyInternal(complex);
	fi;
	
	facets:=SCFacetsEx(complex);
	if facets=fail then
		return fail;
	fi;
	
	SetHomologyAlgorithm(EliminateGMPAlgorithm);
	SetHomologyGroupFormat(GapFormat);
	HomologyInfo(0);
	hom:=SimplicialHomology(facets);
	
	if(hom=fail) then
		Info(InfoSimpcomp,1,"SCHomologyClassic: computing homology failed.");
		return fail;
	fi;
	
	if IsBound(hom[1]) and hom[1]=[0,[]] then
		SetSCIsConnected(complex,true);
	else
		SetSCIsConnected(complex,false);
	fi;

	SetSCHomology(complex,hom);
	return hom;
end);