summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD13
-rw-r--r--sagemath-ipython-prompt.patch13
-rw-r--r--sagemath-linbox-1.5.patch272
4 files changed, 4 insertions, 300 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a7b7ada6e923..a6ae40f1e0f8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = sagemath-git
pkgdesc = Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab
- pkgver = 8.2.beta1.r0.gd3b9b396c1
+ pkgver = 8.2.beta2.r0.ga1782046e2
pkgrel = 1
url = http://www.sagemath.org
arch = x86_64
@@ -103,11 +103,9 @@ pkgbase = sagemath-git
source = pari-stackwarn.patch
source = sagemath-detect-igraph.patch
source = sagemath-networkx2.patch
- source = sagemath-linbox-1.5.patch
source = sagemath-matplotlib2.patch
source = sagemath-scipy-1.0.patch
source = sagemath-lrs.patch
- source = sagemath-ipython-prompt.patch
sha256sums = SKIP
sha256sums = 39b76a189365464998cab9355d177581bc2b15dff10858f316faa85f2efa0426
sha256sums = c41ae665499c6cd775d40bbe178f8786830b0931ee26bf11ee02f7d83bcc8107
@@ -121,11 +119,9 @@ pkgbase = sagemath-git
sha256sums = bfd2a20a33ab19a8a8b216a77d07f62e809fe1e1879c4f171ce5dca62fd482e9
sha256sums = 28d7789b8d777922ab8871ca43b6afab751428cae875c0343d3962e6a2030b88
sha256sums = 1024f3a6a9a1a6ae96d9962bb7d1f5842f4a4a5ff5098afad81a60188b7d5160
- sha256sums = a52d03e04c9d64bb957a1f8dcdae3280ebb9450a7fd76aaf5ae5de5c6f74774f
sha256sums = b9ab2bb5f381ea425e8763b81b8b3a108a3951c594fb1f37f7df921e7c77e26d
sha256sums = 17397b8e1843b013ef5d2e083369109f0719651edd8ef0c8493cb49e2bc4324a
sha256sums = c0f65534a845ba802de6196229159fe67fcc3f72f0cb1ce57d4ae5c9fe10282c
- sha256sums = 937a0081e7aea56bda645ef5f0d34b8e356acd62a7dd128a35163f46e7836131
pkgname = sagemath-git
optdepends = cython2: to compile cython code
diff --git a/PKGBUILD b/PKGBUILD
index fb1af373fbfc..6f425768c8f2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@
pkgbase=sagemath-git
pkgname=(sagemath-git sagemath-jupyter-git)
-pkgver=8.2.beta1.r0.gd3b9b396c1
+pkgver=8.2.beta2.r0.ga1782046e2
pkgrel=1
pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab"
arch=(x86_64)
@@ -37,8 +37,7 @@ makedepends=(cython2 boost ratpoints symmetrica python2-jinja coin-or-cbc libhom
source=(git://git.sagemath.org/sage.git#branch=develop
sagemath-env.patch package.patch latte-count.patch jupyter-path.patch sagemath-python3-notebook.patch test-optional.patch
r-no-readline.patch fes02.patch sagemath-threejs.patch pari-stackwarn.patch
- sagemath-detect-igraph.patch sagemath-networkx2.patch sagemath-linbox-1.5.patch
- sagemath-matplotlib2.patch sagemath-scipy-1.0.patch sagemath-lrs.patch sagemath-ipython-prompt.patch)
+ sagemath-detect-igraph.patch sagemath-networkx2.patch sagemath-matplotlib2.patch sagemath-scipy-1.0.patch sagemath-lrs.patch)
sha256sums=('SKIP'
'39b76a189365464998cab9355d177581bc2b15dff10858f316faa85f2efa0426'
'c41ae665499c6cd775d40bbe178f8786830b0931ee26bf11ee02f7d83bcc8107'
@@ -52,11 +51,9 @@ sha256sums=('SKIP'
'bfd2a20a33ab19a8a8b216a77d07f62e809fe1e1879c4f171ce5dca62fd482e9'
'28d7789b8d777922ab8871ca43b6afab751428cae875c0343d3962e6a2030b88'
'1024f3a6a9a1a6ae96d9962bb7d1f5842f4a4a5ff5098afad81a60188b7d5160'
- 'a52d03e04c9d64bb957a1f8dcdae3280ebb9450a7fd76aaf5ae5de5c6f74774f'
'b9ab2bb5f381ea425e8763b81b8b3a108a3951c594fb1f37f7df921e7c77e26d'
'17397b8e1843b013ef5d2e083369109f0719651edd8ef0c8493cb49e2bc4324a'
- 'c0f65534a845ba802de6196229159fe67fcc3f72f0cb1ce57d4ae5c9fe10282c'
- '937a0081e7aea56bda645ef5f0d34b8e356acd62a7dd128a35163f46e7836131')
+ 'c0f65534a845ba802de6196229159fe67fcc3f72f0cb1ce57d4ae5c9fe10282c')
pkgver() {
cd sage
@@ -96,14 +93,10 @@ prepare(){
patch -p1 -i ../pari-stackwarn.patch
# remove deprecated scipy parameters
patch -p1 -i ../sagemath-scipy-1.0.patch
-# fix ipython prompt in pexpect interface
- patch -p1 -i ../sagemath-ipython-prompt.patch
# Upstream patches
# fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209
patch -p1 -i ../fes02.patch
-# fix build with linbox 1.5 https://trac.sagemath.org/ticket/24214
- patch -p1 -i ../sagemath-linbox-1.5.patch
# port away from deprecated and removed functions in matplotlib 2 https://trac.sagemath.org/ticket/23696
patch -p1 -i ../sagemath-matplotlib2.patch
diff --git a/sagemath-ipython-prompt.patch b/sagemath-ipython-prompt.patch
deleted file mode 100644
index ad992ff0c3a4..000000000000
--- a/sagemath-ipython-prompt.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/sage/interfaces/sage0.py b/src/sage/interfaces/sage0.py
-index 4ba76ab0b8..e7740177f4 100644
---- a/src/sage/interfaces/sage0.py
-+++ b/src/sage/interfaces/sage0.py
-@@ -161,7 +161,7 @@ class Sage(ExtraTabCompletion, Expect):
- '--no-term-title',
- '--simple-prompt',
- ])
-- prompt = re.compile('In \[\d+\]: ')
-+ prompt = re.compile('sage: ')
- if init_code is None:
- init_code = ['from six.moves import cPickle']
-
diff --git a/sagemath-linbox-1.5.patch b/sagemath-linbox-1.5.patch
deleted file mode 100644
index 532a83469599..000000000000
--- a/sagemath-linbox-1.5.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-diff --git a/src/sage/libs/linbox/fflas.pxd b/src/sage/libs/linbox/fflas.pxd
-index ca23d71..03bbee9 100644
---- a/src/sage/libs/linbox/fflas.pxd
-+++ b/src/sage/libs/linbox/fflas.pxd
-@@ -20,19 +20,29 @@ cdef extern from "fflas-ffpack/fflas-ffpack.h" namespace "std":
- iterator end()
- size_t size()
-
-- cdef cppclass list[T]:
-- cppclass iterator:
-- T operator*()
-- iterator operator++()
-- bint operator==(iterator)
-- bint operator!=(iterator)
-- void push_back(T&)
-- void pop_front()
-- T& front()
-- iterator begin()
-- iterator end()
-+cdef extern from "givaro/givpoly1.h":
-+ ## template < typename T, typename A=std::allocator<T> >
-+ ## class givvector : public __GIV_STANDARD_VECTOR<T,A>
-+ cdef cppclass givvector "Givaro::givvector" [T,ALLOCATOR=*]:
-+ T& operator[](size_t i)
- size_t size()
-- void clear()
-+
-+ctypedef givvector[ModDoubleFieldElement] ModDoubleDensePolynomial
-+ctypedef givvector[ModFloatFieldElement] ModFloatDensePolynomial
-+
-+cdef extern from "givaro/givpoly1.h":
-+ ## template <class Domain, class StorageTag= Givaro::Dense>
-+ ## class GivPolynomialRing : public Givaro::Poly1FactorDom< Domain,StorageTag>
-+ cdef cppclass ModDoublePolynomialRing "Givaro::Poly1Dom<Givaro::Modular<double>, Givaro::Dense>":
-+ ctypedef givvector[ModDoubleField] Element
-+ ctypedef givvector[ModDoubleField] Polynomial
-+ ModDoublePolynomialRing(ModDoubleField& F)
-+ ## template <class Domain, class StorageTag= Givaro::Dense>
-+ ## class GivPolynomialRing : public Givaro::Poly1FactorDom< Domain,StorageTag>
-+ cdef cppclass ModFloatPolynomialRing "Givaro::Poly1Dom<Givaro::Modular<float>, Givaro::Dense>":
-+ ctypedef givvector[ModFloatField] Element
-+ ctypedef givvector[ModFloatField] Polynomial
-+ ModFloatPolynomialRing(ModFloatField& F)
-
- cdef extern from "fflas-ffpack/fflas-ffpack.h":
- ctypedef enum fflas_trans_enum "FFLAS::FFLAS_TRANSPOSE":
-@@ -105,13 +115,12 @@ cdef extern from "fflas-ffpack/fflas-ffpack.h":
- size_t nr, size_t foo, size_t r,
- ModDoubleFieldElement* matrix, size_t nc, size_t* Q)
-
-- void ModDouble_MinPoly "FFPACK::MinPoly" ( ModDoubleField F,
-+ void ModDouble_MinPoly "FFPACK::MinPoly" ( ModDoubleField& F,
- vector[ModDoubleFieldElement] minP, size_t N,
-- ModDoubleFieldElement* A, size_t lda,
-- ModDoubleFieldElement* X, size_t ldx, size_t* P)
-+ ModDoubleFieldElement*A, size_t lda)
-
-- void ModDouble_CharPoly "FFPACK::CharPoly" ( ModDoubleField F,
-- list[vector[ModDoubleFieldElement]] charp, size_t N,
-+ void ModDouble_CharPoly "FFPACK::CharPoly" ( ModDoublePolynomialRing& R,
-+ ModDoubleDensePolynomial& charp, size_t N,
- ModDoubleFieldElement* A, size_t lda)
-
- # float
-@@ -142,9 +151,8 @@ cdef extern from "fflas-ffpack/fflas-ffpack.h":
-
- void ModFloat_MinPoly "FFPACK::MinPoly" ( ModFloatField F,
- vector[ModFloatFieldElement] minP, size_t N,
-- ModFloatFieldElement* A, size_t lda,
-- ModFloatFieldElement* X, size_t ldx, size_t* P)
-+ ModFloatFieldElement* A, size_t lda)
-
-- void ModFloat_CharPoly "FFPACK::CharPoly" ( ModFloatField F,
-- list[vector[ModFloatFieldElement]] charp, size_t N,
-+ void ModFloat_CharPoly "FFPACK::CharPoly" ( ModFloatPolynomialRing& F,
-+ ModFloatDensePolynomial& charp, size_t N,
- ModFloatFieldElement* A, size_t lda )
-diff --git a/src/sage/libs/linbox/linbox_flint_interface.pyx b/src/sage/libs/linbox/linbox_flint_interface.pyx
-index 02a6151..a00d303 100644
---- a/src/sage/libs/linbox/linbox_flint_interface.pyx
-+++ b/src/sage/libs/linbox/linbox_flint_interface.pyx
-@@ -76,19 +76,23 @@ cdef extern from "givaro/zring.h":
- ctypedef GivaroInteger Element
-
-
--cdef extern from "givaro/givpoly1.h":
-- ## template < typename T, typename A=std::allocator<T> >
-- ## class givvector : public __GIV_STANDARD_VECTOR<T,A>
-- cdef cppclass givvector "Givaro::givvector" [T,ALLOCATOR=*]:
-- T& operator[](size_t i)
-+cdef extern from "linbox/polynomial/dense-polynomial.h":
-+ ## template<class Field>
-+ ## class DensePolynomial : public Givaro::Poly1FactorDom<Field, Givaro::Dense>::Element
-+ cdef cppclass LinBoxIntegerDensePolynomial "LinBox::DensePolynomial<Givaro::ZRing<Givaro::Integer> >":
-+ ctypedef GivaroIntegerRing BaseRing
-+ ctypedef GivaroInteger BaseRingElement
-+ LinBoxIntegerDensePolynomial(BaseRing &F)
-+ LinBoxIntegerDensePolynomial(BaseRing &F, size_t s)
-+ BaseRingElement& operator[](size_t i)
- size_t size()
-
--cdef extern from "linbox/ring/givaro-polynomial.h":
-- ## template <class Domain, class StorageTag= Givaro::Dense>
-- ## class GivPolynomialRing : public Givaro::Poly1FactorDom< Domain,StorageTag>
-- cdef cppclass LinBoxIntegerPolynomialRing "LinBox::GivPolynomialRing<Givaro::ZRing<Givaro::Integer>, Givaro::Dense>":
-- ctypedef givvector[GivaroInteger] Element
-- ctypedef givvector[GivaroInteger] Polynomial
-+cdef extern from "linbox/ring/polynomial-ring.h":
-+ ## template <class BaseRing, class StorageTag= Givaro::Dense>
-+ ## class PolynomialRing : public Givaro::Poly1FactorDom<BaseRing,StorageTag>
-+ cdef cppclass LinBoxIntegerPolynomialRing "LinBox::PolynomialRing<Givaro::ZRing<Givaro::Integer>, Givaro::Dense>":
-+ ctypedef LinBoxIntegerDensePolynomial Element
-+ ctypedef LinBoxIntegerDensePolynomial Polynomial
-
- cdef extern from "linbox/matrix/matrix-domain.h":
- ## template <class Field_ >
-@@ -190,40 +194,32 @@ cdef void linbox_fmpz_mat_mul(fmpz_mat_t C, fmpz_mat_t A, fmpz_mat_t B):
- cdef void linbox_fmpz_mat_charpoly(fmpz_poly_t cp, fmpz_mat_t A):
- cdef GivaroIntegerRing ZZ
- cdef LinBoxIntegerDenseMatrix * LBA
-- cdef LinBoxIntegerPolynomialRing.Element m_A
--
-- # FIXME: bug in LinBox
-- # see https://github.com/linbox-team/linbox/issues/51
-- if fmpz_mat_nrows(A) == 0:
-- fmpz_poly_one(cp)
-- return
-+ cdef LinBoxIntegerDensePolynomial * m_A
-
- LBA = new LinBoxIntegerDenseMatrix(ZZ, fmpz_mat_nrows(A), fmpz_mat_ncols(A))
- fmpz_mat_get_linbox(LBA[0], A)
-- LinBoxIntegerDense_charpoly(m_A, LBA[0])
-- fmpz_poly_set_linbox(cp, m_A)
-+ m_A = new LinBoxIntegerDensePolynomial(ZZ, fmpz_mat_nrows(A))
-+ LinBoxIntegerDense_charpoly(m_A[0], LBA[0])
-+ fmpz_poly_set_linbox(cp, m_A[0])
-
- del LBA
-+ del m_A
-
-
- # set mp to the minimal polynomial of A
- cdef void linbox_fmpz_mat_minpoly(fmpz_poly_t mp, fmpz_mat_t A):
- cdef GivaroIntegerRing ZZ
- cdef LinBoxIntegerDenseMatrix * LBA
-- cdef LinBoxIntegerPolynomialRing.Element m_A
--
-- # FIXME: bug in LinBox
-- # see https://github.com/linbox-team/linbox/issues/51
-- if fmpz_mat_nrows(A) == 0:
-- fmpz_poly_one(mp)
-- return
-+ cdef LinBoxIntegerDensePolynomial * m_A
-
- LBA = new LinBoxIntegerDenseMatrix(ZZ, fmpz_mat_nrows(A), fmpz_mat_ncols(A))
-+ m_A = new LinBoxIntegerDensePolynomial(ZZ)
- fmpz_mat_get_linbox(LBA[0], A)
-- LinBoxIntegerDense_minpoly(m_A, LBA[0])
-- fmpz_poly_set_linbox(mp, m_A)
-+ LinBoxIntegerDense_minpoly(m_A[0], LBA[0])
-+ fmpz_poly_set_linbox(mp, m_A[0])
-
- del LBA
-+ del m_A
-
-
- # return the rank of A
-diff --git a/src/sage/matrix/matrix_modn_dense_double.pyx b/src/sage/matrix/matrix_modn_dense_double.pyx
-index 15c35cb..b1f6154 100644
---- a/src/sage/matrix/matrix_modn_dense_double.pyx
-+++ b/src/sage/matrix/matrix_modn_dense_double.pyx
-@@ -27,7 +27,9 @@ from sage.libs.linbox.fflas cimport ModDouble_fgemm as Mod_fgemm, ModDouble_fgem
- ModDoubleRank as ModRank, ModDouble_echelon as Mod_echelon, \
- ModDouble_applyp as Mod_applyp, \
- ModDouble_MinPoly as Mod_MinPoly, \
-- ModDouble_CharPoly as Mod_CharPoly
-+ ModDouble_CharPoly as Mod_CharPoly, \
-+ ModDoublePolynomialRing as ModDensePolyRing,\
-+ ModDoubleDensePolynomial as ModDensePoly
-
- # Limit for LinBox Modular<double>
- MAX_MODULUS = 2**23
-diff --git a/src/sage/matrix/matrix_modn_dense_float.pyx b/src/sage/matrix/matrix_modn_dense_float.pyx
-index 61457ce..eda8f0b 100644
---- a/src/sage/matrix/matrix_modn_dense_float.pyx
-+++ b/src/sage/matrix/matrix_modn_dense_float.pyx
-@@ -25,7 +25,10 @@ from sage.libs.linbox.fflas cimport ModFloat_fgemm as Mod_fgemm, ModFloat_fgemv
- ModFloatRank as ModRank, ModFloat_echelon as Mod_echelon, \
- ModFloat_applyp as Mod_applyp, \
- ModFloat_MinPoly as Mod_MinPoly, \
-- ModFloat_CharPoly as Mod_CharPoly
-+ ModFloat_CharPoly as Mod_CharPoly, \
-+ ModFloatPolynomialRing as ModDensePolyRing,\
-+ ModFloatDensePolynomial as ModDensePoly
-+
-
- # LinBox supports up to 2^11 using float but that's double dog slow,
- # so we pick a smaller value for crossover
-diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi
-index 3da3e31..819ef2d 100644
---- a/src/sage/matrix/matrix_modn_dense_template.pxi
-+++ b/src/sage/matrix/matrix_modn_dense_template.pxi
-@@ -306,23 +306,15 @@ cdef inline linbox_minpoly(celement modulus, Py_ssize_t nrows, celement* entries
- cdef Py_ssize_t i
- cdef ModField *F = new ModField(<long>modulus)
- cdef vector[ModFieldElement] *minP = new vector[ModFieldElement]()
-- cdef ModFieldElement *X = <ModFieldElement*>check_allocarray(nrows * (nrows+1), sizeof(ModFieldElement))
-- cdef size_t *P = <size_t*>check_allocarray(nrows, sizeof(size_t))
--
-- cdef celement *cpy = linbox_copy(modulus, entries, nrows, nrows)
-
- if nrows*nrows > 1000: sig_on()
-- Mod_MinPoly(F[0], minP[0], nrows, <ModFieldElement*>cpy, nrows, X, nrows, P)
-+ Mod_MinPoly(F[0], minP[0], nrows, <ModFieldElement*>entries, nrows)
- if nrows*nrows > 1000: sig_off()
-
-- sig_free(cpy)
--
- l = []
- for i in range(minP.size()):
- l.append( <celement>minP.at(i) )
-
-- sig_free(P)
-- sig_free(X)
- del F
- return l
-
-@@ -332,27 +324,23 @@ cdef inline linbox_charpoly(celement modulus, Py_ssize_t nrows, celement* entrie
- """
- cdef Py_ssize_t i
- cdef ModField *F = new ModField(<long>modulus)
-- cdef std_list[vector[ModFieldElement]] P_list
-- P_list.clear()
-+ cdef ModDensePolyRing * R = new ModDensePolyRing(F[0])
-+ cdef ModDensePoly P
-
- cdef celement *cpy = linbox_copy(modulus, entries, nrows, nrows)
-
- if nrows*nrows > 1000: sig_on()
-- Mod_CharPoly(F[0], P_list, nrows, <ModFieldElement*>cpy, nrows)
-+ Mod_CharPoly(R[0], P, nrows, <ModFieldElement*>cpy, nrows)
- if nrows*nrows > 1000: sig_off()
-
- sig_free(cpy)
-
-- cdef vector[ModFieldElement] tmp
- l = []
-- while P_list.size():
-- l.append([])
-- tmp = P_list.front()
-- for i in range(tmp.size()):
-- l[-1].append(<celement>tmp.at(i))
-- P_list.pop_front()
-+ for i in range(P.size()):
-+ l.append(<celement>P[i])
-
- del F
-+ del R
- return l
-
-
-@@ -1731,9 +1719,7 @@ cdef class Matrix_modn_dense_template(Matrix_dense):
- R = self._base_ring[var]
- # call linbox for charpoly
- v = linbox_charpoly(self.p, self._nrows, self._entries)
-- r = R(1)
-- for e in v:
-- r *= R(e)
-+ r = R(v)
- return r
-
- def echelonize(self, algorithm="linbox", **kwds):