playground:playground

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
playground:playground [2019/03/25 18:05] oroehrigplayground:playground [2019/03/25 20:59] oroehrig
Line 1: Line 1:
 ====== application topaz ====== ====== application topaz ======
- The __TOP__ology __A__pplication __Z__oo deals with abstract simplicial complexes. + The __TOP__ology __A__pplication __Z__oo deals with abstract simplicial complexes.\\ A complex is given as a list of facets.  You can ask for its global properties ([[playground/playground/SimplicialComplex#MANIFOLD |manifold recognition]],\\ [[playground/playground/SimplicialComplex#HOMOLOGY |homology groups]], etc.),  explore the local vertex environment ([[playground/playground#star |stars]], [[playground/playground#link |links]], etc.),  and make a lot\\ of constructions.\\ The visualization means are constrained, as they are mostly based on the ''[[playground/playground/SimplicialComplex#GRAPH |GRAPH]]'' (1-skeleton) of a complex. 
- A complex is given as a list of facets.  You can ask for its global properties ([[/topaz/objects/SimplicialComplex/properties/Topology/MANIFOLD|manifold recognition]], +imports from
- [[/topaz/objects/SimplicialComplex/properties/Topology/HOMOLOGY|homology groups]], etc.),  explore the local vertex environment ([[/topaz/functions/Producing a new simplicial complex from others/star|stars]], [[/topaz/functions/Producing a new simplicial complex from others/link_complex|links]], etc.),  and make a lot +    * [[graph|application graph]]  
- of constructions. +    * [[common|application common]]  
- +uses
- The visualization means are constrained, as they are mostly based on the [[/topaz/objects/SimplicialComplex/properties/Combinatorics/GRAPH]] (1-skeleton) of a complex. +    * [[ideal|application ideal]]  
- +    * [[group|application group]
-imports from ['graph', 'common'+
-uses ['ideal', 'group']+
 ===== Objects ===== ===== Objects =====
   * [[topaz:GeometricSimplicialComplex|GeometricSimplicialComplex]]:\\  A geometric simplicial complex, i.e., a simplicial complex with a geometric realization. //Scalar// is the numeric data type used for the coordinates.   * [[topaz:GeometricSimplicialComplex|GeometricSimplicialComplex]]:\\  A geometric simplicial complex, i.e., a simplicial complex with a geometric realization. //Scalar// is the numeric data type used for the coordinates.
Line 22: Line 20:
  These functions capture combinatorial information of the object.  Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.  These functions capture combinatorial information of the object.  Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
 \\ \\
-{{anchor:n_poset_homomorphisms:}} **''n_poset_homomorphisms([[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]> P, [[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]> Q)''**+{{anchor:n_poset_homomorphisms:}} **''n_poset_homomorphisms([[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]> P, [[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]> Q)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>'' ''P'' :  +      * ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>'' ''P'' :  
-      * ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>'' ''Q''+      * ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>'' ''Q''
   * //Returns:// ''[[playground/playground#Int |Int]]''   * //Returns:// ''[[playground/playground#Int |Int]]''
   *  Count all order preserving maps from one poset to another.\\ They are in fact enumerated, but only the count is kept track of using constant memory.   *  Count all order preserving maps from one poset to another.\\ They are in fact enumerated, but only the count is kept track of using constant memory.
Line 33: Line 31:
  These functions compare two [[/topaz/objects/SimplicialComplex]]  These functions compare two [[/topaz/objects/SimplicialComplex]]
 \\ \\
-{{anchor:isomorphic:}} **''isomorphic([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2)''**+{{anchor:isomorphic:}} **''isomorphic([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2''
   * //Returns:// ''[[playground/playground#Bool |Bool]]''   * //Returns:// ''[[playground/playground#Bool |Bool]]''
   *  Determine whether two given complexes are combinatorially isomorphic.\\ The problem is reduced to graph isomorphism of the vertex-facet incidence graphs.   *  Determine whether two given complexes are combinatorially isomorphic.\\ The problem is reduced to graph isomorphism of the vertex-facet incidence graphs.
  
 \\ \\
-{{anchor:find_facet_vertex_permutations:}} **''find_facet_vertex_permutations([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2)''**+{{anchor:find_facet_vertex_permutations:}} **''find_facet_vertex_permutations([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2''
   * //Returns:// ''[[playground/playground#Pair |Pair]]<[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>,[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>>''   * //Returns:// ''[[playground/playground#Pair |Pair]]<[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>,[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>>''
   *  Find the permutations of facets and vertices which maps the first complex to the second one.\\ The facet permutation is the first component of the return value.\\ If the complexes are not isomorphic, an exception is thrown.   *  Find the permutations of facets and vertices which maps the first complex to the second one.\\ The facet permutation is the first component of the return value.\\ If the complexes are not isomorphic, an exception is thrown.
  
 \\ \\
-{{anchor:pl_homeomorphic:}} **''pl_homeomorphic([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2)''**+{{anchor:pl_homeomorphic:}} **''pl_homeomorphic([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2''
   * //Returns:// ''[[playground/playground#Bool |Bool]]''   * //Returns:// ''[[playground/playground#Bool |Bool]]''
   *  Tries to determine whether two complexes are pl-homeomorphic by using\\  bistellar flips and a simulated annealing strategy.\\ You may specify the maximal number of //rounds//, how often the system\\ may //relax// before heating up and how much //heat// should be applied.\\ The function stops computing, once the size of the triangulation has not decreased\\ for //rounds// iterations. If the //abs// flag is set, the function stops\\ after //rounds// iterations regardless of when the last improvement took place.\\ Additionally, you may set the threshold //min_n_facets// for the number of facets when\\ the simplification ought to stop. Default is d+2 in the ''[[playground/playground/SimplicialComplex#CLOSED_PSEUDO_MANIFOLD |CLOSED_PSEUDO_MANIFOLD]]'' case\\ and 1 otherwise.\\ If you want to influence the distribution of the dimension of the moves when warming up\\ you may do so by specifying a //distribution//. The number of values in //distribution//\\ determines the dimensions used for heating up. The heating and relaxing parameters decrease dynamically\\ unless the //constant// flag is set. The function prohibits to execute the reversed move of a move\\ directly after the move itself unless the //allow_rev_move// flag is set. Setting the\\ //allow_rev_move// flag might help solve a particular resilient problem.\\ If you are interested in how the process is coming along, try the //verbose// option.\\ It specifies after how many rounds the current best result is displayed.\\ The //obj// determines the objective function used for the optimization. If //obj// is set to 0,\\ the function searches for the triangulation with the lexicographically smallest f-vector,\\ if //obj// is set to 1, the function searches for the triangulation with the reversed-lexicographically\\ smallest f-vector and if //obj// is set to 2 the sum of the f-vector entries is used.\\ The default is 1.   *  Tries to determine whether two complexes are pl-homeomorphic by using\\  bistellar flips and a simulated annealing strategy.\\ You may specify the maximal number of //rounds//, how often the system\\ may //relax// before heating up and how much //heat// should be applied.\\ The function stops computing, once the size of the triangulation has not decreased\\ for //rounds// iterations. If the //abs// flag is set, the function stops\\ after //rounds// iterations regardless of when the last improvement took place.\\ Additionally, you may set the threshold //min_n_facets// for the number of facets when\\ the simplification ought to stop. Default is d+2 in the ''[[playground/playground/SimplicialComplex#CLOSED_PSEUDO_MANIFOLD |CLOSED_PSEUDO_MANIFOLD]]'' case\\ and 1 otherwise.\\ If you want to influence the distribution of the dimension of the moves when warming up\\ you may do so by specifying a //distribution//. The number of values in //distribution//\\ determines the dimensions used for heating up. The heating and relaxing parameters decrease dynamically\\ unless the //constant// flag is set. The function prohibits to execute the reversed move of a move\\ directly after the move itself unless the //allow_rev_move// flag is set. Setting the\\ //allow_rev_move// flag might help solve a particular resilient problem.\\ If you are interested in how the process is coming along, try the //verbose// option.\\ It specifies after how many rounds the current best result is displayed.\\ The //obj// determines the objective function used for the optimization. If //obj// is set to 0,\\ the function searches for the triangulation with the lexicographically smallest f-vector,\\ if //obj// is set to 1, the function searches for the triangulation with the reversed-lexicographically\\ smallest f-vector and if //obj// is set to 2 the sum of the f-vector entries is used.\\ The default is 1.
Line 63: Line 61:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Array |Array]]<[[playground/playground#poset |poset]]'' ''P''       * ''[[playground/playground#Array |Array]]<[[playground/playground#poset |poset]]'' ''P''
-  * //Returns:// ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>''+  * //Returns:// ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>''
   *  Construct the inclusion poset from a given container.\\ The elements of the container are interpreted as sets.  They define a poset\\ by inclusion.  The function returns this poset encoded as a directed graph.\\ The direction is towards to larger sets.  All relations are encoded, not\\ only the covering relations.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear   *  Construct the inclusion poset from a given container.\\ The elements of the container are interpreted as sets.  They define a poset\\ by inclusion.  The function returns this poset encoded as a directed graph.\\ The direction is towards to larger sets.  All relations are encoded, not\\ only the covering relations.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear
  
 \\ \\
-{{anchor:is_vertex_decomposition:}} **''is_vertex_decomposition([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]> vertices)''**+{{anchor:is_vertex_decomposition:}} **''is_vertex_decomposition([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]> vertices)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>'' ''vertices'' : shedding vertices       * ''[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>'' ''vertices'' : shedding vertices
   * //Returns:// ''[[playground/playground#Bool |Bool]]''   * //Returns:// ''[[playground/playground#Bool |Bool]]''
Line 82: Line 80:
  
 \\ \\
-{{anchor:star_of_zero:}} **''star_of_zero([[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]] C)''**+{{anchor:star_of_zero:}} **''star_of_zero([[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]] C)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' ''C''+      * ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' ''C''
   * //Returns:// ''[[playground/playground#Set |Set]]<[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>>''   * //Returns:// ''[[playground/playground#Set |Set]]<[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>>''
   *  Find the facets of the star of the origin in the simplicial complex.\\ The origin may be a vertex or not.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear   *  Find the facets of the star of the origin in the simplicial complex.\\ The origin may be a vertex or not.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear
  
 \\ \\
-{{anchor:mixed_graph:}} **''mixed_graph([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:mixed_graph:}} **''mixed_graph([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
   *  Produces the mixed graph of a //complex//.   *  Produces the mixed graph of a //complex//.
  
 \\ \\
-{{anchor:star_shaped_balls:}} **''star_shaped_balls([[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]] P)''**+{{anchor:star_shaped_balls:}} **''star_shaped_balls([[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]] P)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' ''P''+      * ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' ''P''
   * //Returns:// ''[[playground/playground#Array |Array]]<[[playground/playground#Set |Set]]<[[playground/playground#Set |Set]]>>''   * //Returns:// ''[[playground/playground#Array |Array]]<[[playground/playground#Set |Set]]<[[playground/playground#Set |Set]]>>''
   *  Enumerate all balls formed by the simplices of a geometric simplicial complex\\ that are strictly star-shaped with respect to the origin.\\ The origin may be a vertex or not.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear   *  Enumerate all balls formed by the simplices of a geometric simplicial complex\\ that are strictly star-shaped with respect to the origin.\\ The origin may be a vertex or not.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear
  
 \\ \\
-{{anchor:stabbing_order:}} **''stabbing_order([[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]] P)''**+{{anchor:stabbing_order:}} **''stabbing_order([[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]] P)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' ''P'' :  +      * ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' ''P'' :  
-  * //Returns:// ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>''+  * //Returns:// ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>''
   *  Determine the stabbing partial order of a simplicial ball with respect to the origin.\\ The origin may be a vertex or not.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear   *  Determine the stabbing partial order of a simplicial ball with respect to the origin.\\ The origin may be a vertex or not.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear
  
 \\ \\
-{{anchor:stanley_reisner:}} **''stanley_reisner([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:stanley_reisner:}} **''stanley_reisner([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/Ideal |Ideal]]''+  * //Returns:// ''[[playground/playground/Ideal|Ideal]]''
   *  Creates the __Stanley-Reisner ideal__ of a simplicial complex.   *  Creates the __Stanley-Reisner ideal__ of a simplicial complex.
  
Line 126: Line 124:
  
 \\ \\
-{{anchor:random_discrete_morse:}} **''random_discrete_morse([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:random_discrete_morse:}} **''random_discrete_morse([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
   * //Returns:// ''[[playground/playground#Map |Map]]<[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>,[[playground/playground#Int  |Int ]]>''   * //Returns:// ''[[playground/playground#Map |Map]]<[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>,[[playground/playground#Int  |Int ]]>''
   *  Implementation of random discrete Morse algorithms by Lutz and Benedetti\\ Returns a map of the number of occurrences of different reduction results indexed by the corresponding discrete Morse vectors (containing the number of critical cells per dimension)   *  Implementation of random discrete Morse algorithms by Lutz and Benedetti\\ Returns a map of the number of occurrences of different reduction results indexed by the corresponding discrete Morse vectors (containing the number of critical cells per dimension)
Line 148: Line 146:
  These functions construct a new [[/topaz/objects/SimplicialComplex]] from other objects of the same type.  These functions construct a new [[/topaz/objects/SimplicialComplex]] from other objects of the same type.
 \\ \\
-{{anchor:star_deletion:}} **''star_deletion([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**+{{anchor:star_deletion:}} **''star_deletion([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face'' : specified by vertex indices.\\  Please use ''[[playground/playground/SimplicialComplex#labeled_vertices |labeled_vertices]]'' if you want to specify the face by vertex labels.       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face'' : specified by vertex indices.\\  Please use ''[[playground/playground/SimplicialComplex#labeled_vertices |labeled_vertices]]'' if you want to specify the face by vertex labels.
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Remove the star of a given //face//.   *  Remove the star of a given //face//.
  
 \\ \\
-{{anchor:bistellar_simplification:}} **''bistellar_simplification([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:bistellar_simplification:}} **''bistellar_simplification([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *   Heuristic for simplifying the triangulation of the given manifold\\  without changing its PL-type. The function uses\\  bistellar flips and a simulated annealing strategy.\\ You may specify the maximal number of //rounds//, how often the system\\ may //relax// before heating up and how much //heat// should be applied.\\ The function stops computing, once the size of the triangulation has not decreased\\ for //rounds// iterations. If the //abs// flag is set, the function stops\\ after //rounds// iterations regardless of when the last improvement took place.\\ Additionally, you may set the threshold //min_n_facets// for the number of facets when\\ the simplification ought to stop. Default is d+2 in the ''[[playground/playground/SimplicialComplex#CLOSED_PSEUDO_MANIFOLD |CLOSED_PSEUDO_MANIFOLD]]'' case\\ and 1 otherwise.\\ If you want to influence the distribution of the dimension of the moves when warming up\\ you may do so by specifying a //distribution//. The number of values in //distribution//\\ determines the dimensions used for heating up. The heating and relaxing parameters decrease dynamically\\ unless the //constant// flag is set. The function prohibits to execute the reversed move of a move\\ directly after the move itself unless the //allow_rev_move// flag is set. Setting the\\ //allow_rev_move// flag might help solve a particular resilient problem.\\ If you are interested in how the process is coming along, try the //verbose// option.\\ It specifies after how many rounds the current best result is displayed.\\ The //obj// determines the objective function used for the optimization. If //obj// is set to 0,\\ the function searches for the triangulation with the lexicographically smallest f-vector,\\ if //obj// is set to any other value the sum of the f-vector entries is used.\\ The default is 1.   *   Heuristic for simplifying the triangulation of the given manifold\\  without changing its PL-type. The function uses\\  bistellar flips and a simulated annealing strategy.\\ You may specify the maximal number of //rounds//, how often the system\\ may //relax// before heating up and how much //heat// should be applied.\\ The function stops computing, once the size of the triangulation has not decreased\\ for //rounds// iterations. If the //abs// flag is set, the function stops\\ after //rounds// iterations regardless of when the last improvement took place.\\ Additionally, you may set the threshold //min_n_facets// for the number of facets when\\ the simplification ought to stop. Default is d+2 in the ''[[playground/playground/SimplicialComplex#CLOSED_PSEUDO_MANIFOLD |CLOSED_PSEUDO_MANIFOLD]]'' case\\ and 1 otherwise.\\ If you want to influence the distribution of the dimension of the moves when warming up\\ you may do so by specifying a //distribution//. The number of values in //distribution//\\ determines the dimensions used for heating up. The heating and relaxing parameters decrease dynamically\\ unless the //constant// flag is set. The function prohibits to execute the reversed move of a move\\ directly after the move itself unless the //allow_rev_move// flag is set. Setting the\\ //allow_rev_move// flag might help solve a particular resilient problem.\\ If you are interested in how the process is coming along, try the //verbose// option.\\ It specifies after how many rounds the current best result is displayed.\\ The //obj// determines the objective function used for the optimization. If //obj// is set to 0,\\ the function searches for the triangulation with the lexicographically smallest f-vector,\\ if //obj// is set to any other value the sum of the f-vector entries is used.\\ The default is 1.
  
Line 166: Line 164:
  
 \\ \\
-{{anchor:connected_sum:}} **''connected_sum([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2, [[playground/playground#Int |Int]] f1, [[playground/playground#Int |Int]] f2)''**+{{anchor:connected_sum:}} **''connected_sum([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2, [[playground/playground#Int |Int]] f1, [[playground/playground#Int |Int]] f2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2''
       * ''[[playground/playground#Int |Int]]'' ''f1'' : default: 0       * ''[[playground/playground#Int |Int]]'' ''f1'' : default: 0
       * ''[[playground/playground#Int |Int]]'' ''f2'' : default: 0       * ''[[playground/playground#Int |Int]]'' ''f2'' : default: 0
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Compute the __connected sum__ of two complexes.\\ Parameters //f_1 and //f_2// specify which facet of the first and second complex correspondingly are glued together.\\ Default is the 0-th facet of both.\\ The vertices in the selected facets are identified with each other according to their order in the facet\\ (that is, in icreasing index order). The glueing facet iteself is not included in the connected sum.\\  The option //permutation// allows to get an alternative identification. It should specify a\\ permutation of the vertices of the second facet.\\ The vertices of the new complex get the original labels with ''_1'' or ''_2'' appended, according to the input complex\\  they came from.  If you set the //no_labels// flag, the label generation will be omitted.   *  Compute the __connected sum__ of two complexes.\\ Parameters //f_1 and //f_2// specify which facet of the first and second complex correspondingly are glued together.\\ Default is the 0-th facet of both.\\ The vertices in the selected facets are identified with each other according to their order in the facet\\ (that is, in icreasing index order). The glueing facet iteself is not included in the connected sum.\\  The option //permutation// allows to get an alternative identification. It should specify a\\ permutation of the vertices of the second facet.\\ The vertices of the new complex get the original labels with ''_1'' or ''_2'' appended, according to the input complex\\  they came from.  If you set the //no_labels// flag, the label generation will be omitted.
   * //Example://\\ Glueing together two tori to make a genus 2 double torus, rotating the second one clockwise: \\ <code> > $cs = connected_sum(torus(),torus(),permutation=>[1,2,0]);   * //Example://\\ Glueing together two tori to make a genus 2 double torus, rotating the second one clockwise: \\ <code> > $cs = connected_sum(torus(),torus(),permutation=>[1,2,0]);
Line 180: Line 178:
  
 \\ \\
-{{anchor:triang_neighborhood:}} **''triang_neighborhood([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Rational |Rational]] width)''**+{{anchor:triang_neighborhood:}} **''triang_neighborhood([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Rational |Rational]] width)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Rational |Rational]]'' ''width'' : default: 0       * ''[[playground/playground#Rational |Rational]]'' ''width'' : default: 0
-  *  Create a triangulated tubular neighborhood of a  [[/topaz/objects/SimplicialComplex/properties/Combinatorics/PURE|pure]] 2-complex.\\  If the complex is a link\\  with the property that each vertex and its two neighbours are in general\\  position after projection to the x,y-plane, then one might specify\\  a rational number //width// to tell the client to compute ''[[playground/playground/GeometricSimplicialComplex#COORDINATES |COORDINATES]]''\\  of the triangulated tubular neighborhood. If the //width/// is\\  chosen too large, the computed realization will be self intersecting.\\  If each connected component of the link has an even number of facets,\\  then the following holds:\\  An edge of the resulting complex is contained in an odd number of\\  facets iff it corresponds to one of the edges of the link. +  *  Create a triangulated tubular neighborhood of a  [[playground/playground/SimplicialComplex#PURE |pure]] 2-complex.\\  If the complex is a link\\  with the property that each vertex and its two neighbours are in general\\  position after projection to the x,y-plane, then one might specify\\  a rational number //width// to tell the client to compute ''[[playground/playground/GeometricSimplicialComplex#COORDINATES |COORDINATES]]''\\  of the triangulated tubular neighborhood. If the //width/// is\\  chosen too large, the computed realization will be self intersecting.\\  If each connected component of the link has an even number of facets,\\  then the following holds:\\  An edge of the resulting complex is contained in an odd number of\\  facets iff it corresponds to one of the edges of the link. 
  
 \\ \\
Line 190: Line 188:
  
 \\ \\
-{{anchor:covering_relations:}} **''covering_relations([[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]> P)''**+{{anchor:covering_relations:}} **''covering_relations([[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]> P)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>'' ''P'' :  +      * ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>'' ''P'' :  
-  * //Returns:// ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>''+  * //Returns:// ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>''
   *  Construct the covering relations of a poset   *  Construct the covering relations of a poset
  
 \\ \\
-{{anchor:h_induced_quotient:}} **''h_induced_quotient([[playground/playground/SimplicialComplex |SimplicialComplex]] C, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> vertices)''**+{{anchor:h_induced_quotient:}} **''h_induced_quotient([[playground/playground/SimplicialComplex|SimplicialComplex]] C, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> vertices)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''C''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''C''
       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''vertices''       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''vertices''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Let //C// be the given simplicial and A the subcomplex induced by\\ the given //vertices//. Then this function produces a simplicial complex\\ homotopy equivalent to //C// mod A by adding the cone over A with\\ apex a to //C//.\\ The label of the apex my be specified via the option //apex//.   *  Let //C// be the given simplicial and A the subcomplex induced by\\ the given //vertices//. Then this function produces a simplicial complex\\ homotopy equivalent to //C// mod A by adding the cone over A with\\ apex a to //C//.\\ The label of the apex my be specified via the option //apex//.
  
 \\ \\
-{{anchor:sum_triangulation:}} **''sum_triangulation([[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]] P, [[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]] Q, [[playground/playground#IncidenceMatrix |IncidenceMatrix]] WebOfStars)''**+{{anchor:sum_triangulation:}} **''sum_triangulation([[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]] P, [[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]] Q, [[playground/playground#IncidenceMatrix |IncidenceMatrix]] WebOfStars)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' ''P'' : first complex +      * ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' ''P'' : first complex 
-      * ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' ''Q'' : second complex+      * ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' ''Q'' : second complex
       * ''[[playground/playground#IncidenceMatrix |IncidenceMatrix]]'' ''WebOfStars'' : Every row corresponds to a full dimensional simplex in P and every column to a full dimensional simplex in Q.       * ''[[playground/playground#IncidenceMatrix |IncidenceMatrix]]'' ''WebOfStars'' : Every row corresponds to a full dimensional simplex in P and every column to a full dimensional simplex in Q.
-  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]''+  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]''
   *  Produce a specific sum-triangulation of two given triangulations.\\ and a WebOfStars.  There are P-sum-triangulations and Q-sum-triangulations.\\ If the image of the star of the origin of P is empty then we have a\\ Q-sum-triangulation; otherwise it is a P-sum-triangulation.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear   *  Produce a specific sum-triangulation of two given triangulations.\\ and a WebOfStars.  There are P-sum-triangulations and Q-sum-triangulations.\\ If the image of the star of the origin of P is empty then we have a\\ Q-sum-triangulation; otherwise it is a P-sum-triangulation.\\ For details see Assarf, Joswig & Pfeifle:\\ Webs of stars or how to triangulate sums of polytopes, to appear
  
 \\ \\
-{{anchor:induced_subcomplex:}} **''induced_subcomplex([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> vertices)''**+{{anchor:induced_subcomplex:}} **''induced_subcomplex([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> vertices)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''vertices''       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''vertices''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the subcomplex consisting of all faces which are contained in the given set of //vertices//.   *  Produce the subcomplex consisting of all faces which are contained in the given set of //vertices//.
  
 \\ \\
-{{anchor:foldable_prism:}} **''foldable_prism([[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]] complex)''**+{{anchor:foldable_prism:}} **''foldable_prism([[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]'' +  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]'' 
-  *  Produce a __prism__ over a given ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''.+  *  Produce a __prism__ over a given ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''.
  
 \\ \\
-{{anchor:edge_contraction:}} **''edge_contraction([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:edge_contraction:}} **''edge_contraction([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Heuristic for simplifying the triangulation of the given manifold\\ without changing its PL-type. Choosing a random order of the vertices,\\ the function tries to contract all incident edges.   *  Heuristic for simplifying the triangulation of the given manifold\\ without changing its PL-type. Choosing a random order of the vertices,\\ the function tries to contract all incident edges.
  
 \\ \\
-{{anchor:disjoint_union:}} **''disjoint_union([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2)''**+{{anchor:disjoint_union:}} **''disjoint_union([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the __disjoint union__ of the two given complexes.   *  Produce the __disjoint union__ of the two given complexes.
  
Line 256: Line 254:
  
 \\ \\
-{{anchor:barycentric_subdivision:}} **''barycentric_subdivision([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:barycentric_subdivision:}} **''barycentric_subdivision([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Computes the __barycentric subdivision__ of //complex//.   *  Computes the __barycentric subdivision__ of //complex//.
   * //Example://\\ To subdivide a triangle into six new triangles, do this: \\ <code> > $b = barycentric_subdivision(simplex(2));   * //Example://\\ To subdivide a triangle into six new triangles, do this: \\ <code> > $b = barycentric_subdivision(simplex(2));
Line 265: Line 263:
  
 \\ \\
-{{anchor:union:}} **''union([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2)''**+{{anchor:union:}} **''union([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the union of the two given complexes, identifying\\ vertices with equal labels.   *  Produce the union of the two given complexes, identifying\\ vertices with equal labels.
  
 \\ \\
-{{anchor:cone:}} **''cone([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Int |Int]] k)''**+{{anchor:cone:}} **''cone([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Int |Int]] k)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Int |Int]]'' ''k'' : default is 1       * ''[[playground/playground#Int |Int]]'' ''k'' : default is 1
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the //k//-cone over a given simplicial complex.   *  Produce the //k//-cone over a given simplicial complex.
   * //Example://\\ The following creates the cone with two apices over the triangle,\\ with custom apex labels. The resulting complex is the 4-simplex. \\ <code> > $c = cone(simplex(2),2,apex_labels=>['foo','bar']);   * //Example://\\ The following creates the cone with two apices over the triangle,\\ with custom apex labels. The resulting complex is the 4-simplex. \\ <code> > $c = cone(simplex(2),2,apex_labels=>['foo','bar']);
Line 287: Line 285:
  
 \\ \\
-{{anchor:join_complexes:}} **''join_complexes([[playground/playground/SimplicialComplex |SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex2)''**+{{anchor:join_complexes:}} **''join_complexes([[playground/playground/SimplicialComplex|SimplicialComplex]] complex1, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex2)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex1'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex1'' :  
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex2'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex2'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Creates the join of //complex1// and //complex2//.   *  Creates the join of //complex1// and //complex2//.
  
 \\ \\
-{{anchor:alexander_dual:}} **''alexander_dual([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:alexander_dual:}} **''alexander_dual([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Computes the Alexander dual complex, that is, the complements of all non-faces.\\ The vertex labels are preserved unless the //no_labels// flag is specified.   *  Computes the Alexander dual complex, that is, the complements of all non-faces.\\ The vertex labels are preserved unless the //no_labels// flag is specified.
  
 \\ \\
-{{anchor:deletion:}} **''deletion([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**+{{anchor:deletion:}} **''deletion([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face'' : specified by vertex indices.\\  Please use ''[[playground/playground/SimplicialComplex#labeled_vertices |labeled_vertices]]'' if you want to specify the face by vertex labels.       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face'' : specified by vertex indices.\\  Please use ''[[playground/playground/SimplicialComplex#labeled_vertices |labeled_vertices]]'' if you want to specify the face by vertex labels.
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Remove the given //face// and all the faces containing it.   *  Remove the given //face// and all the faces containing it.
  
 \\ \\
-{{anchor:link_complex:}} **''link_complex([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**+{{anchor:link_complex:}} **''link_complex([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face''       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *   Produce the __link__ of a //face// of the //complex//   *   Produce the __link__ of a //face// of the //complex//
  
 \\ \\
-{{anchor:star:}} **''star([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**+{{anchor:star:}} **''star([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]> face)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face''       * ''[[playground/playground#Set |Set]]<[[playground/playground#Int |Int]]>'' ''face''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the __star__ of the //face// of the //complex//.   *  Produce the __star__ of the //face// of the //complex//.
  
 \\ \\
-{{anchor:colored_ball_from_colored_sphere:}} **''colored_ball_from_colored_sphere([[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:colored_ball_from_colored_sphere:}} **''colored_ball_from_colored_sphere([[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' :  +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Extends the triangulation and coloring of a k-colored\\ (d-1)-sphere to a max{k,d+1}-colored triangulation of a d-ball.\\  The colors are integer numbers.\\  The old vertex labels are preserved unless the //no_labels// flag is specified.\\  The new vertices get labeled ''new_i'' (i=0, 1, 2, ...). If a new label is not unique,\\  ''_j'' is added for the smallest integer j which makes the label unique.   *  Extends the triangulation and coloring of a k-colored\\ (d-1)-sphere to a max{k,d+1}-colored triangulation of a d-ball.\\  The colors are integer numbers.\\  The old vertex labels are preserved unless the //no_labels// flag is specified.\\  The new vertices get labeled ''new_i'' (i=0, 1, 2, ...). If a new label is not unique,\\  ''_j'' is added for the smallest integer j which makes the label unique.
  
 \\ \\
-{{anchor:poset_homomorphisms:}} **''poset_homomorphisms([[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]> P, [[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]> Q)''**+{{anchor:poset_homomorphisms:}} **''poset_homomorphisms([[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]> P, [[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]> Q)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>'' ''P'' :  +      * ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>'' ''P'' :  
-      * ''[[playground/playground/Graph |Graph]]<[[playground/playground#Directed |Directed]]>'' ''Q''+      * ''[[playground/playground/Graph|Graph]]<[[playground/playground#Directed |Directed]]>'' ''Q''
   * //Returns:// ''[[playground/playground#Array |Array]]<[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>>''   * //Returns:// ''[[playground/playground#Array |Array]]<[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>>''
   *  Enumerate all order preserving maps from one poset to another   *  Enumerate all order preserving maps from one poset to another
  
 \\ \\
-{{anchor:iterated_barycentric_subdivision:}} **''iterated_barycentric_subdivision([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Int |Int]] k)''**+{{anchor:iterated_barycentric_subdivision:}} **''iterated_barycentric_subdivision([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Int |Int]] k)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Int |Int]]'' ''k''       * ''[[playground/playground#Int |Int]]'' ''k''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Computes the //k//-th __barycentric subdivision__ of //complex// by iteratively calling ''[[playground/playground#barycentric |barycentric]]''.   *  Computes the //k//-th __barycentric subdivision__ of //complex// by iteratively calling ''[[playground/playground#barycentric |barycentric]]''.
  
Line 352: Line 350:
  
 \\ \\
-{{anchor:suspension:}} **''suspension([[playground/playground/SimplicialComplex |SimplicialComplex]] complex, [[playground/playground#Int |Int]] k)''**+{{anchor:suspension:}} **''suspension([[playground/playground/SimplicialComplex|SimplicialComplex]] complex, [[playground/playground#Int |Int]] k)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex''+      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex''
       * ''[[playground/playground#Int |Int]]'' ''k'' : default value is 1       * ''[[playground/playground#Int |Int]]'' ''k'' : default value is 1
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the __//k//-suspension__ over a given simplicial complex.   *  Produce the __//k//-suspension__ over a given simplicial complex.
  
 \\ \\
-{{anchor:bs2quotient:}} **''bs2quotient([[playground/playground/Polytope |Polytope]] P, [[playground/playground/SimplicialComplex |SimplicialComplex]] complex)''**+{{anchor:bs2quotient:}} **''bs2quotient([[playground/playground/Polytope|Polytope]] P, [[playground/playground/SimplicialComplex|SimplicialComplex]] complex)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/Polytope |Polytope]]'' ''P'' : the underlying polytope +      * ''[[playground/playground/Polytope|Polytope]]'' ''P'' : the underlying polytope 
-      * ''[[playground/playground/SimplicialComplex |SimplicialComplex]]'' ''complex'' : a sufficiently fine subdivision of P, for example the second barycentric subdivision +      * ''[[playground/playground/SimplicialComplex|SimplicialComplex]]'' ''complex'' : a sufficiently fine subdivision of P, for example the second barycentric subdivision 
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Create a simplicial complex from a simplicial subdivision of a given complex\\ by identifying vertices on the boundary of the original complex according to a group that acts on vertices.   *  Create a simplicial complex from a simplicial subdivision of a given complex\\ by identifying vertices on the boundary of the original complex according to a group that acts on vertices.
  
Line 375: Line 373:
       * ''[[playground/playground#Matrix |Matrix]]'' ''D'' : the "distance matrix" of the point set (can be upper triangular)       * ''[[playground/playground#Matrix |Matrix]]'' ''D'' : the "distance matrix" of the point set (can be upper triangular)
       * ''[[playground/playground#Rational |Rational]]'' ''delta''       * ''[[playground/playground#Rational |Rational]]'' ''delta''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Computes the __Vietoris Rips complex__ of a point set. The set is passed as its so-called "distance matrix", whose (i,j)-entry is the distance between point i and j. This matrix can e.g. be computed using the distance_matrix function. The points corresponding to vertices of a common simplex will all have a distance less than //delta// from each other.   *  Computes the __Vietoris Rips complex__ of a point set. The set is passed as its so-called "distance matrix", whose (i,j)-entry is the distance between point i and j. This matrix can e.g. be computed using the distance_matrix function. The points corresponding to vertices of a common simplex will all have a distance less than //delta// from each other.
  
 \\ \\
-{{anchor:independence_complex:}} **''independence_complex([[playground/playground/Matroid |Matroid]] matroid)''**+{{anchor:independence_complex:}} **''independence_complex([[playground/playground/Matroid|Matroid]] matroid)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/Matroid |Matroid]]'' ''matroid'' :  +      * ''[[playground/playground/Matroid|Matroid]]'' ''matroid'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the __independence complex__ of a given matroid.\\ If //no_labels// is set to 1, the labels are not copied.   *  Produce the __independence complex__ of a given matroid.\\ If //no_labels// is set to 1, the labels are not copied.
  
 \\ \\
-{{anchor:clique_complex:}} **''clique_complex([[playground/playground/Graph |Graph]] graph)''**+{{anchor:clique_complex:}} **''clique_complex([[playground/playground/Graph|Graph]] graph)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/Graph |Graph]]'' ''graph'' :  +      * ''[[playground/playground/Graph|Graph]]'' ''graph'' :  
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the __clique complex__ of a given graph, that is, the simplicial\\ complex that has an n-dimensional facet for each n+1-clique.\\ If //no_labels// is set to 1, the labels are not copied.   *  Produce the __clique complex__ of a given graph, that is, the simplicial\\ complex that has an n-dimensional facet for each n+1-clique.\\ If //no_labels// is set to 1, the labels are not copied.
   * //Example://\\ Create the clique complex of a simple graph with one 3-clique and\\  one 2-clique, not creating labels. \\ <code> > $g = graph_from_edges([[0,1],[0,2],[1,2],[2,3]]);   * //Example://\\ Create the clique complex of a simple graph with one 3-clique and\\  one 2-clique, not creating labels. \\ <code> > $g = graph_from_edges([[0,1],[0,2],[1,2],[2,3]]);
Line 403: Line 401:
 \\ \\
 {{anchor:torus:}} **''torus''** {{anchor:torus:}} **''torus''**
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  The Császár Torus. Geometric realization by Frank Lutz,\\ Electronic Geometry Model No. 2001.02.069   *  The Császár Torus. Geometric realization by Frank Lutz,\\ Electronic Geometry Model No. 2001.02.069
  
Line 410: Line 408:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Int |Int]]'' ''d'' : dimension       * ''[[playground/playground#Int |Int]]'' ''d'' : dimension
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  A __simplex__ of dimension //d//.   *  A __simplex__ of dimension //d//.
  
 \\ \\
 {{anchor:complex_projective_plane:}} **''complex_projective_plane''** {{anchor:complex_projective_plane:}} **''complex_projective_plane''**
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  The complex projective plane with the vertex-minimal triangulation by Kühnel and Brehm.   *  The complex projective plane with the vertex-minimal triangulation by Kühnel and Brehm.
   * //Example://\\ Construct the complex projective plane, store it in the variable $p2c, and print its homology group. \\ <code> > $p2c = complex_projective_plane();   * //Example://\\ Construct the complex projective plane, store it in the variable $p2c, and print its homology group. \\ <code> > $p2c = complex_projective_plane();
Line 430: Line 428:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Int |Int]]'' ''d'' : dimension       * ''[[playground/playground#Int |Int]]'' ''d'' : dimension
-  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]''+  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]''
   *  A //d//-dimensional __ball__, realized as the //d//-simplex.   *  A //d//-dimensional __ball__, realized as the //d//-simplex.
   * //Example://\\ The following produces the 3-ball and stores it in the variable $b: \\ <code> > $b = ball(3);   * //Example://\\ The following produces the 3-ball and stores it in the variable $b: \\ <code> > $b = ball(3);
Line 441: Line 439:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>'' ''x'' : specifies the shape of the pile:\\ d=x.size is the dimension of the cubes to be stacked, and the stack will be\\ x_1 by x_2 by ... by x_d cubes.       * ''[[playground/playground#Array |Array]]<[[playground/playground#Int |Int]]>'' ''x'' : specifies the shape of the pile:\\ d=x.size is the dimension of the cubes to be stacked, and the stack will be\\ x_1 by x_2 by ... by x_d cubes.
-  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]<[[playground/playground#Rational |Rational]]>''+  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]<[[playground/playground#Rational |Rational]]>''
   *  Produces a triangulated pile of hypercubes, arranged in a d-dimensional array.\\ Each cube is split into d! tetrahedra, and the tetrahedra are all grouped around\\ one of the diagonal axes of the cube.   *  Produces a triangulated pile of hypercubes, arranged in a d-dimensional array.\\ Each cube is split into d! tetrahedra, and the tetrahedra are all grouped around\\ one of the diagonal axes of the cube.
   * //Example://\\ Arrange four triangulated 3-cubes to form a big 2 by 2 cube: \\ <code> > $cc = cube_complex([2,2,2]);   * //Example://\\ Arrange four triangulated 3-cubes to form a big 2 by 2 cube: \\ <code> > $cc = cube_complex([2,2,2]);
Line 452: Line 450:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Int |Int]]'' ''g'' : genus       * ''[[playground/playground#Int |Int]]'' ''g'' : genus
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce a __surface of genus //g//__. For //g// >= 0\\ the client produces an orientable surface, otherwise\\ it produces a non-orientable one.   *  Produce a __surface of genus //g//__. For //g// >= 0\\ the client produces an orientable surface, otherwise\\ it produces a non-orientable one.
  
Line 459: Line 457:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Int |Int]]'' ''n_edges''       * ''[[playground/playground#Int |Int]]'' ''n_edges''
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce a random knot (or link) as a polygonal closed curve in 3-space.\\ The knot (or each connected component of the link) has //n_edges// edges.\\ The vertices are uniformly distributed in [-1,1]<sup>3</sup>, unless the //on_sphere// option is set.\\ In the latter case the vertices are uniformly distributed on the 3-sphere. Alternatively\\ the //brownian// option produces a knot by connecting the ends of a simulated brownian motion.   *  Produce a random knot (or link) as a polygonal closed curve in 3-space.\\ The knot (or each connected component of the link) has //n_edges// edges.\\ The vertices are uniformly distributed in [-1,1]<sup>3</sup>, unless the //on_sphere// option is set.\\ In the latter case the vertices are uniformly distributed on the 3-sphere. Alternatively\\ the //brownian// option produces a knot by connecting the ends of a simulated brownian motion.
  
 \\ \\
 {{anchor:klein_bottle:}} **''klein_bottle''** {{anchor:klein_bottle:}} **''klein_bottle''**
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  The Klein bottle.   *  The Klein bottle.
  
Line 472: Line 470:
       * ''[[playground/playground#Int |Int]]'' ''n'' : the number of vertices of the polygon       * ''[[playground/playground#Int |Int]]'' ''n'' : the number of vertices of the polygon
       * ''[[playground/playground#Int |Int]]'' ''k'' : the number of diagonals that are allowed to mutually cross       * ''[[playground/playground#Int |Int]]'' ''k'' : the number of diagonals that are allowed to mutually cross
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  Produce the simplicial sphere //&Delta;(n,k)// of (//k//+1)-crossing free multitriangulations\\ of an //n//-gon //P//, along with the group action on the diagonals induced from //D//_{2//n//}.\\ //&Delta;(n,k)// is the simplicial complex on the set of relevant diagonals of //P// whose faces are those sets\\ of diagonals such that no //k//+1 of them mutually cross. A diagonal is //relevant// if it leaves\\ //k// or more vertices of //P// on both sides. (Any diagonal having less than //k// vertices on one\\ side trivially cannot participate in a (//k//+1)-crossing, so is //irrelevant//. The corresponding\\ complex on //all// diagonals is therefore the simplicial join of this one with the simplex of irrelevant\\ diagonals.)\\ Jakob Jonsson, "Generalized triangulations and diagonal-free subsets of stack polyominoes",\\ J. Combin. Theory Ser. A, 112(1):117–142, 2005\\ //Delta(n,k)// is known to be a //k//-neighborly vertex-decomposable sphere of dimension //k//&nu;-1,\\ where the parameter &nu;=//n//-2//k//-1 measures the complexity of this construction.\\ For &nu;=0, the complex is a point; for &nu;=1 a //k//-simplex; for &nu;=2 the boundary of a cyclic polytope.\\ Setting //k//=1 yields the boundary of the simplicial associahedron.\\ The list of (//k//+1)-crossings in the //n//-gon is included as the attachment K_PLUS_1_CROSSINGS. It can\\ also be obtained as the property MINIMAL_NON_FACES, but this requires the HASSE_DIAGRAM to be computed.   *  Produce the simplicial sphere //&Delta;(n,k)// of (//k//+1)-crossing free multitriangulations\\ of an //n//-gon //P//, along with the group action on the diagonals induced from //D//_{2//n//}.\\ //&Delta;(n,k)// is the simplicial complex on the set of relevant diagonals of //P// whose faces are those sets\\ of diagonals such that no //k//+1 of them mutually cross. A diagonal is //relevant// if it leaves\\ //k// or more vertices of //P// on both sides. (Any diagonal having less than //k// vertices on one\\ side trivially cannot participate in a (//k//+1)-crossing, so is //irrelevant//. The corresponding\\ complex on //all// diagonals is therefore the simplicial join of this one with the simplex of irrelevant\\ diagonals.)\\ Jakob Jonsson, "Generalized triangulations and diagonal-free subsets of stack polyominoes",\\ J. Combin. Theory Ser. A, 112(1):117–142, 2005\\ //Delta(n,k)// is known to be a //k//-neighborly vertex-decomposable sphere of dimension //k//&nu;-1,\\ where the parameter &nu;=//n//-2//k//-1 measures the complexity of this construction.\\ For &nu;=0, the complex is a point; for &nu;=1 a //k//-simplex; for &nu;=2 the boundary of a cyclic polytope.\\ Setting //k//=1 yields the boundary of the simplicial associahedron.\\ The list of (//k//+1)-crossings in the //n//-gon is included as the attachment K_PLUS_1_CROSSINGS. It can\\ also be obtained as the property MINIMAL_NON_FACES, but this requires the HASSE_DIAGRAM to be computed.
   * //Example://\\ The f-vector of &Delta;(9,3) is that of a neighborly polytope, since &nu;=2: \\ <code> > print multi_associahedron_sphere(9,3)->F_VECTOR;   * //Example://\\ The f-vector of &Delta;(9,3) is that of a neighborly polytope, since &nu;=2: \\ <code> > print multi_associahedron_sphere(9,3)->F_VECTOR;
Line 489: Line 487:
 \\ \\
 {{anchor:real_projective_plane:}} **''real_projective_plane''** {{anchor:real_projective_plane:}} **''real_projective_plane''**
-  * //Returns:// ''[[playground/playground/SimplicialComplex |SimplicialComplex]]''+  * //Returns:// ''[[playground/playground/SimplicialComplex|SimplicialComplex]]''
   *  The real projective plane with its unique minimal triangulation on six vertices.   *  The real projective plane with its unique minimal triangulation on six vertices.
  
Line 497: Line 495:
       * ''[[playground/playground#Int |Int]]'' ''m''       * ''[[playground/playground#Int |Int]]'' ''m''
       * ''[[playground/playground#Int |Int]]'' ''n''       * ''[[playground/playground#Int |Int]]'' ''n''
-  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]''+  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]''
   *  Produces a triangulated 3-sphere with the particularly NASTY embedding\\ of the unknot in its 1-skeleton. The parameters //m// >= 2 and //n// >= 1\\ determine how entangled the unknot is. //eps// determines the ''[[playground/playground/GeometricSimplicialComplex#COORDINATES |COORDINATES]]''.   *  Produces a triangulated 3-sphere with the particularly NASTY embedding\\ of the unknot in its 1-skeleton. The parameters //m// >= 2 and //n// >= 1\\ determine how entangled the unknot is. //eps// determines the ''[[playground/playground/GeometricSimplicialComplex#COORDINATES |COORDINATES]]''.
  
Line 504: Line 502:
     * //Parameters://     * //Parameters://
       * ''[[playground/playground#Int |Int]]'' ''d'' : dimension       * ''[[playground/playground#Int |Int]]'' ''d'' : dimension
-  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex |GeometricSimplicialComplex]]''+  * //Returns:// ''[[playground/playground/GeometricSimplicialComplex|GeometricSimplicialComplex]]''
   *  The //d//-dimensional __sphere__, realized as the boundary of the (//d//+1)-simplex.   *  The //d//-dimensional __sphere__, realized as the boundary of the (//d//+1)-simplex.
  
Line 511: Line 509:
  Functions producing big objects which are not contained in application topaz.  Functions producing big objects which are not contained in application topaz.
 \\ \\
-{{anchor:secondary_polyhedron:}} **''secondary_polyhedron([[playground/playground/HyperbolicSurface |HyperbolicSurface]] s, [[playground/playground#Int |Int]] depth)''**+{{anchor:secondary_polyhedron:}} **''secondary_polyhedron([[playground/playground/HyperbolicSurface|HyperbolicSurface]] s, [[playground/playground#Int |Int]] depth)''**
     * //Parameters://     * //Parameters://
-      * ''[[playground/playground/HyperbolicSurface |HyperbolicSurface]]'' ''s''+      * ''[[playground/playground/HyperbolicSurface|HyperbolicSurface]]'' ''s''
       * ''[[playground/playground#Int |Int]]'' ''depth''       * ''[[playground/playground#Int |Int]]'' ''depth''
-  * //Returns:// ''[[playground/playground/Polytope |Polytope]]<[[playground/playground#Float |Float]]>''+  * //Returns:// ''[[playground/playground/Polytope|Polytope]]<[[playground/playground#Float |Float]]>''
   *  Computes the secondary polyhedron of a hyperbolic surface up to a given depth\\ of the spanning tree of the covering triangluation of the hypoerbolic plane.   *  Computes the secondary polyhedron of a hyperbolic surface up to a given depth\\ of the spanning tree of the covering triangluation of the hypoerbolic plane.
  
Line 551: Line 549:
  The following property_types are topological invariants.  The following property_types are topological invariants.
 \\ \\
-{{anchor:Filtration:}} **''Filtration<MatrixType>''**+{{anchor:filtration:}} **''Filtration<MatrixType>''**
     * //Template Parameters://     * //Template Parameters://
       * ''MatrixType''       * ''MatrixType''
Line 575: Line 573:
  
 \\ \\
-{{anchor:ChainComplex:}} **''ChainComplex<MatrixType>''**+{{anchor:chaincomplex:}} **''ChainComplex<MatrixType>''**
     * //Template Parameters://     * //Template Parameters://
       * ''MatrixType'' : The type of the differential matrices. default: SparseMatrix<Integer>       * ''MatrixType'' : The type of the differential matrices. default: SparseMatrix<Integer>
Line 597: Line 595:
  
 \\ \\
-{{anchor:Cell:}} **''Cell''**+{{anchor:cell:}} **''Cell''**
   *    * 
  
 \\ \\
-{{anchor:CycleGroup:}} **''CycleGroup<Scalar>''**+{{anchor:cyclegroup:}} **''CycleGroup<Scalar>''**
     * //Template Parameters://     * //Template Parameters://
       * ''Scalar'' : integer type of matrix elements       * ''Scalar'' : integer type of matrix elements
Line 607: Line 605:
  
 \\ \\
-{{anchor:IntersectionForm:}} **''IntersectionForm''**+{{anchor:intersectionform:}} **''IntersectionForm''**
   *  Parity and signature of the intersection form of a closed oriented 4k-manifold.\\ See ''[[playground/playground/SimplicialComplex#INTERSECTION_FORM |INTERSECTION_FORM]]''.   *  Parity and signature of the intersection form of a closed oriented 4k-manifold.\\ See ''[[playground/playground/SimplicialComplex#INTERSECTION_FORM |INTERSECTION_FORM]]''.
  
 \\ \\
-{{anchor:HomologyGroup:}} **''HomologyGroup''**+{{anchor:homologygroup:}} **''HomologyGroup''**
   *  A group is encoded as a sequence ( { (t<sub>1</sub> m<sub>1</sub>) ...  (t<sub>n</sub>  m<sub>n</sub>) } f) of non-negative integers,\\ with t<sub>1</sub> > t<sub>2</sub> > ... > t<sub>n</sub> > 1, plus an extra non-negative integer f.\\ The group is isomorphic to (Z/t<sub>1</sub>)<sup>m<sub>1</sub></sup> &times; ... &times; (Z/t<sub>n</sub>)<sup>m<sub>n</sub></sup> &times; Z<sup>f</sup>, \\ where Z<sup>0</sup> is the trivial group.\\ Access methods: //torsion// delivers the list of Z-groups, //betti_number// the number f.   *  A group is encoded as a sequence ( { (t<sub>1</sub> m<sub>1</sub>) ...  (t<sub>n</sub>  m<sub>n</sub>) } f) of non-negative integers,\\ with t<sub>1</sub> > t<sub>2</sub> > ... > t<sub>n</sub> > 1, plus an extra non-negative integer f.\\ The group is isomorphic to (Z/t<sub>1</sub>)<sup>m<sub>1</sub></sup> &times; ... &times; (Z/t<sub>n</sub>)<sup>m<sub>n</sub></sup> &times; Z<sup>f</sup>, \\ where Z<sup>0</sup> is the trivial group.\\ Access methods: //torsion// delivers the list of Z-groups, //betti_number// the number f.
-