Opened 3 years ago

Closed 2 years ago

#25090 closed enhancement (fixed)

Upgrade Normaliz version to 3.6.3 and PyNormaliz to 1.19

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-8.4
Component: packages: optional Keywords: IMA-PolyGeom
Cc: jipilab, gh-sebasguts, moritz, vdelecroix, Winfried, mkoeppe, tscrim Merged in:
Authors: Matthias Koeppe, Jean-Philippe Labbé Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: 36d5473 (Commits) Commit: 36d5473d008d2d39a3740ed77783298ee5564e61
Dependencies: #22984 Stopgaps:

Description (last modified by tscrim)

Upstream:

Normaliz:

(cd upstream && wget 'https://github.com/Normaliz/Normaliz/releases/download/v3.6.3/normaliz-3.6.3.tar.gz')

PyNormaliz 1.19:

(cd upstream && wget 'https://files.pythonhosted.org/packages/7f/e9/3c15d1fc8ebba8a2ed17fc0f209804dc1240166a686d2f592305efc9d25e/PyNormaliz-1.19.tar.gz') 

Some more helper functions were included to facilitate the interfacing.

Change History (65)

comment:1 Changed 3 years ago by mkoeppe

  • Branch set to u/mkoeppe/pynormaliz2

comment:2 Changed 3 years ago by mkoeppe

  • Cc jipilab gh-sebasguts added
  • Commit set to eaedcc2dfe80f9836f9980318d760d8e32c26e74

Last 10 new commits:

737552dUpdating patch with upstream fix for wrong number of lattice points.
530302dMerge branch 'u/tscrim/upgrade_noramliz_pynormaliz-22984' of git://trac.sagemath.org/sage into u/tscrim/upgrade_noramliz_pynormaliz-22984
57d40b0Upgrade Normaliz to 3.5.2.
6ba442dAdding tests from comment:24,25 of #22984.
183087aUpgrade PyNormaliz to 1.12
7f47ec9Adapted the polyhedron docstring
117e428Upgrade normaliz to 3.5.3
7057ef4Merge branch to get docstring adaptation
b6ae686Merge branch 'develop' of git://trac.sagemath.org/sage into t/25090/pynormaliz2
eaedcc2Update PyNormaliz to 1.14

comment:3 Changed 3 years ago by jipilab

  • Branch changed from u/mkoeppe/pynormaliz2 to u/jipilab/pynormaliz2
  • Commit changed from eaedcc2dfe80f9836f9980318d760d8e32c26e74 to 4dbdc7d768bb10de57972ae8fefaeefaee2f85e7

New commits:

4dbdc7dUpdated the Cone calls format

comment:4 Changed 3 years ago by mkoeppe

  • Branch changed from u/jipilab/pynormaliz2 to u/mkoeppe/pynormaliz2

comment:5 Changed 3 years ago by jipilab

  • Branch changed from u/mkoeppe/pynormaliz2 to public/pynormaliz2
  • Commit changed from 4dbdc7d768bb10de57972ae8fefaeefaee2f85e7 to fcd810188e1ad478d62dd50dfe15316c4aa573e8
  • Description modified (diff)

New commits:

1dcef4c_init_from_normaliz_data: New, use it in _init_from_*representation
fcd8101Updated pynormaliz to 1.15

comment:6 Changed 3 years ago by mkoeppe

  • Description modified (diff)

comment:7 Changed 3 years ago by git

  • Commit changed from fcd810188e1ad478d62dd50dfe15316c4aa573e8 to 19d853932f84bcf795ce15118147305ca5bef435

Branch pushed to git repo; I updated commit sha1. New commits:

19d8539Polyhedron_normaliz: In verbose mode, write out normaliz format files

comment:8 Changed 3 years ago by git

  • Commit changed from 19d853932f84bcf795ce15118147305ca5bef435 to 4cfcd14cb903546f65b9f17688661e90ba087b7a

Branch pushed to git repo; I updated commit sha1. New commits:

4cfcd14_normaliz_format: Fix last change

comment:9 Changed 3 years ago by git

  • Commit changed from 4cfcd14cb903546f65b9f17688661e90ba087b7a to da8ae7a9c50c598f41e7462591f046fc1ce676ee

Branch pushed to git repo; I updated commit sha1. New commits:

da8ae7aAdded data and cone methods to normaliz backend

comment:10 Changed 3 years ago by jipilab

  • Cc moritz vdelecroix added
  • Summary changed from Upgrade pynormaliz to 1.14 or higher (2.0?) to Upgrade pynormaliz to 1.15 or higher (2.0?)

comment:11 Changed 3 years ago by jipilab

After a discussion with gh-sebasguts: A new version of pynormaliz will be released in the upcoming days, including extended documentation and latest changes to pynormaliz.

In order not to mix things up too much with #25097 and #25091, it should be put as a priority in the reviewing queue...

comment:12 Changed 3 years ago by jipilab

  • Summary changed from Upgrade pynormaliz to 1.15 or higher (2.0?) to Upgrade Normaliz version to 3.5.4 and PyNormaliz to 1.16

The version numbers are now fixed.

comment:13 Changed 3 years ago by jipilab

  • Description modified (diff)

comment:14 Changed 3 years ago by jipilab

  • Branch changed from public/pynormaliz2 to public/pynormaliz1.16_normaliz3.5.4
  • Commit changed from da8ae7a9c50c598f41e7462591f046fc1ce676ee to 82d719093a99643ba102d285f705904066380f0b

I merged the changes done over the week with a fresh branch on top of sage8.2.rc2.

To be tested!


New commits:

aa0e2caMerge branch normaliz3.5.3 and pynormaliz1.12 into sage8.2.rc2
2bbd8a6Update normaliz and pynormaliz
82d7190Merged old changes with latest versions

comment:15 Changed 3 years ago by jipilab

Both compile without issues on debian-stretch.

comment:16 Changed 3 years ago by jipilab

  • Authors changed from Matthias Koeppe to Matthias Koeppe, Jean-Philippe Labbé

comment:17 Changed 3 years ago by jipilab

  • Description modified (diff)

comment:18 Changed 2 years ago by jipilab

  • Cc Winfried added

I am current in Osnabrück with Winfried, and perhaps now would be a good time to refresh this ticket, now that the version 1.12 and other update of Normaliz are already in the box...

There will be a new version of Normaliz released in the next few days, so I would wait until the upstream is updated and then change the ticket. I would do the same with pynormaliz and then go ahead to test it.

Further, with that release, it will make it easier to work with the algebraic polytopes ticket.

comment:19 Changed 2 years ago by jipilab

  • Cc mkoeppe added

comment:20 Changed 2 years ago by jipilab

  • Description modified (diff)
  • Summary changed from Upgrade Normaliz version to 3.5.4 and PyNormaliz to 1.16 to Upgrade Normaliz version to 3.6.1 and PyNormaliz to 1.17

comment:21 Changed 2 years ago by jipilab

  • Branch changed from public/pynormaliz1.16_normaliz3.5.4 to public/pynormaliz1.17_normaliz3.6.1
  • Commit changed from 82d719093a99643ba102d285f705904066380f0b to 476bbfa4763ad201ebbbce0bb81291ba2c7c6cf4

New commits:

5f0535cMerge branch update_normaliz to sage8.3.rc0
476bbfaUpdated normaliz and pynormaliz versions

comment:22 Changed 2 years ago by jipilab

  • Status changed from new to needs_review

I guess now this ticket needs proper review and testing.

It is a really good corner stone for the next steps in #25091 and #25097.

Please install on your platforms and check if it compiles...

There are a few new features along with the new versions.

comment:23 Changed 2 years ago by jipilab

  • Status changed from needs_review to needs_work
  • Work issues set to Segfault on empty polyhedron

I get a segmentation fault while testing 'backend_normaliz.py' while running

sage: p = Polyhedron(backend='normaliz')
sage: TestSuite(p).run(skip="_test_pickling")

on the empty polyhedron.

comment:24 Changed 2 years ago by jipilab

The traceback I get is pasted below. Something wrong in PyNormaliz? with "._test_nonzero_equal()" ?

