SHA256
1
0
forked from pool/normaliz

Accepting request 726122 from science

- Add headerfile.patch to provide normaliz/output.h.
- Update to new upstream release 3.7.4

OBS-URL: https://build.opensuse.org/request/show/726122
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/normaliz?expand=0&rev=8
This commit is contained in:
Dominique Leuenberger 2019-08-27 08:25:20 +00:00 committed by Git OBS Bridge
commit 0343f0d206
6 changed files with 191 additions and 27 deletions

View File

@ -0,0 +1,126 @@
From dc50d2e97e108011231fe82d5939d19b79408911 Mon Sep 17 00:00:00 2001
From: Max Horn <max@quendi.de>
Date: Sun, 11 Aug 2019 21:38:40 +0200
Subject: [PATCH] Fix a bunch of compiler warnings, and two actual bugs
Bugs:
- Matrix<mpq_class>::VxM was not returning anything
- handling of automorphisms had a misplaces parenthesis
---
source/libnormaliz/cone.cpp | 6 ++++--
source/libnormaliz/input_type.cpp | 1 +
source/libnormaliz/integer.cpp | 7 +++----
source/libnormaliz/matrix.cpp | 1 +
source/libnormaliz/output.cpp | 6 +++---
source/libnormaliz/vector_operations.cpp | 3 ---
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/source/libnormaliz/cone.cpp b/source/libnormaliz/cone.cpp
index 0287223e..ada7cd1a 100644
--- a/source/libnormaliz/cone.cpp
+++ b/source/libnormaliz/cone.cpp
@@ -6970,8 +6970,10 @@ void Cone<Integer>::make_face_lattice(const ConeProperties& ToCompute){
if(skip_remaining)
continue;
- for(; kkk > Fpos; ++Fpos, ++F);
- for(; kkk < Fpos; --Fpos, --F) ;
+ for(; kkk > Fpos; ++Fpos, ++F)
+ ;
+ for(; kkk < Fpos; --Fpos, --F)
+ ;
if(verbose && nr_faces>=RepBound){
#pragma omp critical(VERBOSE)
diff --git a/source/libnormaliz/input_type.cpp b/source/libnormaliz/input_type.cpp
index 58e8ae73..816311a3 100644
--- a/source/libnormaliz/input_type.cpp
+++ b/source/libnormaliz/input_type.cpp
@@ -210,6 +210,7 @@ std::string numpar_to_string(const NumParam::Param& numpar){
return "autom_codim_bound_vectors";
if(numpar==NumParam::not_a_num_param)
return "not_a_num_param";
+ assert(false);
}
bool isNumParam(NumParam::Param& numpar, const std::string& type_string){
diff --git a/source/libnormaliz/integer.cpp b/source/libnormaliz/integer.cpp
index 1f3a2f9f..886de3b0 100644
--- a/source/libnormaliz/integer.cpp
+++ b/source/libnormaliz/integer.cpp
@@ -211,8 +211,8 @@ nmz_float gcd(const nmz_float& a, const nmz_float& b){
return 1.0;
}
-template<>
-mpz_class gcd<mpz_class>(const mpz_class& a, const mpz_class& b) {
+template <>
+mpz_class gcd(const mpz_class& a, const mpz_class& b) {
mpz_class g;
mpz_gcd (g.get_mpz_t(), a.get_mpz_t(), b.get_mpz_t());
return g;
@@ -229,8 +229,7 @@ renf_elem_class gcd(const renf_elem_class& a, const renf_elem_class& b){
template long gcd<long>(const long& a, const long& b);
-template nmz_float gcd<nmz_float>(const nmz_float& a, const nmz_float& b);
-template long long gcd<long long>(const long long& a, const long long& b);
+template long long gcd(const long long& a, const long long& b);
//---------------------------------------------------------------------------
diff --git a/source/libnormaliz/matrix.cpp b/source/libnormaliz/matrix.cpp
index b0a57556..fa6d023b 100644
--- a/source/libnormaliz/matrix.cpp
+++ b/source/libnormaliz/matrix.cpp
@@ -1307,6 +1307,7 @@ vector<mpq_class> Matrix<mpq_class>::VxM(const vector<mpq_class>& v) const{
w[i] += v[j]*elem[j][i];
}
}
+ return w;
}
//---------------------------------------------------------------------------
diff --git a/source/libnormaliz/output.cpp b/source/libnormaliz/output.cpp
index 4bf767d3..4eee5591 100644
--- a/source/libnormaliz/output.cpp
+++ b/source/libnormaliz/output.cpp
@@ -1262,11 +1262,11 @@ void Output<Integer>::write_files() const {
out << endl;
}
- if (aut && (Result->isComputed(ConeProperty::Automorphisms)
- || Result->isComputed(ConeProperty::AmbientAutomorphisms))
+ if (aut && (Result->isComputed(ConeProperty::Automorphisms)
+ || Result->isComputed(ConeProperty::AmbientAutomorphisms)
|| Result->isComputed(ConeProperty::CombinatorialAutomorphisms)
|| Result->isComputed(ConeProperty::RationalAutomorphisms)
- || Result->isComputed(ConeProperty::EuclideanAutomorphisms)
+ || Result->isComputed(ConeProperty::EuclideanAutomorphisms))
) {
write_aut();
out << Result->getAutomorphismGroup().getQualitiesString() << "automorphism group has order " << Result->getAutomorphismGroup().getOrder()
diff --git a/source/libnormaliz/vector_operations.cpp b/source/libnormaliz/vector_operations.cpp
index 4f13963f..fa8e1002 100644
--- a/source/libnormaliz/vector_operations.cpp
+++ b/source/libnormaliz/vector_operations.cpp
@@ -671,7 +671,6 @@ mpq_class v_standardize(vector<mpq_class>& v, const vector<mpq_class>& LF){
template void v_scalar_division(vector<long>& v, const long scalar);
template void v_scalar_division(vector<long long>& v, const long long scalar);
template void v_scalar_division(vector<mpz_class>& v, const mpz_class scalar);
-template void v_scalar_division(vector<nmz_float>& v, const nmz_float scalar);
template long v_make_prime(vector<long >&);
template long long v_make_prime(vector<long long>&);
@@ -680,8 +679,6 @@ template mpz_class v_make_prime(vector<mpz_class>&);
template long v_scalar_product(const vector<long>& a,const vector<long>& b);
template long long v_scalar_product(const vector<long long>& a,const vector<long long>& b);
template mpz_class v_scalar_product(const vector<mpz_class>& a,const vector<mpz_class>& b);
-template mpq_class v_scalar_product(const vector<mpq_class>& a,const vector<mpq_class>& b);
-template nmz_float v_scalar_product(const vector<nmz_float>& a,const vector<nmz_float>& b);
vector<bool> bitset_to_bool(const boost::dynamic_bitset<>& val){
vector<bool> ret(val.size());
--
2.22.1

22
headerfile.patch Normal file
View File

@ -0,0 +1,22 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2019-08-26 07:07:20.601082790 +0200
Related upstream commit: 0b5df92a7b660d3712dfc73ae083e5b7d9831e9f
Fix poor installation testing.
---
source/Makefile.am | 1 +
1 file changed, 1 insertion(+)
Index: normaliz-3.7.4/source/Makefile.am
===================================================================
--- normaliz-3.7.4.orig/source/Makefile.am
+++ normaliz-3.7.4/source/Makefile.am
@@ -34,6 +34,7 @@ lib_LTLIBRARIES = libnormaliz.la
# Installed headers
nobase_include_HEADERS = libnormaliz/cone.h libnormaliz/cone_property.h libnormaliz/convert.h libnormaliz/general.h libnormaliz/HilbertSeries.h libnormaliz/integer.h libnormaliz/input_type.h libnormaliz/matrix.h libnormaliz/my_omp.h libnormaliz/normaliz_exception.h libnormaliz/sublattice_representation.h libnormaliz/vector_operations.h libnormaliz/version.h libnormaliz/nmz_integrate.h libnormaliz/automorph.h libnormaliz/libnormaliz.h libnormaliz/map_operations.h libnormaliz/nmz_config.h
+nobase_include_HEADERS += libnormaliz/output.h
# Sources
libnormaliz_la_SOURCES = libnormaliz/enumeration.cpp libnormaliz/other_algorithms.cpp libnormaliz/linear_algebra.cpp libnormaliz/offload_handler.cpp libnormaliz/cone_and_control.cpp libnormaliz/primal.cpp libnormaliz/nmz_nauty.cpp libnormaliz/output.cpp
# Other headers (not installed)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:701b39189758eb9a13e189ea1a43218e1c001f19c228e761a80949d610fe3900
size 4328352

3
normaliz-3.7.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b94ff9baa0ebbc682229e8cfad086245d67754958ae3ddb1cc0a563a16ceb89
size 4232335

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Mon Aug 26 05:13:03 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Add headerfile.patch to provide normaliz/output.h.
-------------------------------------------------------------------
Sat Aug 24 18:18:50 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 3.7.4
* Algebraic polyhedra: these can now be computed directly in
Normaliz so that QNormaliz has become obsolete.
* Face lattice and f-vector can now be computed by Normaliz.
* NumberLatticePoints is a new computation goal that lets
Normaliz count lattice points in polytopes without storing
them.
* Added the computation goals Dynamic and Static and the
libnormaliz function modifyCone.
- Add 0001-Fix-a-bunch-of-compiler-warnings-and-two-actual-bugs.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Oct 22 13:56:08 UTC 2018 - badshah400@gmail.com Mon Oct 22 13:56:08 UTC 2018 - badshah400@gmail.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package normaliz # spec file for package normaliz
# #
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -12,26 +12,28 @@
# license that conforms to the Open Source Definition (Version 1.9) # license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative. # published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/ # Please submit bugfixes or comments via https://bugs.opensuse.org/
# #
Name: normaliz Name: normaliz
Version: 3.6.3 %define lname libnormaliz3
Version: 3.7.4
Release: 0 Release: 0
Summary: Tools for computations in affine monoids and rational cones Summary: Tools for computations in affine monoids and rational cones
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Productivity/Scientific/Math Group: Productivity/Scientific/Math
Url: https://www.normaliz.uni-osnabrueck.de/ URL: https://www.normaliz.uni-osnabrueck.de/
Source: https://github.com/Normaliz/Normaliz/releases/download/v%version/%name-%version.tar.gz Source: https://github.com/Normaliz/Normaliz/releases/download/v%version/%name-%version.tar.gz
BuildRequires: boost-devel Patch1: 0001-Fix-a-bunch-of-compiler-warnings-and-two-actual-bugs.patch
BuildRequires: cmake >= 2.6 Patch2: headerfile.patch
#maybe with flint-devel later on #maybe with flint-devel later on
BuildRequires: boost-devel
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: gmp-devel BuildRequires: gmp-devel
BuildRequires: libtool
BuildRequires: mpfr-devel BuildRequires: mpfr-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description %description
Normaliz is an open source tool for computations in affine monoids, Normaliz is an open source tool for computations in affine monoids,
@ -50,11 +52,11 @@ Computation goals
* generalized (or weighted) Ehrhart series and Lebesgue integrals of * generalized (or weighted) Ehrhart series and Lebesgue integrals of
polynomials over rational polytopes via NmzIntegrate polynomials over rational polytopes via NmzIntegrate
%package -n libnormaliz0 %package -n %lname
Summary: C++ API for Normaliz, a tool for computation of rotational cones Summary: C++ API for Normaliz, a tool for computation of rotational cones
Group: System/Libraries Group: System/Libraries
%description -n libnormaliz0 %description -n %lname
Normaliz is an open source tool for computations in affine monoids, Normaliz is an open source tool for computations in affine monoids,
vector configurations, lattice polytopes, and rational cones. vector configurations, lattice polytopes, and rational cones.
@ -64,9 +66,9 @@ the Normaliz computations from any C++ program.
%package devel %package devel
Summary: Development files for Normaliz, a tool for computation of rotational cones Summary: Development files for Normaliz, a tool for computation of rotational cones
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %lname = %version
Requires: boost-devel Requires: boost-devel
Requires: gmp-devel Requires: gmp-devel
Requires: libnormaliz0 = %version
%description devel %description devel
Normaliz is an open source tool for computations in affine monoids, Normaliz is an open source tool for computations in affine monoids,
@ -76,33 +78,28 @@ Normaliz offers an API - libnormaliz - that allows the user to access
the Normaliz computations from any C++ program. the Normaliz computations from any C++ program.
%prep %prep
%setup -q %autosetup -p1
%build %build
pushd source/ autoreconf -fi
%cmake %configure --disable-static
make %{?_smp_mflags} make %{?_smp_mflags}
popd
%install %install
pushd source/ %make_install
%cmake_install rm -f "%buildroot/%_libdir"/*.la
popd
%post -n libnormaliz0 -p /sbin/ldconfig %post -n %lname -p /sbin/ldconfig
%postun -n libnormaliz0 -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig
%files %files
%defattr(-,root,root)
%_bindir/normaliz %_bindir/normaliz
%license COPYING %license COPYING
%files -n libnormaliz0 %files -n %lname
%defattr(-,root,root) %_libdir/libnormaliz.so.3*
%_libdir/libnormaliz.so.*
%files devel %files devel
%defattr(-,root,root)
%_includedir/libnormaliz/ %_includedir/libnormaliz/
%_libdir/libnormaliz.so %_libdir/libnormaliz.so