diff options
Diffstat (limited to 'series.mac')
| -rw-r--r-- | series.mac | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -173,12 +173,13 @@ mul_series(factors, max_order) := block( matchdeclare(m_any1, lambda ([e], freeof(β, γ, Φ, e))); matchdeclare(m_any2, lambda ([e], freeof(β, γ, Φ, e))); matchdeclare(m_any3, lambda ([e], freeof(β, γ, Φ, e))); +matchdeclare(m_any4, lambda ([e], freeof(β, γ, Φ, e))); matchdeclare(m_exp_expr, lambda ([e], e = β_expr or e = γ_expr or e = Φ_expr)); /* Replace β, γ and Φ expressions into a symbolic representation */ defrule(r_wrap_exp, - exp(m_any1*β + m_any2*γ + m_any3*Φ), - β_expr(m_any1)*γ_expr(m_any2)*Φ_expr(m_any3)); + exp(m_any1*β + m_any2*γ + m_any3*Φ + m_any4), + β_expr(m_any1)*γ_expr(m_any2)*Φ_expr(m_any3)*e_expr(m_any4)); defrule(r_simp_exp_expr, m_exp_expr(0), 1); @@ -190,8 +191,10 @@ expansions */ defrule(r_exp_β_val, β_expr(m_any1), β_expr_val(m_any1, expansion_order)); defrule(r_exp_γ_val, γ_expr(m_any1), γ_expr_val(m_any1, expansion_order)); defrule(r_exp_Φ_val, Φ_expr(m_any1), Φ_expr_val(m_any1, expansion_order)); +defrule(r_exp_e_val, e_expr(m_any1), exp(m_any)); -unwrap_exp(expr) := apply1(expr, r_exp_β_val, r_exp_γ_val, r_exp_Φ_val); +unwrap_exp(expr) := ( + apply1(expr, r_exp_β_val, r_exp_γ_val, r_exp_Φ_val, r_exp_e_val)); /**/ |
