Skip to content

Releases: oscar-system/Polymake.jl

v0.3.3

14 Apr 11:05
fd04c00
Compare
Choose a tag to compare

Polymake v0.3.3

Major bug fixed: due to empty default std::ostringstream constructor libpolymake.so was no longer compatible with the libstdc++ shipped with julia, which caused problems on linux distribution shipping newer versions of libstdc++. This has been fixed in #252.

Diff since v0.3.2

Closed issues:

  • Error in printing of cones (#244)
  • Julia 1.4 library compatibility problem on Linux. (#250)
  • Polymake.jl doesn't work if user has too new C++ library (#251)

Merged pull requests:

v0.3.2

25 Mar 11:05
dd8359f
Compare
Choose a tag to compare

Polymake v0.3.2

Diff since v0.3.1

Merged pull requests:

v0.3.1

11 Mar 15:07
1e41ef1
Compare
Choose a tag to compare

Polymake v0.3.1

Diff since v0.3.0

Closed issues:

  • shell execute errors upon showing the result (#223)
  • No Sascha no release (#228)
  • nvars for polynomials is a CxxWrap type (#235)

Merged pull requests:

v0.3.0

20 Feb 15:07
f8f5bc0
Compare
Choose a tag to compare

Polymake v0.3.0

Library updates

  • polymake binaries were updated to version 4.0r1 (released 19.02.2020)
  • Polymake.jl depends now on CxxWrap ^0.9.0 (released 29.01.2020)
  • polymake binaries link to SingularBuilder and FlintBuilder binaries.
  • Polymake.jl supports julia versions: 1.0, 1.1, 1.2, 1.3 and 1.4.

Breaking changes

  • constructors for big objects no longer support Pair{Symbol, Any} or Dict{Symbol, Any} arguments. The only supported syntax is through keyword arguments, i.e.
    polytope.Polytope(:POINTS => ...)
    needs to be replaced with
    polytope.Polytope(POINTS = ...)

Changes in exports

  • internal (small) types are no longer exported in order to facilitate the use of Polymake.jl within Oscar project.
  • Small types (the c++ wrapped structures) in Polymake.jl were renamed dropping the unfortunate pm_ prefix, so that:
    • pm_Matrix <: AbstractMatrix became Polymake.Matrix <: AbstractMatrix,
    • pm_Integer <: Base.Integer became Polymake.Integer <: Base.Integer, etc.
  • internal modules of Polymake.jl have been renamed to lowercase (matching polymake application names), i.e. Polymake.Tropical became Polymake.tropical.
  • those modules remain exported from Polymake.jl, i.e. upon using Polymake one can immediately call polytope.Cone(...).

To summarize: the only names exported from Polymake at the moment are: visual, application names and macros: @pm and @convert_to.

New features

  • All BigObjects from polymake (i.e. Cones, Polytopes, Fans, etc) gained the corresponding constructors with doc-strings attached, i.e. polytope.Polytope is an actual struct with constructors producing an instance of BigObject. Asking for @doc polytope.Polytope will bring polymake helpstring.

  • updated syntax for @pm macro. The rule of thumb is

    use @pm macro when julia throws UndefinedVariable error.

    Examples:

    • @pm polytope.Polytope(...) can be safely replaced by polytope.Polytope(...) (call to an actual constructor);
    • @pm polytope.Polytope{Rational}(...) can be safely replaced by polytope.Polytope{Rational}(...) (call to a parametrized constructor);
    • @pm polytope.Polytope{QuadraticExtension}(...) must use the macro, as QuadraticExtension is not a valid object in julia;
  • @convert_to PerlType argument calls common::convert_to<PerlType> function to help with the conversion of Polymake.jl return types.

  • New small types are wrapped and accessible from julia:

    • IncidenceMatrix <: AbstractMatrix
    • SparseMatrix <: SparseArrays.AbstractSparseMatrix
    • TropicalNumber <: Number
    • SparseVector <: SparseArrays.AbstractSparseVector
    • Polynomial (based on libsingular).
  • All Polymake.jl array-style containers (except IncidenceMatrix, which stores only Bools) support the following element types:

    • Int64 (pm::Int, aka long)
    • Float64 (dobule)
    • Polymake.Integer (pm::Integer)
    • Polymake.Rational (pm::Rational)

Known Bugs:

Diff since v0.2.2

Closed issues:

  • TODO List (#30)
  • Wrapping Polymake types (#142)
  • Segmentation fault in MILP computation (#144)
  • Visualizing of subdivision (#163)
  • Option to disable warnings (#165)
  • cleaning polymake_caller.cpp (#168)
  • BigObject name completion and help strings (#177)
  • List of all small types (#188)
  • @convert_to macro (#189)
  • prefer function (#193)
  • Sparse system tests flaky (#196)
  • Options for visual broken (#204)
  • gcc internal compiler error: Segmentation fault (#206)
  • BigObject from another BigObject (#214)
  • Wrapper Compilation Errors (#217)
  • Bug: IncidenceMatrix becoming SparseMatrix (#218)
  • shell execute errors upon showing the result (#223)

Merged pull requests:

v0.2.2

27 Sep 15:18
v0.2.2
c41b24c
Compare
Choose a tag to compare

v0.2.2 (2019-09-26)

Diff since v0.2.1

Merged pull requests:

v0.2.1

19 Sep 10:15
v0.2.1
fb53af5
Compare
Choose a tag to compare

v0.2.1 (2019-09-18)

Diff since v0.2.0

Closed issues:

  • Package does not build on single core systems (#157)

Merged pull requests:

v0.2.0

19 Aug 14:00
v0.2.0
aebfbef
Compare
Choose a tag to compare

v0.2.0 (2019-08-17)

Diff since v0.1.1

Closed issues:

  • optimum on an empty polytope? (#151)
  • Multiple polymake sessions are started (#147)
  • tag 0.3 (#112)
  • Register package? (#102)

Merged pull requests:

v0.1.1

01 May 15:36
932968d
Compare
Choose a tag to compare
Merge pull request #140 from oscar-system/st/o

Bump version to 0.1.1

v0.1.0

01 May 09:33
9af2f4f
Compare
Choose a tag to compare
Merge pull request #134 from oscar-system/st/prepare-release

Prepare initial release