diff options
| author | Thomas Guillermo Albers Raviola <thomas@thomaslabs.org> | 2026-07-29 16:54:13 +0200 |
|---|---|---|
| committer | Thomas Guillermo Albers Raviola <thomas@thomaslabs.org> | 2026-07-29 16:54:13 +0200 |
| commit | 7951b981dba39c5f3a7cab91af3c9a3d5edafbfb (patch) | |
| tree | 01dea70b086750a241d5800b64d4b23b4abc3eff /series.mac | |
| parent | b764fb1b1dd84a285f370b81b3307f6af59f1e87 (diff) | |
Refactor expand_term
Diffstat (limited to 'series.mac')
| -rw-r--r-- | series.mac | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -250,19 +250,18 @@ coefficients and finally multiply only upto expansion_order. expand_term(expr, coeffs) := block( [tmp], /* TODO: Recursive call instead of error */ - if op(expr)="+" then ( + if op(expr) = "+" then ( error("Term is itself a sum!")) /* For single negation just call recursively */ - elseif op(expr)="-" then ( + elseif op(expr) = "-" then ( if length(args(expr)) # 1 then ( error("Unexpected '-' operator with more than 1 argument")), expand(- expand_term(part(expr, 1), coeffs))) - elseif op(expr)="*" then ( + elseif op(expr) = "*" then ( expand(__expand_term_prod(expr, coeffs))) - elseif op(expr)="/" then block( - [n, d, expansion_order:expansion_order - lopow(d, r)], - n : part(expr, 1), - d : part(expr, 2), + elseif op(expr) = "/" then block( + [n : part(expr, 1), d : part(expr, 2), expansion_order : expansion_order], + expansion_order : expansion_order - lopow(d, r), expand(expand_term(n, coeffs) / d)) /* TODO: better handle exponents */ else ( |
