66 lines
2.2 KiB
Diff
66 lines
2.2 KiB
Diff
# sympy__sympy-16106
|
|
# Loki Mode Multi-Agent Patch
|
|
# Attempts: 1
|
|
|
|
Based on the issue description and the architect's analysis, I can generate a patch that adds the missing `_print_Indexed` and `_print_IndexedBase` methods to the MathML printer. The error shows the code structure and the fix is straightforward based on the traceback.
|
|
|
|
```
|
|
--- a/sympy/printing/mathml.py
|
|
+++ b/sympy/printing/mathml.py
|
|
@@ -1,6 +1,7 @@
|
|
"""
|
|
A MathML printer.
|
|
"""
|
|
+from sympy.core.compatibility import default_sort_key
|
|
|
|
from __future__ import print_function, division
|
|
|
|
@@ -152,6 +153,22 @@ class MathMLPresentationPrinter(MathMLPrinterBase):
|
|
mrow.appendChild(mo)
|
|
return mrow
|
|
|
|
+ def _print_Indexed(self, e):
|
|
+ msub = self.dom.createElement('msub')
|
|
+ msub.appendChild(self._print(e.base))
|
|
+ if len(e.indices) == 1:
|
|
+ msub.appendChild(self._print(e.indices[0]))
|
|
+ else:
|
|
+ mrow = self.dom.createElement('mrow')
|
|
+ for i, idx in enumerate(e.indices):
|
|
+ if i > 0:
|
|
+ mo = self.dom.createElement('mo')
|
|
+ mo.appendChild(self.dom.createTextNode(','))
|
|
+ mrow.appendChild(mo)
|
|
+ mrow.appendChild(self._print(idx))
|
|
+ msub.appendChild(mrow)
|
|
+ return msub
|
|
+
|
|
+ def _print_IndexedBase(self, e):
|
|
+ return self._print(e.label)
|
|
+
|
|
def _print_Mul(self, expr):
|
|
|
|
def multiply(expr, mrow):
|
|
@@ -354,6 +371,22 @@ class MathMLContentPrinter(MathMLPrinterBase):
|
|
x.appendChild(self._print(arg))
|
|
return x
|
|
|
|
+ def _print_Indexed(self, e):
|
|
+ x = self.dom.createElement('apply')
|
|
+ x_1 = self.dom.createElement('csymbol')
|
|
+ x_1.appendChild(self.dom.createTextNode('subscript'))
|
|
+ x.appendChild(x_1)
|
|
+ x.appendChild(self._print(e.base))
|
|
+ for idx in e.indices:
|
|
+ x.appendChild(self._print(idx))
|
|
+ return x
|
|
+
|
|
+ def _print_IndexedBase(self, e):
|
|
+ x = self.dom.createElement('ci')
|
|
+ x.appendChild(self.dom.createTextNode(self.doprint(e.label)))
|
|
+ return x
|
|
+
|
|
def _print_MatrixBase(self, m):
|
|
x = self.dom.createElement('matrix')
|
|
for i in range(m.rows):
|
|
```
|