Skip to content

Conversation

kalmarek
Copy link
Contributor

No description provided.

@kalmarek
Copy link
Contributor Author

kalmarek commented Aug 2, 2020

using Polymake

function BB_iterator(c)
    N = polytope.dim(c)
    @info "running bb using iterator over $N-dimensional polytope"
    bb = Polymake.BeneathBeyond(c.POINTS, c.LINEALITY_SPACE, redundant=true, triangulation=true, iscone=true)
    tr = GC.@preserve bb begin
        for x in bb
            @show length(Polymake.getTriangulation(bb.algo))
        end
        tr = Polymake.getTriangulation(bb.algo)
        @show last(tr)
        tr
    end
    @info "bb is done!"
    return tr
end


function BB_direct_call(c)
    N = polytope.dim(c)
    @info "running bb using direct calls over $N-dimensional polytope"
    bb = Polymake.BeneathBeyondAlgo{Polymake.Rational}()
    Polymake.bb_initialize!(bb, c.POINTS, c.LINEALITY_SPACE)
    
    for p in 0:6
        @time Polymake.bb_add_point!(bb, p)
    end
    
    @show Polymake.getTriangulation(bb)
    
    @time for p in 2:size(c.POINTS, 1)-1
        Polymake.bb_add_point!(bb, p)
    end
    tr = Polymake.getTriangulation(bb)
    @show last(tr)
    @info "bb is done!"
    return tr
end;



const rs = polytope.rand_sphere(4,30);

@info "running placing_triangulation"
t1 = polytope.placing_triangulation(rs.POINTS)
t2 = let rs = rs
    @info "running bb using bb_compute! over $N-dimensional polytope"
    bbalgo = Polymake.BeneathBeyondAlgo{Polymake.Rational}()
    GC.@preserve bbalgo begin
        Polymake.bb_compute!(bbalgo, rs.POINTS, rs.LINEALITY_SPACE)
        Polymake.getTriangulation(bbalgo)
    end
end

@assert t1 == t2

t3 = BB_direct_call(rs)
@assert t1 == t3
t4 = BB_iterator(rs)
@assert t1 == t4

occasionally (rather often?) crashes in different places (once I've seen this even in polytope.placing_triangulation).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants