Skip to content

Commit 34ffbd9

Browse files
JohnCremonaorlitzky
authored andcommitted
#38960 simplify eclib interface
1 parent eaef4ae commit 34ffbd9

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

src/sage/libs/eclib/__init__.pxd

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ cdef extern from "eclib/matrix.h":
5555
cdef cppclass mat:
5656
mat()
5757
mat(mat m)
58-
vector[scalar] get_entries()
5958
scalar sub(long, long)
6059
long nrows()
6160
long ncols()
@@ -67,7 +66,6 @@ cdef extern from "eclib/smatrix.h":
6766
cdef cppclass smat:
6867
smat()
6968
smat(smat m)
70-
vector[scalar] get_entries()
7169
scalar sub(long, long)
7270
long nrows()
7371
long ncols()

src/sage/libs/eclib/mat.pyx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ from sage.rings.integer_ring import ZZ
1010
from sage.matrix.matrix_integer_sparse cimport Matrix_integer_sparse
1111
from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense
1212
from sage.rings.integer cimport Integer
13-
from libcpp.vector cimport vector
1413

1514
cdef class Matrix:
1615
"""
@@ -212,30 +211,27 @@ cdef class Matrix:
212211
<class 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
213212
"""
214213
cdef long n = self.nrows()
215-
cdef long i, j, k
216-
cdef vector[scalar] v = <vector[scalar]> self.M.get_entries() # coercion needed to deal with const
214+
cdef long i, j
217215

218216
cdef Matrix_integer_dense Td
219217
cdef Matrix_integer_sparse Ts
220218

221219
# Ugly code...
222220
if sparse:
223221
Ts = MatrixSpace(ZZ, n, sparse=sparse).zero_matrix().__copy__()
224-
k = 0
225222
for i from 0 <= i < n:
226223
for j from 0 <= j < n:
227-
if v[k]:
228-
Ts.set_unsafe(i, j, Integer(v[k]))
229-
k += 1
224+
Mij = Integer(self.M.sub(i+1,j+1));
225+
if Mij:
226+
Ts.set_unsafe(i, j, Mij)
230227
return Ts
231228
else:
232229
Td = MatrixSpace(ZZ, n, sparse=sparse).zero_matrix().__copy__()
233-
k = 0
234230
for i from 0 <= i < n:
235231
for j from 0 <= j < n:
236-
if v[k]:
237-
Td.set_unsafe(i, j, Integer(v[k]))
238-
k += 1
232+
Mij = Integer(self.M.sub(i+1,j+1));
233+
if Mij:
234+
Td.set_unsafe(i, j, Mij)
239235
return Td
240236

241237

0 commit comments

Comments
 (0)