sage: p = Polyhedron(backend='normaliz')
sage: TestSuite(p).run(skip="_test_pickling",verbose=True)
running ._test_category() . . . pass
running ._test_eq() . . . pass
running ._test_new() . . . pass
running ._test_nonzero_equal() . . .------------------------------------------------------------------------
/home/jplabbe/sage/local/lib/python2.7/site-packages/cysignals/signals.so(+0x6ad5)[0x7f4ba65eaad5]
/home/jplabbe/sage/local/lib/python2.7/site-packages/cysignals/signals.so(+0x6b7f)[0x7f4ba65eab7f]
/home/jplabbe/sage/local/lib/python2.7/site-packages/cysignals/signals.so(+0xaf84)[0x7f4ba65eef84]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x110c0)[0x7f4bafb040c0]
/home/jplabbe/sage/local/lib/libnormaliz.so.3(_ZN11libnormaliz6MatrixI10__gmp_exprIA1_12__mpz_structS3_EEC2Emm+0x9)[0x7f48e2c7ba29]
/home/jplabbe/sage/local/lib/libnormaliz.so.3(_ZN11libnormaliz4ConeI10__gmp_exprIA1_12__mpz_structS3_EE25prepare_input_constraintsERKSt3mapINS_4Type9InputTypeESt6vectorIS9_IS4_SaIS4_EESaISB_EESt4lessIS8_ESaISt4pairIKS8_SD_EEE+0x37)[0x7f48e2cd83e7]
/home/jplabbe/sage/local/lib/libnormaliz.so.3(_ZN11libnormaliz4ConeI10__gmp_exprIA1_12__mpz_structS3_EE25process_multi_input_innerERSt3mapINS_4Type9InputTypeESt6vectorIS9_IS4_SaIS4_EESaISB_EESt4lessIS8_ESaISt4pairIKS8_SD_EEE+0x8c5)[0x7f48e2d1ef75]
/home/jplabbe/sage/local/lib/libnormaliz.so.3(_ZN11libnormaliz4ConeI10__gmp_exprIA1_12__mpz_structS3_EE19process_multi_inputERKSt3mapINS_4Type9InputTypeESt6vectorIS9_IS4_SaIS4_EESaISB_EESt4lessIS8_ESaISt4pairIKS8_SD_EEE+0xae)[0x7f48e2d2151e]

comment:25 follow-up: Changed 2 years ago by gh-sebasguts

Interesting. I will have a look.

comment:26 Changed 2 years ago by Winfried

Please let me know if you think that the problem is in Normaliz and send me the input.

Last edited 2 years ago by Winfried (previous) (diff)

comment:27 in reply to: ↑ 25 Changed 2 years ago by jipilab

Replying to gh-sebasguts:

Interesting. I will have a look.

Any idea where the segfault appears?

comment:28 Changed 2 years ago by Winfried

It would be good to see the definition of the empty polytope. Then we can investigate the issue further.

comment:29 Changed 2 years ago by Winfried

The empty polyhedron runs into a Normaliz segmentation fault if the volume is computed. Will be taken care of.

comment:30 Changed 2 years ago by jipilab

I made a verbose=True in the TestSuite to see where it fails, and in the _test_nonzero_equal() it calls bool(self) and self.parent().zero() which both produce segfaults on their own:

sage: P_empty = Polyhedron()
sage: bool(P_empty)
True
sage: p = Polyhedron(vertices=[(1, 1)], rays=[(0, 1)],backend='normaliz',verbose=True)
# Calling PyNormaliz.NmzCone(**{'subspace': [], 'vertices': [[1, 1, 1]], 'cone': [[0, 1]]})
# ----8<---- Equivalent Normaliz input file ----8<----
amb_space 2
subspace 0
vertices 1
 1 1 1
cone 1
 0 1
# ----8<-------------------8<-------------------8<----
sage: bool(p)
True
sage: p_empty = Polyhedron(backend='normaliz',verbose=True)
sage: bool(p_empty)
------------------------------------------------------------------------
Unhandled SIGSEGV: A segmentation fault occurred.
This probably occurred because a *compiled* module has a bug
in it and is not properly wrapped with sig_on(), sig_off().
Python will now terminate.
------------------------------------------------------------------------
/usr/local/bin/sage: line 3:  5585 Segmentation fault      ~/sage/./sage $@


sage: p_empty = Polyhedron(backend='normaliz',verbose=True)
sage: p_empty.parent()
Polyhedra in ZZ^0
sage: p_empty.parent().zero()
------------------------------------------------------------------------
Unhandled SIGSEGV: A segmentation fault occurred.
This probably occurred because a *compiled* module has a bug
in it and is not properly wrapped with sig_on(), sig_off().
Python will now terminate.
------------------------------------------------------------------------
/usr/local/bin/sage: line 3:  6354 Segmentation fault      ~/sage/./sage $@

