Opened 3 months ago

Closed 2 months ago

#32151 closed enhancement (fixed)

Set up bipyramid with both Vrep and Hrep

Reported by: gh-kliem Owned by:
Priority: major Milestone: sage-9.4
Component: geometry Keywords: polyhedron, double description, precomputed, bipyramid
Cc: Merged in:
Authors: Jonathan Kliem Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: 30c429d (Commits, GitHub, GitLab) Commit: 30c429dcf242d6e0dcd5cc42fb2568386001b3dc
Dependencies: Stopgaps:

Status badges

Description

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.

Change History (4)

comment:1 Changed 3 months ago by gh-kliem

  • Status changed from new to needs_review

comment:2 Changed 3 months ago by tscrim

  • Reviewers set to Travis Scrimshaw
  • Status changed from needs_review to positive_review

LGTM.

comment:3 Changed 3 months ago by gh-kliem

Thank you.

comment:4 Changed 2 months ago by vbraun

  • Branch changed from u/gh-kliem/double_description_bipyramid to 30c429dcf242d6e0dcd5cc42fb2568386001b3dc
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.