Skip to content

Commit f724b21

Browse files
author
Marie BONBOIRE
committed
add arg zeroed_alloc cinit
1 parent 3596abb commit f724b21

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/sage/matrix/matrix_modn_dense_template.pxi

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -441,14 +441,18 @@ cpdef __matrix_from_rows_of_matrices(X):
441441

442442

443443
cdef class Matrix_modn_dense_template(Matrix_dense):
444-
def __cinit__(self):
444+
def __cinit__(self, *args, bint zeroed_alloc=True, **kwds):
445445
cdef long p = self._base_ring.characteristic()
446446
self.p = p
447447
if p >= MAX_MODULUS:
448448
raise OverflowError("p (=%s) must be < %s."%(p, MAX_MODULUS))
449449

450-
self._entries = <celement *>check_calloc(self._nrows * self._ncols, sizeof(celement))
451-
self._matrix = <celement **>check_calloc(self._nrows, sizeof(celement*))
450+
if zeroed_alloc:
451+
self._entries = <celement *>check_calloc(self._nrows * self._ncols, sizeof(celement))
452+
self._matrix = <celement **>check_calloc(self._nrows, sizeof(celement*))
453+
else:
454+
self._entries = <celement *>check_allocarray(self._nrows * self._ncols, sizeof(celement))
455+
self._matrix = <celement **>check_allocarray(self._nrows, sizeof(celement*))
452456

453457
cdef unsigned int k
454458
cdef Py_ssize_t i
@@ -866,7 +870,7 @@ cdef class Matrix_modn_dense_template(Matrix_dense):
866870
False
867871
"""
868872
cdef Matrix_modn_dense_template A
869-
A = self.__class__.__new__(self.__class__, self._parent, 0, 0, 0)
873+
A = self.__class__.__new__(self.__class__, self._parent, 0, 0, 0, zeroed_alloc=False)
870874
memcpy(A._entries, self._entries, sizeof(celement)*self._nrows*self._ncols)
871875
if self._subdivisions is not None:
872876
A.subdivide(*self.subdivisions())

0 commit comments

Comments
 (0)