Ask Your Question

Extract terms from a sum

asked 2012-09-04 17:05:14 -0500

heatkernel gravatar image

Is there some way to programmatically extract the first, second, third, and so on terms from a sum of symbolic terms (or equivalently, turn such a sum into the list of its summands)? For example, after

sage: A,B,C = var('A'), var('B'), var('C') 
sage: F = A*B+C; F
A*B + C

Is there some method you can call on F to extract A*B (or C)? This would be useful especially for displaying sage in LaTeX via sageTeX when a formula that is the sum of 4 terms (say) runs over the margin and has to be split up somehow. I would also be interested in a workaround in sageTeX that would allow you to flexibly insert a linebreak in a formula under the circumstances that the formula generated by Sage got too long for a line.

edit retag flag offensive close merge delete


Can you start a different question about the SageTeX thing? It's sort of buried here, and should really have the honor of its own question.

kcrisman gravatar imagekcrisman ( 2012-09-05 02:21:18 -0500 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2012-09-04 18:20:40 -0500

benjaminfjones gravatar image

Look at the operator() and operands() built-in methods of the Symbolic Expression class:

sage: F.operator()
<built-in function add>
sage: F.operands()
[A*B, C]
sage: F == F.operator()(*F.operands())
A*B + C == A*B + C
sage: bool(F == F.operator()(*F.operands()))
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-09-04 17:05:14 -0500

Seen: 327 times

Last updated: Sep 04 '12