Note that to create an empty polyhedron with the backend normaliz, no call to normaliz is done. So I do not think that the problem is at this level, but perhaps when dealing with the parents, it tries to call normaliz with something empty and it does not work...

comment:31 Changed 2 years ago by jipilab

I could figure out where the segfault occurs and with which input:

# Calling PyNormaliz.NmzCone(**{'inhom_equations': [], 'inhom_inequalities': [[0]]})
# ----8<---- Equivalent Normaliz input file ----8<----
amb_space 0
inhom_equations 0
inhom_inequalities 1
 0
# ----8<-------------------8<-------------------8<----

The problem occurs in the _init_from_Hrepresentation, where we get the normaliz data: {'inhom_equations': [], 'inhom_inequalities': [[0]]}

Somehow normaliz/pynormaliz does not like that?

I believe that dealing with the empty polyhedron at the normaliz level might help here?

comment:32 Changed 2 years ago by Winfried

The segmentation fault with Volume is not the cause of this problem. It cannot be reproduced with Normaliz itself because amb_space 0 is not a legal value so that Normaliz terminates with an error message.

comment:33 follow-up: Changed 2 years ago by Winfried

amb_space 0
inhom_equations 0
inhom_inequalities 1
 0

does NOT define the empty polytope. The origin in the 0-dimensional space satisfies the inequality. If you replace the last0 by -1, you obtain the empty polytope.

comment:34 in reply to: ↑ 33 Changed 2 years ago by jipilab

Replying to Winfried:

amb_space 0
inhom_equations 0
inhom_inequalities 1
 0

does NOT define the empty polytope. The origin in the 0-dimensional space satisfies the inequality. If you replace the last0 by -1, you obtain the empty polytope.

Oh, interesting, so probably this would be a good way to initialize the empty polyhedron from the H-representation to pass it to normaliz.

I'll check if I can fix that.

comment:35 follow-up: Changed 2 years ago by mkoeppe

The current backend_normaliz handles the empty polyhedron specially (actually sage has one empty polyhedron for each ambient space dimension!) If this special casing could be removed completely with the current version of normaliz, that would be great!

comment:36 in reply to: ↑ 35 Changed 2 years ago by jipilab

Replying to mkoeppe:

The current backend_normaliz handles the empty polyhedron specially (actually sage has one empty polyhedron for each ambient space dimension!) If this special casing could be removed completely with the current version of normaliz, that would be great!

Agreed! I'll have a look if this would work with the new version.

comment:37 Changed 2 years ago by Winfried

The embedding dimension is an essential parameter in Normaliz. If any simplification is desired, it must be done on the Sage side.

Sebastian and I have tried to correct all problems related to empty polytopes and to embedding dimension 0. Please pull normaliz/master and test again.

comment:38 Changed 2 years ago by tscrim

  • Cc tscrim added

comment:39 Changed 2 years ago by mkoeppe

#25707 added a cocoalib package to sage. Should consider adding it as a dependency; but it's currently an experimental package

comment:40 Changed 2 years ago by jipilab

How to properly get the 0-dimensional polytope consisting of the origin only in the 0-dimensional ambient space using the V-representation input consisting of subspace, vertices and cone in normaliz?

# Calling PyNormaliz.NmzCone(**{'subspace': [], 'vertices': [[1]], 'cone': []})
# ----8<---- Equivalent Normaliz input file ----8<----
amb_space 0
subspace 0
vertices 1
 1
cone 0
# ----8<-------------------8<-------------------8<----

Somehow normaliz does not like the above, which is the format that sage currently gives to normaliz to create the .zero() element of the parent.

comment:41 Changed 2 years ago by Winfried

I have run Normaliz (present master branch on GitHub) on this input. No problem in the output:

1 lattice points in polytope (module generators)
0 Hilbert basis elements of recession monoid
1 vertices of polyhedron
0 extreme rays of recession cone
1 support hyperplanes of polyhedron (homogenized)

embedding dimension = 1
affine dimension of the polyhedron = 0 (maximal)
rank of recession monoid = 0 (polyhedron is polytope)
internal index = 1

dehomogenization:
1 


module rank = 1

***********************************************************************

1 lattice points in polytope (module generators):
 1

0 Hilbert basis elements of recession monoid:

1 vertices of polyhedron:
 1

0 extreme rays of recession cone:

