Skip to content

Commit a49dfb6

Browse files
committed
More performance improvement
1 parent b195a14 commit a49dfb6

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/sage/symbolic/function.pxd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ from sage.structure.sage_object cimport SageObject
33
cdef class Function(SageObject):
44
cdef unsigned int _serial
55
cdef int _nargs
6-
cdef object _name
7-
cdef object _alt_name
8-
cdef object _latex_name
6+
cdef str _name
7+
cdef str _alt_name
8+
cdef str _latex_name
99
cdef object _conversions
1010
cdef object _evalf_params_first
1111
cdef _is_registered(self)
@@ -16,7 +16,7 @@ cdef class BuiltinFunction(Function):
1616
cdef _is_registered(self)
1717

1818
cdef class GinacFunction(BuiltinFunction):
19-
cdef object _ginac_name
19+
cdef str _ginac_name
2020
cdef _is_registered(self)
2121
cdef _register_function(self)
2222

src/sage/symbolic/function.pyx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ try:
157157
except ImportError:
158158
register_or_update_function = None
159159

160+
cdef object SR = None, PolynomialRing_commutative = None, MPolynomialRing_polydict_domain = None
160161

161162
# List of functions which ginac allows us to define custom behavior for.
162163
# Changing the order of this list could cause problems unpickling old pickles.
@@ -1057,11 +1058,15 @@ cdef class BuiltinFunction(Function):
10571058
if (self._preserved_arg
10581059
and isinstance(args[self._preserved_arg-1], Element)):
10591060
arg_parent = parent(args[self._preserved_arg-1])
1060-
from sage.symbolic.ring import SR
1061+
global SR
1062+
if SR is None:
1063+
from sage.symbolic.ring import SR
10611064
if arg_parent is SR:
10621065
return res
1063-
from sage.rings.polynomial.polynomial_ring import PolynomialRing_commutative
1064-
from sage.rings.polynomial.multi_polynomial_ring import MPolynomialRing_polydict_domain
1066+
global PolynomialRing_commutative, MPolynomialRing_polydict_domain
1067+
if PolynomialRing_commutative is None:
1068+
from sage.rings.polynomial.polynomial_ring import PolynomialRing_commutative
1069+
from sage.rings.polynomial.multi_polynomial_ring import MPolynomialRing_polydict_domain
10651070
if isinstance(arg_parent, (PolynomialRing_commutative,
10661071
MPolynomialRing_polydict_domain)):
10671072
try:

0 commit comments

Comments
 (0)