<Chapter><Heading> Orbit polytopes and fundamental domains</Heading>

<Section><Heading> &nbsp;</Heading>
<ManSection>

<Func Name="CoxeterComplex" Arg="D"/>

<Func Name="CoxeterComplex" Arg="D,n"/>
<Description>
<P/>
Inputs a Coxeter diagram <M>D</M> of finite type. It returns a non-free ZW-resolution for the associated Coxeter group <M>W</M>. The non-free resolution is obtained from the permutahedron of type <M>W</M>. A positive integer <M>n</M>
can be entered as an optional second variable; just the first <M>n</M> terms of the non-free resolution are then returned.
<P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="ContractibleGcomplex" Arg="str"/>
<Description>
<P/>
Inputs one of the following strings <M>str</M>=: <Br/><Br/> 
"SL(2,Z)" , "SL(3,Z)" , "PGL(3,Z[i])" , "PGL(3,Eisenstein_Integers)" ,
 "PSL(4,Z)" , "PSL(4,Z)_b" , "PSL(4,Z)_c" , "PSL(4,Z)_d" ,
 "Sp(4,Z)" 
<Br/><Br/>
or one of the following strings <Br/><Br/>
"SL(2,O-2)" , "SL(2,O-7)" , "SL(2,O-11)" ,
 "SL(2,O-19)" , "SL(2,O-43)" , "SL(2,O-67)" ,
 "SL(2,O-163)"  <Br/><Br/>
 It 
returns a non-free ZG-resolution for the group <M>G</M> described by the string. The stabilizer groups of cells are finite. (Subscripts _b , _c , _d  denote alternative non-free ZG-resolutions for a given group G.)<Br/><Br/>

Data for the first list of  non-free resolutions was provided provided by <B>Mathieu Dutour</B>. Data for the second list was provided by <B>Alexander Rahm</B>.
<P/><B>Examples:</B> <URL><Link>../tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../tutorial/chap7.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>../tutorial/chap9.html</Link><LinkText>3</LinkText></URL>&nbsp;,
<URL><Link>../tutorial/chap11.html</Link><LinkText>4</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>5</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutBredon.html</Link><LinkText>6</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>7</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="QuotientOfContractibleGcomplex" Arg="C,D"/>
<Description>
<P/>
Inputs
a non-free <M>ZG</M>-resolution <M>C</M> and a finite subgroup <M>D</M> of <M>G</M> which is  
 a subgroup of each cell stabilizer group for <M>C</M>. Each element of <M>D</M> must preserves the orientation of any cell stabilized by it. 
It returns the corresponding non-free
<M>Z(G/D)</M>-resolution. (So, for instance,  from the <M>SL(2,O)</M> complex <M>C=ContractibleGcomplex("SL(2,O-2)");</M> we can construct a <M>PSL(2,O)</M>-complex using this function.)  

<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="TruncatedGComplex" Arg="R,m,n"/>
<Description>
<P/>
Inputs 
a non-free <M>ZG</M>-resolution <M>R</M> and two positive
integers <M>m </M> and <M> n </M>. 
It returns the  non-free <M>ZG</M>-resolution  consisting of those modules in <M>R</M> of degree at least <M>m</M> and at most <M>n</M>.
<P/><B>Examples:</B> 
</Description>

























































































































</ManSection>

<ManSection>

<Func Name="FundamentalDomainStandardSpaceGroup" Arg="v,G"/>
<Description>
<P/>
Inputs a crystallographic
group G (represented using AffineCrystGroupOnRight as in 
the GAP package Cryst). It also inputs a choice of vector v in the euclidean space <M>R^n</M> on which <M>G</M> acts. It returns the 
Dirichlet-Voronoi fundamental cell for the
action of <M>G</M>
on euclidean space corresponding to the vector <M>v</M>. The fundamental 
cell is a fundamental domain if <M>G</M> is Bieberbach. The fundamental 
cell/domain is returned as a <Quoted>Polymake object</Quoted>. Currently the function only applies to certain crystallographic groups. See the manuals to HAPcryst and HAPpolymake for full details.
<P/>
This  function is part of the HAPcryst package written by <B>Marc Roeder</B> and is thus only available if HAPcryst is loaded.
<P/>
The function requires the use of Polymake software.
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="OrbitPolytope" Arg="G,v,L"/>
<Description>
<P/>

