Skip to content

Set up bipyramid with both Vrep and Hrep #32151

@kliem

Description

@kliem

We set up the bipyramid over a polyhedron with the double description.

Before:

sage: P = polytopes.permutahedron(6)                                                                                                                                                
sage: %time Q = P.bipyramid()                                                                                                                                                       
CPU times: user 101 ms, sys: 63 µs, total: 101 ms
Wall time: 100 ms
sage: P = polytopes.permutahedron(6, backend='normaliz')                                                                                                                            
sage: %time Q = P.bipyramid()                                                                                                                                                       
CPU times: user 410 ms, sys: 152 ms, total: 562 ms
Wall time: 225 ms
sage: P = polytopes.permutahedron(7, backend='normaliz')                                                                                                                            
sage: %time Q = P.bipyramid()                                                                                                                                                       
CPU times: user 5.49 s, sys: 855 ms, total: 6.35 s
Wall time: 2.41 s

sage: P = polytopes.hypercube(8)                                                                                                                                                    
sage: %time Q = P.bipyramid()                                                                                                                                                       
CPU times: user 29.5 ms, sys: 118 µs, total: 29.7 ms
Wall time: 29.4 ms
sage: P = polytopes.cross_polytope(8)                                                                                                                                               
sage: %time Q = P.bipyramid()                                                                                                                                                       
CPU times: user 47.3 ms, sys: 0 ns, total: 47.3 ms
Wall time: 46.4 ms
sage: P = polytopes.hypercube(6, backend='field')                                                                                                                                   
sage: %time Q = P.bipyramid()                                                                                                                                                       
CPU times: user 1.43 s, sys: 3.99 ms, total: 1.43 s
Wall time: 1.43 s

After:

sage: P = polytopes.permutahedron(6)                                                                                                                                                                                                                                           
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 281 ms, sys: 4.01 ms, total: 285 ms
Wall time: 284 ms
sage: P = polytopes.permutahedron(6, backend='normaliz')                                                                                                                                                                                                                       
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 159 ms, sys: 20.2 ms, total: 179 ms
Wall time: 89.5 ms
sage: P = polytopes.permutahedron(7, backend='normaliz')                                                                                                                                                                                                                       
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 1.33 s, sys: 69.8 ms, total: 1.4 s
Wall time: 709 ms

sage: P = polytopes.hypercube(8)                                                                                                                                                                                                                                               
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 17.6 ms, sys: 94 µs, total: 17.7 ms
Wall time: 17.6 ms
sage: P = polytopes.cross_polytope(8)                                                                                                                                                                                                                                          
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 68 ms, sys: 0 ns, total: 68 ms
Wall time: 66.9 ms
sage: P = polytopes.hypercube(6, backend='field')                                                                                                                                                                                                                              
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 3.19 ms, sys: 0 ns, total: 3.19 ms
Wall time: 3.2 ms
sage: P = polytopes.hypercube(10, backend='field')                                                                                                                                                                                                                             
sage: %time Q = P.bipyramid()                                                                                                                                                                                                                                                  
CPU times: user 38.4 ms, sys: 115 µs, total: 38.5 ms
Wall time: 37.6 ms

For the permutahedron with ppl things are a bit weird. It seems that ppl does very good in detecting that the bipyramid can be understood from a lower dimensional structure. Not sure, if this should be accounted for.

Component: geometry

Keywords: polyhedron, double description, precomputed, bipyramid

Author: Jonathan Kliem

Branch/Commit: 30c429d

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/32151

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions