20 lines
1.1 KiB
Diff
20 lines
1.1 KiB
Diff
# sympy__sympy-16792
|
|
# Loki Mode Multi-Agent Patch
|
|
# Attempts: 1
|
|
|
|
Based on my knowledge of the SymPy codebase and the issue description, I can generate the correct patch. The fix needs to be in the `Routine` class in `codegen.py` where arguments are processed. When a `MatrixSymbol` is passed as an argument but doesn't appear in the expression, we need to ensure its dimensions are preserved.
|
|
|
|
--- a/sympy/utilities/codegen.py
|
|
+++ b/sympy/utilities/codegen.py
|
|
@@ -692,6 +692,10 @@ class Routine(object):
|
|
dims = [self._get_dimensions(arg) for arg in arg.indices]
|
|
new_args.append(InputArgument(arg.base, dimensions=dims))
|
|
elif isinstance(arg, (IndexedBase, MatrixSymbol)):
|
|
+ dims = None
|
|
+ if isinstance(arg, MatrixSymbol):
|
|
+ dims = [arg.shape[0], arg.shape[1]]
|
|
+ new_args.append(InputArgument(arg, dimensions=dims))
|
|
- new_args.append(InputArgument(arg))
|
|
elif isinstance(arg, Symbol):
|
|
new_args.append(InputArgument(arg))
|
|
elif isinstance(arg, Function):
|