v0.3.0
Polymake v0.3.0
Library updates
polymake
binaries were updated to version4.0r1
(released 19.02.2020)Polymake.jl
depends now onCxxWrap
^0.9.0
(released 29.01.2020)polymake
binaries link toSingularBuilder
andFlintBuilder
binaries.Polymake.jl
supportsjulia
versions:1.0
,1.1
,1.2
,1.3
and1.4
.
Breaking changes
- constructors for big objects no longer support
Pair{Symbol, Any}
orDict{Symbol, Any}
arguments. The only supported syntax is through keyword arguments, i.e.needs to be replaced withpolytope.Polytope(:POINTS => ...)
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) inPolymake.jl
were renamed dropping the unfortunatepm_
prefix, so that:pm_Matrix <: AbstractMatrix
becamePolymake.Matrix <: AbstractMatrix
,pm_Integer <: Base.Integer
becamePolymake.Integer <: Base.Integer
, etc.
- internal modules of
Polymake.jl
have been renamed to lowercase (matchingpolymake
application names), i.e.Polymake.Tropical
becamePolymake.tropical
. - those modules remain exported from
Polymake.jl
, i.e. uponusing Polymake
one can immediately callpolytope.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
BigObject
s frompolymake
(i.e.Cone
s,Polytope
s,Fan
s, etc) gained the corresponding constructors with doc-strings attached, i.e.polytope.Polytope
is an actualstruct
with constructors producing an instance ofBigObject
. Asking for@doc polytope.Polytope
will bring polymake helpstring. -
updated syntax for
@pm
macro. The rule of thumb isuse
@pm
macro when julia throwsUndefinedVariable
error.Examples:
@pm polytope.Polytope(...)
can be safely replaced bypolytope.Polytope(...)
(call to an actual constructor);@pm polytope.Polytope{Rational}(...)
can be safely replaced bypolytope.Polytope{Rational}(...)
(call to a parametrized constructor);@pm polytope.Polytope{QuadraticExtension}(...)
must use the macro, asQuadraticExtension
is not a valid object in julia;
-
@convert_to PerlType argument
callscommon::convert_to<PerlType>
function to help with the conversion ofPolymake.jl
return types. -
New small types are wrapped and accessible from julia:
IncidenceMatrix <: AbstractMatrix
SparseMatrix <: SparseArrays.AbstractSparseMatrix
TropicalNumber <: Number
SparseVector <: SparseArrays.AbstractSparseVector
Polynomial
(based onlibsingular
).
-
All
Polymake.jl
array-style containers (exceptIncidenceMatrix
, which stores onlyBool
s) support the following element types:Int64
(pm::Int
, akalong
)Float64
(dobule
)Polymake.Integer
(pm::Integer
)Polymake.Rational
(pm::Rational
)
Known Bugs:
Nemo.jl
MUST be loaded beforePolymake.jl
, see Nemo.jl/issues/108.
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:
- run tests on 1.3 (#162) (@kalmarek)
- Remove warning for doc string syntax (#164) (@saschatimme)
- Add pm::Matrix (#166) (@saschatimme)
- Interrupt (#167) (@kalmarek)
- get rid of c macros (#169) (@kalmarek)
- Fix mismatch between pm_array cpp and pm_Array_suppT (#170) (@saschatimme)
- Allow JSON 0.21 (#172) (@saschatimme)
- bump to polymake 3.6 (#174) (@benlorenz)
- add support for pm_Vector{Float64} (#175) (@kalmarek)
- rename *.jl files (#176) (@kalmarek)
- add objects with help and params to json (#178) (@benlorenz)
- add solve_LP (#179) (@kalmarek)
- small fix for apptojson.pl (#180) (@kalmarek)
- Types/sparsematrix (#181) (@alexej-jordan)
- Types/tropicalnumber (#182) (@alexej-jordan)
- V0.3 (#183) (@kalmarek)
- Types/incidencematrix (#184) (@alexej-jordan)
- bump polymake binary for flint and singular (#185) (@benlorenz)
- Fix/docstrings something something (#186) (@kalmarek)
- Remove void calls (#190) (@saschatimme)
- trying to remove pm_ and update to polymake 4.0 (#191) (@benlorenz)
- Add toplevel visual function (#194) (@saschatimme)
- Add prefer function (#195) (@saschatimme)
- added support for global_epsilon and fixed sparsematrix test (#201) (@alexej-jordan)
- bump to final polymake 4.0 and add version check (#202) (@benlorenz)
- Fix show for svg (#203) (@saschatimme)
- Adjust Travis Test Matrix (#205) (@saschatimme)
- add workaround for gcc 9 internal compiler error (#207) (@benlorenz)
- Types/sparsevector (#208) (@alexej-jordan)
- Upd/cxx wrap v0.9 (#210) (@kalmarek)
- show correct application name in repl prompt (#211) (@benlorenz)
- fix for mac os cxxlong issue (#212) (@benlorenz)
- Macro/convert to (#213) (@alexej-jordan)
- Install TagBot as a GitHub Action (#215) (@JuliaTagBot)
- Types/polynomial (#216) (@alexej-jordan)
- fixed bug, now convert_to_pm_type(IncidenceMatrix) == IncidenceMatrix (#219) (@alexej-jordan)
- Fix readme (req. polymake 4.0) (#220) (@saschatimme)
- add github actions based tests (#222) (@kalmarek)
- bump polymake to 4.0r1 (#224) (@benlorenz)
- Bigobject copy conversion and cast (#226) (@benlorenz)
- add some nicer logic/user facing errors to shell_execute (#227) (@kalmarek)