1 support hyperplanes of polyhedron (homogenized):
 1

I think this is correct.The vector [1] is the origin in the 0-dim affine space after homogenization.

comment:42 Changed 2 years ago by jipilab

Ok, I do not have the latest "normaliz" on my computer...

I do not know exactly how to make sage use a different normaliz than the one installed _within_ sage when doing the usual sage -i normaliz.

Anyhow, if it is possible to get the empty polyhedron and the 0-dim polytope in the latest version of normaliz. Then these problems should be fixed. Would it be reasonable to have a tiny release of normaliz soon and we could update this branch?

comment:43 follow-up: Changed 2 years ago by Winfried

I think the treatment of degenerate situations is o.k. now in normaliz. These minutes I am testing them on Qnormaliz. Once it is o.k., I will malke release 3.6.2.

comment:44 in reply to: ↑ 43 Changed 2 years ago by jipilab

Replying to Winfried:

I think the treatment of degenerate situations is o.k. now in normaliz. These minutes I am testing them on Qnormaliz. Once it is o.k., I will malke release 3.6.2.

Great! Thanks a lot!

comment:45 Changed 2 years ago by Winfried

Normaliz 3.6.2 released

comment:46 Changed 2 years ago by jipilab

  • Milestone changed from sage-8.2 to sage-8.4

comment:47 Changed 2 years ago by mkoeppe

  • Description modified (diff)
  • Summary changed from Upgrade Normaliz version to 3.6.1 and PyNormaliz to 1.17 to Upgrade Normaliz version to 3.6.3 and PyNormaliz to 1.19

comment:48 Changed 2 years ago by git

  • Commit changed from 476bbfa4763ad201ebbbce0bb81291ba2c7c6cf4 to 976b93f15caf4b55317dea5e3adeffbf64305a1c

Branch pushed to git repo; I updated commit sha1. New commits:

eeab39fMerge tag '8.4.beta2' into t/25090/public/pynormaliz1.17_normaliz3.6.1
976b93fUpdate normaliz to 3.6.3, pynormaliz to 1.19

comment:49 Changed 2 years ago by git

  • Commit changed from 976b93f15caf4b55317dea5e3adeffbf64305a1c to e36973a41e8558ec1c98a26e0708b3577061192f

Branch pushed to git repo; I updated commit sha1. New commits:

e36973abuild/pkgs/normaliz/spkg-install: Update comment

comment:50 Changed 2 years ago by git

  • Commit changed from e36973a41e8558ec1c98a26e0708b3577061192f to 98d5bd3e945fd171a1d6bd2a0a679c6633826eaa

Branch pushed to git repo; I updated commit sha1. New commits:

98d5bd3Merge remote-tracking branch 'trac/develop' into t/25090/public/pynormaliz1.17_normaliz3.6.1

comment:51 Changed 2 years ago by git

  • Commit changed from 98d5bd3e945fd171a1d6bd2a0a679c6633826eaa to aa71e2546fa51d89d14a3dc8a7c99236dd258d42

Branch pushed to git repo; I updated commit sha1. New commits:

aa71e25Merge remote-tracking branch 'trac/develop' into t/25090/public/pynormaliz1.17_normaliz3.6.1

comment:52 Changed 2 years ago by tscrim

What is the status of this? Is it suppose to be in needs review? Is the empty polyhedron handled correctly now?

comment:53 Changed 2 years ago by mkoeppe

  • Status changed from needs_work to needs_review

Empty polyhedron is fixed. Needs review.

comment:54 Changed 2 years ago by tscrim

  • Description modified (diff)

LGTM overall, but a few methods are missing doctests:

  • _init_from_normaliz_data
  • _make_normaliz_cone

Also, INPUT: items generally do not end with a period.

comment:55 Changed 2 years ago by git

  • Commit changed from aa71e2546fa51d89d14a3dc8a7c99236dd258d42 to 7907f7ade1f30c6cce5a23dc0786ca434269ef24

Branch pushed to git repo; I updated commit sha1. New commits:

7907f7aPolyhedron_normaliz: Fix: INPUT: items generally do not end with a period

comment:56 Changed 2 years ago by git

  • Commit changed from 7907f7ade1f30c6cce5a23dc0786ca434269ef24 to 1e20ef2bfa34b6bd883ceff67cc46480c3ac8df7

Branch pushed to git repo; I updated commit sha1. New commits:

