Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/structure/coerce.pxd
4057 views

from element cimport Element, RingElement, ModuleElement, CoercionModel

from parent cimport Parent
from sage.categories.action cimport Action

from coerce_dict cimport TripleDict, TripleDictIter

cdef class CoercionModel_cache_maps(CoercionModel):
    # This MUST be a mapping to tuples, where each 
    # tuple contains at least two elements that are either
    # None or of type Morphism. 
    cdef TripleDict _coercion_maps
    
    # This MUST be a mapping to actions. 
    cdef TripleDict _action_maps
    
    cpdef coercion_maps(self, R, S)
    cpdef discover_coercion(self, R, S)
    cpdef verify_coercion_maps(self, R, S, homs, bint fix=*)
    cpdef verify_action(self, action, R, S, op, bint fix=*)

    cpdef get_action(self, xp, yp, op)
    cpdef discover_action(self, R, S, op)

    cdef bint _record_exceptions
    cpdef _record_exception(self)
    cdef readonly list _exception_stack
    cdef bint _exceptions_cleared
    
    cdef TripleDict _division_parents
    cpdef analyse(self, xp, yp, op=*)
    cpdef Parent division_parent(self, Parent parent)