Giter Club home page Giter Club logo

convexhull.jl's Introduction

A Julia implementation of the Double Description algorithm

Build Status
Build Status
Codecov branch

This package contains a pure Julia implementation of the Double Description algorithm. It implements the Polyhedral Computation library interface of Polyhedra.jl.

convexhull.jl's People

Contributors

blegat avatar github-actions[bot] avatar joehuchette avatar juliatagbot avatar matbesancon avatar rdeits avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

convexhull.jl's Issues

Unable to install in Julia 0.6.4

I first installed JuliaPolyhedra but when I try to install ConvexHull.jl I get this error:

julia> Pkg.add("ConvexHull")
ERROR: unknown package ConvexHull
macro expansion at .\pkg\entry.jl:53 [inlined]
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at .\task.jl:335
Stacktrace:
 [1] sync_end() at .\task.jl:287
 [2] macro expansion at .\task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at .\pkg\entry.jl:51
 [4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at .\pkg\dir.jl:36
 [5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at .\file.jl:59
 [6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at .\pkg\dir.jl:36
 [7] add(::String) at .\pkg\pkg.jl:117

Did I misunderstood something?

example?

Could you provide an example of how this library is called - similar to how you do it on the Qhull.jl?

Remove double reference CountedVector / DD

mutable struct DoubleDescription{T<:Real,C}
    A::Matrix{T}
    R::Vector{C}
    K::Set{Int}
    adj::Dict{Tuple{Int,Int},Bool}
    num_rays::Int
end

mutable struct CountedVector{T<:Real,C}
    v::Vector{T}
    Av::Vector{T}
    dd::DoubleDescription{T,C}
    id::Int

    function CountedVector{T}(v::Vector{T}, dd::DoubleDescription{T,C}) where {T,C}
        dd.num_rays += 1
        canonicalize!(v)
        new{T,C}(v, dd.A*v, dd, dd.num_rays)
    end
end

One should be able to restructure things to avoid double references

Register package?

Are there any plans to register ConvexHull.jl?

I'm using ConvexHull in an unregistered package (call it Foo) that gets loaded on multiple compute nodes. I installed ConvexHull in the package manager using its URL (add [email protected]:JuliaPolyhedra/ConvexHull.jl.git), which worked fine. However, when I call @everywhere using Foo, I get the following error:

ERROR: On worker 2:
Unsatisfiable requirements detected for package ConvexHull [ac7f83e5]:
    ConvexHull [ac7f83e5] log:
    ├─ConvexHull [ac7f83e5] has no known versions!
    └─restricted to versions * by Foo [e9584744] — no versions left
    └─Foo [e9584744] log:
    ├─possible versions are: 0.0.0 or uninstalled
         └─Foo [e9584744] is fixed to version 0.0.0

I believe my problem is similar to the one in this Discourse post.

Thanks for your help!

Fix tests

Tests are now failing while they used to pass. Maybe due to a change to Polyhedra ?

Complete lack of documentation?

Hey, so I'm scoping out this package for use in some code, but tbh the lack of documentation is making it pretty difficult since I'd rather not code something up and then find out later that I was doing something wrong or that the package doesn't do what I thought it did.

Is there any chance of adding some (even minimalistic) documentation, it'd be a huge help to anyone trying to use this code in the future. Thanks!

Can't install under 0.6.4

I am getting this error with Julia 0.6.4 under Windows 10:

julia> Pkg.add("ConvexHull")
ERROR: unknown package ConvexHull
macro expansion at .\pkg\entry.jl:53 [inlined]
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at .\task.jl:335
Stacktrace:
 [1] sync_end() at .\task.jl:287
 [2] macro expansion at .\task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at .\pkg\entry.jl:51
 [4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at .\pkg\dir.jl:36
 [5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at .\file.jl:59
 [6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at .\pkg\dir.jl:36
 [7] add(::String) at .\pkg\pkg.jl:117

Any ideas?

upgrading to 1.0

I am planning on upgrading this lib to Julia 1.0 if fine for everyone, it hasn't been de-dusted in a while. Also, a release will be required

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.