Changeset 7846:46286c2f04b2


Ignore:
Timestamp:
12/20/07 02:43:22 (5 years ago)
Author:
Robert Bradshaw <robertwb@…>
Branch:
default
Message:

Start for symbolic matrices.

Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • sage/matrix/matrix_generic_dense.pyx

    r4498 r7846  
    8282        else:  
    8383         
    84             self._entries = [None]*(self._nrows*self._ncols) 
    8584            zero = parent.base_ring()(0) 
    86             for i from 0 <= i < self._nrows * self._ncols: 
    87                 self._entries[i] = zero 
     85            self._entries = [zero]*(self._nrows*self._ncols) 
    8886                 
    8987            if x != zero: 
     
    9492 
    9593    cdef set_unsafe(self, Py_ssize_t i, Py_ssize_t j, value): 
    96         # TODO: make faster with Python/C API         
    97         self._entries[i*self._ncols + j] = value 
     94        Py_DECREF(<object>PyList_GET_ITEM(self._entries, i*self._ncols + j)) 
     95        Py_INCREF(value) 
     96        PyList_SET_ITEM(self._entries, i*self._ncols + j, value) 
    9897 
    9998    cdef get_unsafe(self, Py_ssize_t i, Py_ssize_t j): 
    100         # TODO: make faster with Python/C API 
    101         return self._entries[i*self._ncols + j] 
     99        return <object>PyList_GET_ITEM(self._entries, i*self._ncols + j) 
    102100 
    103101    def _pickle(self): 
  • sage/matrix/matrix_space.py

    r7840 r7846  
    720720            sage: MS2._get_matrix_class() 
    721721            <type 'sage.matrix.matrix_integer_sparse.Matrix_integer_sparse'> 
     722            sage: type(matrix(SR, 2, 2, 0)) 
     723            <type 'sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense'> 
    722724        """ 
    723725        R = self.base_ring() 
     
    741743            #elif isinstance(R, sage.rings.padics.padic_ring_capped_relative.pAdicRingCappedRelative): 
    742744            #    return padics.matrix_padic_capped_relative_dense 
    743             # the default             
    744             return matrix_generic_dense.Matrix_generic_dense 
     745            # the default       
     746            else: 
     747                from sage.calculus.calculus import SR   # causes circular imports 
     748                if R == SR: 
     749                    import matrix_symbolic_dense 
     750                    return matrix_symbolic_dense.Matrix_symbolic_dense 
     751                return matrix_generic_dense.Matrix_generic_dense 
    745752         
    746753        else:             
  • setup.py

    r7791 r7846  
    373373                                     include_dirs=[SAGE_ROOT +'/local/include/singular']) 
    374374 
     375matrix_symbolic_dense = Extension('sage.matrix.matrix_symbolic_dense', 
     376                                   ['sage/matrix/matrix_symbolic_dense.pyx']) 
     377 
    375378#matrix_padic_capped_relative_dense = Extension('sage.matrix.padics.matrix_padic_capped_relative_dense', 
    376379#                                               ['sage/matrix/padics/matrix_padic_capped_relative_dense.pyx']) 
     
    527530     matrix_mod2_dense, 
    528531     matrix_mpolynomial_dense, \ 
     532     matrix_symbolic_dense, \ 
    529533 
    530534     cremona_mat, \ 
Note: See TracChangeset for help on using the changeset viewer.