1e20ef2Polyhedron_normaliz._make_normaliz_cone: Add doctest

comment:57 Changed 2 years ago by git

  • Commit changed from 1e20ef2bfa34b6bd883ceff67cc46480c3ac8df7 to f3d11a3b03bc410a4a59ed5f877e1b0454fdc12c

Branch pushed to git repo; I updated commit sha1. New commits:

f3d11a3Polyhedron_normaliz._init_from_normaliz_data: Add doctest

comment:58 Changed 2 years ago by mkoeppe

Ready for review

comment:59 Changed 2 years ago by tscrim

  • Reviewers set to Travis Scrimshaw
  • Status changed from needs_review to positive_review
  • Work issues Segfault on empty polyhedron deleted

Thank you. LGTM.

comment:60 Changed 2 years ago by mkoeppe

Thanks for reviewing!

comment:61 Changed 2 years ago by vbraun

  • Status changed from positive_review to needs_work
sage -t --long src/sage/geometry/polyhedron/backend_normaliz.py
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 451, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data
Failed example:
    P._get_nmzcone_data()
Exception raised:
    Traceback (most recent call last):
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 659, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 1070, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data[1]>", line 1, in <module>
        P._get_nmzcone_data()
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 464, in _get_nmzcone_data
        import PyNormaliz
    ImportError: No module named PyNormaliz
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 456, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data
Failed example:
    C = Polyhedron(backend='normaliz',rays=[[1,2],[2,1]])
Exception raised:
    Traceback (most recent call last):
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 659, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 1070, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data[2]>", line 1, in <module>
        C = Polyhedron(backend='normaliz',rays=[[Integer(1),Integer(2)],[Integer(2),Integer(1)]])
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/constructor.py", line 600, in Polyhedron
        return parent(Vrep, Hrep, convert=convert, verbose=verbose)
      File "sage/structure/parent.pyx", line 923, in sage.structure.parent.Parent.__call__ (build/cythonized/sage/structure/parent.c:9706)
        return mor._call_with_args(x, args, kwds)
      File "sage/structure/coerce_maps.pyx", line 164, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args (build/cythonized/sage/structure/coerce_maps.c:5112)
        raise
      File "sage/structure/coerce_maps.pyx", line 159, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args (build/cythonized/sage/structure/coerce_maps.c:5000)
        return C._element_constructor(x, *args, **kwds)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/parent.py", line 517, in _element_constructor_
        return self.element_class(self, Vrep, Hrep, **kwds)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 156, in __init__
        Polyhedron_base.__init__(self, parent, Vrep, Hrep, **kwds)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/base.py", line 124, in __init__
        self._init_from_Vrepresentation(vertices, rays, lines, **kwds)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 263, in _init_from_Vrepresentation
        self._init_from_normaliz_data(data, verbose=verbose)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 192, in _init_from_normaliz_data
        import PyNormaliz
    ImportError: No module named PyNormaliz
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 457, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data
Failed example:
    C._get_nmzcone_data()
Exception raised:
    Traceback (most recent call last):
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 659, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 1070, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data[3]>", line 1, in <module>
        C._get_nmzcone_data()
    NameError: name 'C' is not defined
**********************************************************************
1 item had failures:
   3 of   5 in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._get_nmzcone_data
    [12 tests, 3 failures, 0.14 s]
----------------------------------------------------------------------
sage -t --long src/sage/geometry/polyhedron/backend_normaliz.py  # 3 doctests failed
----------------------------------------------------------------------

comment:62 Changed 2 years ago by git

  • Commit changed from f3d11a3b03bc410a4a59ed5f877e1b0454fdc12c to 36d5473d008d2d39a3740ed77783298ee5564e61

Branch pushed to git repo; I updated commit sha1. New commits:

36d5473src/sage/geometry/polyhedron/backend_normaliz.py: Add # optional - pynormaliz

comment:63 Changed 2 years ago by mkoeppe

  • Status changed from needs_work to needs_review

comment:64 Changed 2 years ago by tscrim

  • Status changed from needs_review to positive_review

Whoops, forgot to test on a machine that did not have (py)normaliz installed. Sorry Volker.

comment:65 Changed 2 years ago by vbraun

  • Branch changed from public/pynormaliz1.17_normaliz3.6.1 to 36d5473d008d2d39a3740ed77783298ee5564e61
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.