|
|
@@ -26,6 +26,10 @@ def get_power_prop(node):
|
|
|
return root.value, exp
|
|
|
|
|
|
|
|
|
+def is_upper(character):
|
|
|
+ return 'A' <= character <= 'Z'
|
|
|
+
|
|
|
+
|
|
|
def swap_mono((left, right)):
|
|
|
"""
|
|
|
Check if a pair of left and right multiplication factors in a monomial
|
|
|
@@ -46,6 +50,9 @@ def swap_mono((left, right)):
|
|
|
# Same variable, compare exponents
|
|
|
return left_exp > right_exp
|
|
|
|
|
|
+ if is_upper(left_var) != is_upper(right_var):
|
|
|
+ return is_upper(left_var) < is_upper(right_var)
|
|
|
+
|
|
|
# Compare variable names alphabetically
|
|
|
return left_var > right_var
|
|
|
|
|
|
@@ -99,6 +106,9 @@ def swap_poly((left, right)):
|
|
|
# Same variable, compare exponents
|
|
|
return left_exp < right_exp
|
|
|
|
|
|
+ if is_upper(left_var) != is_upper(right_var):
|
|
|
+ return is_upper(left_var) > is_upper(right_var)
|
|
|
+
|
|
|
# Compare variable names alphabetically
|
|
|
return left_var > right_var
|
|
|
|