Changes between Version 22 and Version 24 of Ticket #25097
 Timestamp:
 04/09/18 03:29:20 (4 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Ticket #25097
 Property Keywords IMAPolyGeom added

Ticket #25097 – Description
v22 v24 3 3  `./sage f normaliz && ./sage f pynormaliz pyqnormaliz` 4 4 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), EANTIC (unreleased) (see scripts for which specific versions are pulled) 8  then can test with `Qsource/Qnormaliz Qtest/testnf/dodecahedronv.in && cat Qtest/testnf/dodecahedronv.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.) 13 7 {{{ 14 8 sage: P = Polyhedron(vertices=polytopes.icosahedron().vertices(), backend='normaliz', verbose='out.in') … … 34 28 cone 0 35 29 }}} 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^32, 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.38e16] 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.38e16]', '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`. 36 45 37 (Most examples in `Qtest/testnf/` 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, ghsebasguts): `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. 38 49 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`...)41 50 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), EANTIC (unreleased) (see scripts for which specific versions are pulled) 54  then can test with `Qsource/Qnormaliz Qtest/testnf/dodecahedronv.in && cat Qtest/testnf/dodecahedronv.out` 55 56 '''To do on the Normaliz side:''' 43 57  merge with Vincent's master branch of eantic 44  (Result of discussion of mkoeppe, ghsebasguts): `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`.