Inputs a permutation group or matrix group <M>G</M> of degree <M>n</M>
and a rational vector <M>v</M> of length <M>n</M>. 
In both cases there is a natural action of <M>G</M> on <M>v</M>. 
Let <M>P(G,v)</M> be the convex polytope arising as the convex hull 
of the Euclidean points in the orbit of <M>v</M> under the action of 
<M>G</M>. The function also inputs a sublist <M>L</M> of the 
following list of strings:
<P/>
["dimension","vertex_degree", "visual_graph", "schlegel","visual"]
<P/>
Depending on the sublist, the function:
<List>
<Item> prints the dimension of the orbit polytope <M>P(G,v)</M>;</Item>
<Item> prints the degree of a vertex in the graph of <M>P(G,v)</M>;</Item>
<Item> visualizes the graph of <M>P(G,v)</M>;</Item>
<Item> visualizes the Schlegel diagram of <M>P(G,v)</M>;</Item>
<Item> visualizes <M>P(G,v)</M> if the polytope is of dimension 2 or 3.</Item>
</List>
The function uses Polymake software.

<P/><B>Examples:</B> <URL><Link>../tutorial/chap11.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPolytopes.html</Link><LinkText>2</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="PolytopalComplex" Arg="G,v"/>

<Func Name="PolytopalComplex" Arg="G,v,n"/>
<Description>
<P/>

Inputs a permutation group or matrix group <M>G</M>
of degree <M>n</M> and a rational vector <M>v</M> of length <M>n</M>. 
In both cases there is a natural action of <M>G</M> on <M>v</M>. 
Let <M>P(G,v)</M> be the convex polytope arising as the convex 
hull of the Euclidean points in the orbit of <M>v</M> under the action of 
<M>G</M>. The cellular chain complex <M>C_*=C_*(P(G,v))</M>
is an exact sequence of (not necessarily free) <M>ZG</M>-modules. 
The function returns a component object <M>R</M> with components:
<List>
<Item>
<M>R!.dimension(k)</M> is a function which returns the number of <M>G</M>-orbits
of the <M>k</M>-dimensional faces in  <M>P(G,v)</M>.  If each <M>k</M>-face 
has trivial stabilizer subgroup in <M>G</M> then <M>C_k</M> 
is a free <M>ZG</M>-module of rank <M>R.dimension(k)</M>.
</Item>
<Item>
<M>R!.stabilizer(k,n)</M> is a function which returns the 
stabilizer subgroup for a face in the <M>n</M>-th orbit of <M>k</M>-faces.
</Item>
<Item>
If all faces of dimension &tlt;<M>k+1</M> have trivial stabilizer 
group then the first <M>k</M> terms of <M>C_*</M> constitute part of a 
free  <M>ZG</M>-resolution. The boundary map is described by the 
function <M>boundary(k,n)</M> . (If some faces have non-trivial 
stabilizer group then <M>C_*</M> is not free and no attempt is 
made to determine signs for the boundary map.)
</Item>
<Item>
<M>R!.elements</M>, <M>R!.group</M>, <M>R!.properties</M>
are as in a <M>ZG</M>-resolution.
</Item>
</List>
If an optional third input variable <M>n</M> 
is used, then only the first <M>n</M> terms of the resolution 
<M>C_*</M> will be computed.
<P/>
		The function uses Polymake software. 
<P/><B>Examples:</B> <URL><Link>../tutorial/chap11.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPolytopes.html</Link><LinkText>2</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

		    
<ManSection>

<Func Name="PolytopalGenerators" Arg="G,v"/>
<Description>
<P/>

Inputs a permutation group or matrix group <M>G</M> of degree <M>n</M> and 
a rational vector <M>v</M> of length <M>n</M>. In both cases there 
is a natural action of <M>G</M> on <M>v</M>, and the vector <M>v</M>
must be chosen so that it has trivial stabilizer subgroup in <M>G</M>. 
Let <M>P(G,v)</M> be the convex polytope arising as the convex 
hull of the Euclidean points in the orbit of <M>v</M> 
under the action of <M>G</M>. The function returns a record <M>P</M>
with components:
<List>
<Item> <M>P.generators</M> is a list of all those elements <M>g</M> in <M>G</M>
such that <M>g\cdot v</M> has an edge in common with <M>v</M>. 
The list is a generating set for <M>G</M>.</Item>
<Item>
<M>P.vector</M> is the vector <M>v</M>.</Item>
<Item><M>P.hasseDiagram</M> is the Hasse diagram of the cone at <M>v</M>.
</Item>
</List>
	    The function uses Polymake software.
	    The function is joint work with Seamus Kelly.
<P/><B>Examples:</B> 
</Description>

























































































































</ManSection>

<ManSection>

<Func Name="VectorStabilizer" Arg="G,v"/>
<Description>
<P/>

Inputs a permutation group or matrix group <M>G</M> of degree <M>n</M> 
and a rational vector of degree <M>n</M>. In both cases there is a 
natural action of <M>G</M> on <M>v</M> and the function 
returns the group of elements in <M>G</M> that fix <M>v</M>. 
<P/><B>Examples:</B> 
</Description>

























































































































</ManSection>

</Section>
</Chapter>

