Differences between revisions 6 and 17 (spanning 11 versions)
Revision 6 as of 2018-04-12 21:55:00
Size: 7205
Editor: jipilab
Comment:
Revision 17 as of 2018-04-19 11:43:58
Size: 11507
Editor: jipilab
Comment:
Deletions are marked like this. Additions are marked like this.
Line 49: Line 49:
 * Adjust the new features of the normaliz backend to the latest version [[https://trac.sagemath.org/ticket/25091|#25091]] [[https://trac.sagemath.org/ticket/25090|#25090]]
Line 56: Line 57:
Here are improvements realized to objects related to polyhedron in Sage: Here are improvements realized during the Coding Sprints at the IMA in Minneapolis to objects related to polyhedron in Sage:
Line 60: Line 61:
 * `number_field_elements_from_algebraics` should create embedded number field elements [[https://trac.sagemath.org/ticket/20181|#20181]]
 * Helper functions in the normaliz backend
 * `number_field_elements_from_algebraics` should create embedded number field elements [[https://trac.sagemath.org/ticket/20181|#20181]] [[https://groups.google.com/forum/#!topic/sage-devel/iy72Q_EKKFs|Sage-devel discussion]]
 * Helper functions and improvements in the normaliz backend [[https://trac.sagemath.org/ticket/25097|#25097]]
Line 70: Line 71:
 * Update normaliz 3.5.3 and pynormaliz 1.12 in Sage. Now Positive review. [[https://trac.sagemath.org/ticket/22984|#22984]]
 * PolyhedralComplex: preliminary implementation, see [[https://trac.sagemath.org/ticket/20877|#20877]]
Line 75: Line 78:
 * Upgrade normaliz to 3.5.3 and pynormaliz to 1.12 [[https://trac.sagemath.org/ticket/22984|#22984]]
 * Algebraic polytope using e-antic [[https://trac.sagemath.org/ticket/25097|#25097]]
 * getProjectionCone might segfault [[https://github.com/Normaliz/Normaliz/issues/180]]
 * BadInputException for ProjectCone [[https://github.com/Normaliz/Normaliz/issues/181]]
 * Unified getter [[https://github.com/Normaliz/Normaliz/pull/182]]
 * Upgrade normaliz to 3.5.3 and pynormaliz to 1.12 [[https://trac.sagemath.org/ticket/22984|#22984]]: repair of performance loss
 * Upgrade normaliz to 3.5.4 and pynormaliz to 1.16 [[https://trac.sagemath.org/ticket/25090|#25090]]: Ehrhart series and triangulation of polytope also for inhomogeneous input
 * Algebraic polytopes in Qnormaliz using e-antic [[https://trac.sagemath.org/ticket/25097|#25097]]: convex hull computation completed, improvement of Qnormaliz input and output, control of interrupts and parallelization via libQnormaliz
 * fixed: getProjectionCone might segfault [[https://github.com/Normaliz/Normaliz/issues/180]]
 * fixed: BadInputException for ProjectCone [[https://github.com/Normaliz/Normaliz/issues/181]]
 * General getters for cone properties. The getters can be used in future interfaces to make access to Normaliz cone properties easier
 * resetGrading method for cone: Can be used to replace the grading and redo certain Normaliz computation without having to delete
  degree indepenent properties, such as hilbert bases.
 * documentation of QNormaliz written
 * extensive tests of QNormaliz
 * link from libQnormaliz to libnormaliz in preparation for lattice point computation in algebraic polytopes
 * further attempts to improve QNormaliz output (not yet complete)
 * work on the C++ wrapper of e-antic
 * Normaliz 3.5.4 released
Line 85: Line 97:

PyNormaliz (last version is 1.17):

 * All computation goals and output properties from Normaliz 3.5.4 are supported
 * It is possible to give functions RationalHandler, VectorHandler, and MatrixHandler to NmzResult to construct rationals, vectors, and matrices
 * Some documentation in the sources of NormalizModule.cpp
 * Functionality to copy cone
 * Functionality to reset grading of a cone in PyNormaliz

PyQNormaliz (current beta is 0.2, not available on PIPy):

 * All QNormaliz compute targets can be accessed
 * Input of number_field data as string
 * Input of number_field elements as list of 2-tuples, or as string
 * Ouput handlers RationalHandler, NumberfieldElementHandler, VectorHandler, and MatrixHandler
 * See example worksheet: https://nbviewer.jupyter.org/github/sebasguts/PyQNormaliz/blob/master/examples/Dodecahedron.ipynb
Line 90: Line 119:

Line 93: Line 124:

Sage devel [[https://groups.google.com/forum/#!topic/sage-devel/QH_E14WHQ70|discussion]]
Line 102: Line 135:


=== Sage 8.2 ===

 * Improvements:
   * Library of polytopes accepts a backend parameter
   * Fixed _facet_adjacency_matrix of non-full-dim. polyhedron
   * Optimize count lattice points of polytopes
    
 * New methods for polyhedron:
   * get_integral_point

=== Sage 8.1 ===

 * Improvements:
   * Fixed equation handling in .to_linear_program and integral_points_count
   * Fixed sage_input to include the backend used
   * Improved the polyhedron constructor
   * Fixed .affine_hull() raising an assertion error
   * Volume function handling better the different measures depending on the engine used

=== Sage 8.0 ===

Here is a sample of changes related to Polyhedral Geometry in this release.

 * Highlights:
   * Integration with Latte (function .integrate() )
   * New class for Voronoi Diagrams
   * Backend polymake for polyhedron

 * Improvements:
   * Fixed CartesianProduct with distinct dimensions
   * Fixed an error in .is_lattice_polytope()
   * Fixed overflow in integral_points()
   * Fixed normaliz backend with empty polyhedron

 * New methods for Polyhedron:
   * integral_points_count()

=== Sage 7.6 ===

Here is a sample of changes related to Polyhedral Geometry in this release:

 * Improvements:
   * documentation of Combinatorial and Discrete Geometry
   * combinatorial_automorphism_group
   * Fixes on .volume()
   * Fixes in integral_points()

 * New methods for Polyhedron:
   * .is_inscribed()
   * .neighborliness()
   * .is_neighborly()
   * .normal_fan()
   * .face_fan()
   * .is_combinatorially_isomorphic()
   * .face_truncation()

 * New methods for SimplicialComplexes:
   * star of a face
   * stellar subdivision

 * Generic interface to latte integrale:
   * count points

A Roadmap for Optimization and Polyhedral Geometry softwares interactions

(around Sage, (PyQ)Normaliz, SCIP, e-antic, Polymake, and others)

This page is intended to describe the current status of development of Sage related to optimization and polyhedral geometry.

Future & Current Projects

  • Extend the usage of Normaliz in Sage
  • Extend the polyhedral geometry component of sage
  • Polyhedral arrangements and complexes

Meetings

Sage Days 84 on Polytopes in Olot

Tickets

Here are some practical lists of tickets:

Tickets from the Sage Days 84 March 2017

Tickets from the IMA Coding Sprint - April 2018

Tickets with keyword polytope

Current tickets of the Geometry component

Meta-tickets

There are already a few meta-tickets related to this topic:

To do

  • Test the algebraic polytopes #25097

  • Make Polyhedron_normaliz accept algebraic stuff, related to #25097 (adapt _init_from_Hrepresentation)

  • Add known irrational polytope to the library of polytopes
  • repr of NumberFields (the parents) should indicate its embedding if there is one #21161 (this ticket will help in debugging and have good feedback)

  • Thematic Tutorial for Py(Q)Normaliz installation/Usage in Sage
  • Increase documentation in Py(Q)Normaliz
  • Deprecate the opacity argument for plot3d and use alpha #21984

  • Make Ehrhart (quasi)polynomial accessible through normaliz (and consisten with the current one) #18957

  • Adjust the new features of the normaliz backend to the latest version #25091 #25090

Progress Report Timeline

April 2018

Sage

Here are improvements realized during the Coding Sprints at the IMA in Minneapolis to objects related to polyhedron in Sage:

  • Thematic tutorial on polyhedron in Sage #22572

  • Make features of normaliz accessible #25091

  • number_field_elements_from_algebraics should create embedded number field elements #20181 Sage-devel discussion

  • Helper functions and improvements in the normaliz backend #25097

  • Change error message in construction of polyhedron object #24835

  • Improve the output of repr_pretty for Polyhedron #24837

  • Implement stacking onto a face of a polyhedron #24847

  • Implement join of polytopes #24848

  • Implement one point suspension and face split of polyhedron #24886

  • The polar of a polyhedron should carry the backend used #25081

  • Construct RationalPolyhedralFan from possibly overlapping cones #25122

  • polygon3d ignores the "alpha" (and equivalent "opacity") argument #25095

  • Update normaliz 3.5.3 and pynormaliz 1.12 in Sage. Now Positive review. #22984

  • PolyhedralComplex: preliminary implementation, see #20877

(Q)Normaliz

http://normaliz.uni-osnabrueck.de

  • Upgrade normaliz to 3.5.3 and pynormaliz to 1.12 #22984: repair of performance loss

  • Upgrade normaliz to 3.5.4 and pynormaliz to 1.16 #25090: Ehrhart series and triangulation of polytope also for inhomogeneous input

  • Algebraic polytopes in Qnormaliz using e-antic #25097: convex hull computation completed, improvement of Qnormaliz input and output, control of interrupts and parallelization via libQnormaliz

  • fixed: getProjectionCone might segfault https://github.com/Normaliz/Normaliz/issues/180

  • fixed: BadInputException for ProjectCone https://github.com/Normaliz/Normaliz/issues/181

  • General getters for cone properties. The getters can be used in future interfaces to make access to Normaliz cone properties easier
  • resetGrading method for cone: Can be used to replace the grading and redo certain Normaliz computation without having to delete
    • degree indepenent properties, such as hilbert bases.
  • documentation of QNormaliz written
  • extensive tests of QNormaliz
  • link from libQnormaliz to libnormaliz in preparation for lattice point computation in algebraic polytopes
  • further attempts to improve QNormaliz output (not yet complete)
  • work on the C++ wrapper of e-antic
  • Normaliz 3.5.4 released

Py(Q)Normaliz

https://pypi.python.org/pypi/PyNormaliz https://github.com/Normaliz/PyNormaliz

PyNormaliz (last version is 1.17):

PyQNormaliz (current beta is 0.2, not available on PIPy):

PyScipOpt

https://github.com/SCIP-Interfaces/PySCIPOpt

Sage devel discussion

  • Upgrade scipoptsuite to 5.0.1 #24662

  • Add SCIP backend using PySCIPOpt #21003

Polymake

https://polymake.org/doku.php

  • Upgrade polymake to version 3.2r2 (current interface breaks) #24905

Sage 8.2

  • Improvements:
    • Library of polytopes accepts a backend parameter
    • Fixed _facet_adjacency_matrix of non-full-dim. polyhedron
    • Optimize count lattice points of polytopes
  • New methods for polyhedron:
    • get_integral_point

Sage 8.1

  • Improvements:
    • Fixed equation handling in .to_linear_program and integral_points_count
    • Fixed sage_input to include the backend used
    • Improved the polyhedron constructor
    • Fixed .affine_hull() raising an assertion error
    • Volume function handling better the different measures depending on the engine used

Sage 8.0

Here is a sample of changes related to Polyhedral Geometry in this release.

  • Highlights:
    • Integration with Latte (function .integrate() )
    • New class for Voronoi Diagrams
    • Backend polymake for polyhedron
  • Improvements:
    • Fixed CartesianProduct with distinct dimensions

    • Fixed an error in .is_lattice_polytope()
    • Fixed overflow in integral_points()
    • Fixed normaliz backend with empty polyhedron
  • New methods for Polyhedron:
    • integral_points_count()

Sage 7.6

Here is a sample of changes related to Polyhedral Geometry in this release:

  • Improvements:
    • documentation of Combinatorial and Discrete Geometry
    • combinatorial_automorphism_group
    • Fixes on .volume()
    • Fixes in integral_points()
  • New methods for Polyhedron:
    • .is_inscribed()
    • .neighborliness()
    • .is_neighborly()
    • .normal_fan()
    • .face_fan()
    • .is_combinatorially_isomorphic()
    • .face_truncation()
  • New methods for SimplicialComplexes:

    • star of a face
    • stellar subdivision
  • Generic interface to latte integrale:
    • count points

A list of other Polyhedral Geometry softwares

What are other softwares dealing with polyhedral geometry? Here is a non-exhaustive list.

OptiPolyGeom (last edited 2022-04-18 03:44:30 by mkoeppe)