Changes between Version 22 and Version 24 of Ticket #25097


Ignore:
Timestamp:
04/09/18 03:29:20 (4 years ago)
Author:
mkoeppe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #25097

    • Property Keywords IMA-PolyGeom added
  • Ticket #25097 – Description

    v22 v24  
    33 - `./sage -f normaliz && ./sage -f pynormaliz pyqnormaliz`
    44
    5 '''Normaliz side of things:'''
    6  - clone from https://github.com/mkoeppe/Normaliz/tree/enfnormaliz2018
    7  - run script `install_normaliz_with_opt.sh` to install FLINT, ARB, ANTIC (unreleased), E-ANTIC (unreleased) (see scripts for which specific versions are pulled)
    8  - then can test with `Qsource/Qnormaliz Qtest/test-nf/dodecahedron-v.in && cat Qtest/test-nf/dodecahedron-v.out`
    9 
    10 '''Sage side of things:'''
    11 
    12 As a first step, we make it possible to write Normaliz output files while setting up a polyhedron over a numberfield. (#25090 added writing Normaliz output files in the rational case.)
     5'''Things that work in sage:'''
     6 - Setting up a polyhedron over a number field, writing a QNormaliz input file as a side effect.  (#25090 added writing Normaliz output files in the rational case.)
    137{{{
    148sage: P = Polyhedron(vertices=polytopes.icosahedron().vertices(), backend='normaliz', verbose='out.in')
     
    3428cone 0
    3529}}}
     30 - Likewise with input from various fields, which will be coerced to a number field first via #20181:
     31{{{
     32        sage: x = polygen(ZZ); P = Polyhedron(vertices=[[sqrt(2)], [AA.polynomial_root(x^3-2, RIF(0,3))]], backend='normaliz', verbose=True)
     33        # ----8<---- Equivalent QNormaliz input file ---8<----
     34        amb_space 1
     35        number_field min_poly (a^6 - 2) embedding [1.122462048309373 +/- 5.38e-16]
     36        subspace 0
     37        vertices 2
     38         (a^3) 1
     39         (a^2) 1
     40        cone 0
     41        # ----8<-------------------8<-------------------8<----
     42        # Calling PyQNormaliz_cpp.NmzCone(**{'subspace': [], 'vertices': [[[0L, 0L, 0L, 1L, 0L, 0L], 1L], [[0L, 0L, 1L, 0L, 0L, 0L], 1L]], 'NumberFieldData': 'min_poly (a^6 - 2) embedding [1.122462048309373 +/- 5.38e-16]', 'cone': []})
     43}}}
     44  (Result of discussion of mkoeppe, jipilab:) `Polyhedron_normaliz` should accept `AA`, `CyclotomicField`, etc. input and use these as a `base_ring`. When preparing data for `PyQNormaliz`, use `number_field_elements_from_algebraics`. When reading data from `PyQNormaliz`, first build number field elements, then inject into the correct `base_ring`.
    3645
    37 (Most examples in `Qtest/test-nf/` have been generated like this.)
     46'''To do:'''
     47 - Wait for fixes in PyQNormaliz, then read results from PyQNormaliz.
     48 (Result of discussion of mkoeppe, gh-sebasguts): `PyQNormaliz`... use strings to transport arbs and lists for everything else. We do not use `sage.libs.arb` etc. so we can keep PyQNormaliz standalone.
    3849
    39 Next steps to be able to generate more examples:
    40  - #20181 (`number_field_elements_from_algebraics` should create embedded number field elements) so that we can have more polyhedra over numberfields (instead of `AA`...)
    4150
    42 Other next steps:
     51'''Normaliz side of things:'''
     52 - clone from https://github.com/mkoeppe/Normaliz/tree/enfnormaliz2018
     53 - run script `install_normaliz_with_opt.sh` to install FLINT, ARB, ANTIC (unreleased), E-ANTIC (unreleased) (see scripts for which specific versions are pulled)
     54 - then can test with `Qsource/Qnormaliz Qtest/test-nf/dodecahedron-v.in && cat Qtest/test-nf/dodecahedron-v.out`
     55
     56'''To do on the Normaliz side:'''
    4357 - merge with Vincent's master branch of e-antic
    44  - (Result of discussion of mkoeppe, gh-sebasguts): `PyQNormaliz`... use strings to transport arbs and lists for everything else. We do not use `sage.libs.arb` etc. so we can keep PyQNormaliz standalone.
    45  - (Result of discussion of mkoeppe, jipilab:) `Polyhedron_normaliz` should accept `AA`, `CyclotomicField`, etc. input and use these as a `base_ring`. When preparing data for `PyQNormaliz`, use `number_field_elements_from_algebraics`. When reading data from `PyQNormaliz`, first build number field elements, then inject into the correct `base_ring`.