[linbox] Enable FPLLL support. Adjust BRs for texlive 2012.

Jerry James jjames at fedoraproject.org
Mon Dec 10 23:48:14 UTC 2012


commit 2440af5ee95c434fcdfa73ee9c15a5a20a77c62d
Author: Jerry James <jamesjer at betterlinux.com>
Date:   Mon Dec 10 16:47:53 2012 -0700

    Enable FPLLL support.
    Adjust BRs for texlive 2012.

 linbox-fplll.patch |   87 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 linbox.spec        |   13 ++++++-
 2 files changed, 98 insertions(+), 2 deletions(-)
---
diff --git a/linbox-fplll.patch b/linbox-fplll.patch
new file mode 100644
index 0000000..dc0ce66
--- /dev/null
+++ b/linbox-fplll.patch
@@ -0,0 +1,87 @@
+--- ./linbox/algorithms/lattice.h.orig	2012-06-07 02:30:32.000000000 -0600
++++ ./linbox/algorithms/lattice.h	2012-12-10 16:03:03.114827079 -0700
+@@ -48,18 +48,7 @@
+ 
+ 
+ #ifdef __LINBOX_HAVE_FPLLL
+-// this is a damn FPLLL bug !!!
+-namespace FPLLL {
+-#define round
+-#define trunc
+ #include <fplll/fplll.h>
+-#include <fplll/heuristic.h>
+-#include <fplll/proved.h>
+-#include <fplll/wrapper.h>
+-#undef round
+-#undef trunc
+-}
+-
+ #endif
+ 
+ 
+--- ./linbox/algorithms/lattice.inl.orig	2012-06-07 02:30:32.000000000 -0600
++++ ./linbox/algorithms/lattice.inl	2012-12-10 16:05:04.846262737 -0700
+@@ -335,31 +335,31 @@ namespace LinBox
+ 		if (withU)
+ 			throw NotImplementedYet("not U");
+ 		// Convert H
+-		FPLLL::ZZ_mat<ZT> B(H.rowdim(),H.coldim()) ;
++		fplll::ZZ_mat<ZT> B(H.rowdim(),H.coldim()) ;
+ 		for (size_t i = 0 ; i < H.rowdim() ; ++i) {
+ 			for (size_t j = 0 ; j < H.coldim() ; ++j) {
+-				B.Set(i,j,FPLLL::Z_NR<ZT>(H.getEntry(i,j)) );
++				B.Set(i,j,fplll::Z_NR<ZT>(H.getEntry(i,j)) );
+ 			}
+ 		}
+ 		// LLL()
+ 		switch (meth.getMeth()) {
+ 		case (latticeMethod::latticeFPLLL::P) :
+ 			{
+-				FPLLL::proved<ZT,double> lllMethod(&B,meth.getPrecision(),
++				fplll::proved<ZT,double> lllMethod(&B,meth.getPrecision(),
+ 							      meth.getEta(),meth.getDelta());
+ 				lllMethod.LLL();
+ 			}
+ 			break;
+ 		case (latticeMethod::latticeFPLLL::W) :
+ 			{
+-				FPLLL::wrapper lllMethod(&B,meth.getPrecision(),
++				fplll::wrapper lllMethod(&B,meth.getPrecision(),
+ 						    meth.getEta(),meth.getDelta());
+ 				lllMethod.LLL();
+ 			}
+ 			break;
+ 		case (latticeMethod::latticeFPLLL::H) :
+ 			{
+-				FPLLL::heuristic<ZT,double> lllMethod(&B,meth.getPrecision(),
++				fplll::heuristic<ZT,double> lllMethod(&B,meth.getPrecision(),
+ 								 meth.getEta(),meth.getDelta(),
+ 								 meth.getSiegel());
+ 				lllMethod.LLL();
+--- ./linbox/algorithms/rational-reconstruction.h.orig	2012-06-07 02:30:32.000000000 -0600
++++ ./linbox/algorithms/rational-reconstruction.h	2012-12-10 16:05:42.491217743 -0700
+@@ -1734,7 +1734,7 @@ namespace LinBox
+ 				for (size_t i=1;i< k+1;++i){
+ 					Lattice.setEntry(i,i, mod );
+ 					_r.convert(tmp, real_approximation[bad_num_index+i-1]);
+-					Lattice.setEntry(0,i,FPLLL::Z_NR<mpz_t>(tmp.get_mpz()));
++					Lattice.setEntry(0,i,fplll::Z_NR<mpz_t>(tmp.get_mpz()));
+ 				}
+ 
+ 
+--- ./configure.orig	2012-12-10 16:02:55.325073492 -0700
++++ ./configure	2012-12-10 16:03:03.118827059 -0700
+@@ -17018,12 +17018,11 @@ fi
+ /* end confdefs.h.  */
+ 
+ 	   #include <fplll/fplll.h>
+-	   #include <fplll/solver.h>
+ 
+ int
+ main ()
+ {
+-enum EvaluatorType a ;
++enum fplll::MatPrintMode a ;
+   ;
+   return 0;
+ }
diff --git a/linbox.spec b/linbox.spec
index 8f949ec..b9ccc4a 100644
--- a/linbox.spec
+++ b/linbox.spec
@@ -1,6 +1,6 @@
 Name:           linbox
 Version:        1.3.2
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        C++ Library for High-Performance Exact Linear Algebra
 Group:          Development/Libraries
 License:        LGPLv2+
@@ -18,11 +18,14 @@ Patch3:         %{name}-underlink.patch
 Patch4:         %{name}-driver.patch
 # Fix detection of LAPACK support in FFLAS-FFPACK
 Patch5:         %{name}-lapack.patch
+# Adapt to FPLLL 4.x
+Patch6:         %{name}-fplll.patch
 
 BuildRequires:  atlas-devel
 BuildRequires:  fflas-ffpack-devel
 BuildRequires:  givaro-devel
 BuildRequires:  iml-devel
+BuildRequires:  libfplll-devel
 BuildRequires:  m4ri-devel
 BuildRequires:  m4rie-devel
 BuildRequires:  mpfr-devel
@@ -32,6 +35,7 @@ BuildRequires:  doxygen
 BuildRequires:  ghostscript
 BuildRequires:  gnuplot
 BuildRequires:  tex(latex)
+BuildRequires:  tex(stmaryrd.sty)
 
 %description
 LinBox is a C++ template library for exact, high-performance linear
@@ -69,6 +73,7 @@ Documentation for %{name}.
 %patch3
 %patch4
 %patch5
+%patch6
 
 %build
 CFLAGS="%{optflags}"
@@ -133,6 +138,10 @@ LD_LIBRARY_PATH=`pwd`/linbox/.libs make %{?_smp_mflags} check
 
 
 %changelog
+* Mon Dec 10 2012 Jerry James <loganjerry at gmail.com> - 1.3.2-5
+- Enable FPLLL support
+- Adjust BRs for texlive 2012
+
 * Tue Oct  2 2012 Jerry James <loganjerry at gmail.com> - 1.3.2-4
 - Rebuild for givaro 3.7.1
 - Fix all linkage problems in the same patch
@@ -174,7 +183,7 @@ LD_LIBRARY_PATH=`pwd`/linbox/.libs make %{?_smp_mflags} check
 * Mon Aug 29 2011 Jerry James <loganjerry at gmail.com> - 1.2.1-1
 - Final 1.2.1 release
 
-* Tue Jul  4 2011 Jerry James <loganjerry at gmail.com> - 1.2.1-0.1.svn3901
+* Tue Jul  5 2011 Jerry James <loganjerry at gmail.com> - 1.2.1-0.1.svn3901
 - Update to snapshot with fixes for Fedora
 - Drop all patches, now upstream
 - Remove unnecessary spec file elements (%%defattr, etc.)


More information about the scm-commits mailing list