0
$\begingroup$

I have some expression like this

exp = x^(-2 + α + β) (α g[0] ρ[ 0] - α^2 g[0] ρ[0] + 4 β g[0] ρ[0] - 2 α β g[0] ρ[0] - 4 β^2 g[0] ρ[0] - 2 x^(2 γ) κ g[0] p[0]^2 ρ[0] - 4 x^(2 γ) γ κ g[0] Log[x] p[0]^2 ρ[ 0] - 2 x^(2 γ) γ^2 κ g[ 0] Log[x]^2 p[0]^2 ρ[0] - 4 x^(γ + δ) δ κ g[0] p[0] q[ 0] ρ[0] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[0] q[0] ρ[0] - 2 x^(2 δ) δ^2 κ g[0] q[0]^2 ρ[0]) + x^(-1 + α + β) (-α g[1] ρ[ 0] - α^2 g[1] ρ[0] + 2 β g[1] ρ[0] - 2 α β g[1] ρ[0] - 4 β^2 g[1] ρ[0] - 2 x^(2 γ) κ g[1] p[0]^2 ρ[0] - 4 x^(2 γ) γ κ g[1] Log[x] p[0]^2 ρ[ 0] - 2 x^(2 γ) γ^2 κ g[ 1] Log[x]^2 p[0]^2 ρ[0] - 4 x^(2 γ) κ g[0] p[0] p[1] ρ[0] - 4 x^(2 γ) κ g[0] Log[x] p[0] p[1] ρ[0] - 8 x^(2 γ) γ κ g[0] Log[x] p[0] p[1] ρ[ 0] - 4 x^(2 γ) γ κ g[0] Log[x]^2 p[0] p[ 1] ρ[0] - 4 x^(2 γ) γ^2 κ g[0] Log[x]^2 p[0] p[ 1] ρ[0] - 4 x^(γ + δ) δ κ g[1] p[0] q[ 0] ρ[0] - 4 x^(γ + δ) γ δ κ g[1] Log[ x] p[0] q[0] ρ[0] - 4 x^(γ + δ) δ κ g[0] p[1] q[ 0] ρ[0] - 4 x^(γ + δ) δ κ g[0] Log[x] p[1] q[ 0] ρ[0] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[1] q[0] ρ[0] - 2 x^(2 δ) δ^2 κ g[1] q[0]^2 ρ[0] - 4 x^(γ + δ) κ g[0] p[0] q[1] ρ[0] - 4 x^(γ + δ) δ κ g[0] p[0] q[ 1] ρ[0] - 4 x^(γ + δ) γ κ g[0] Log[x] p[0] q[ 1] ρ[0] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[0] q[1] ρ[0] - 4 x^(2 δ) δ κ g[0] q[0] q[1] ρ[0] - 4 x^(2 δ) δ^2 κ g[0] q[0] q[1] ρ[ 0] - α g[0] ρ[1] - α^2 g[0] ρ[1] - 4 β g[0] ρ[1] - 2 α β g[0] ρ[1] - 4 β^2 g[0] ρ[1] - 2 x^(2 γ) κ g[0] p[0]^2 ρ[1] - 4 x^(2 γ) γ κ g[0] Log[x] p[0]^2 ρ[ 1] - 2 x^(2 γ) γ^2 κ g[ 0] Log[x]^2 p[0]^2 ρ[1] - 4 x^(γ + δ) δ κ g[0] p[0] q[ 0] ρ[1] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[0] q[0] ρ[1] - 2 x^(2 δ) δ^2 κ g[0] q[0]^2 ρ[1]) + x^(α + β) (-2 g[2] ρ[0] - 4 α g[2] ρ[0] - 4 β g[2] ρ[0] - 4 x^(2 γ) κ g[1] p[0] p[1] ρ[0] - 4 x^(2 γ) κ g[1] Log[x] p[0] p[1] ρ[0] - 8 x^(2 γ) γ κ g[1] Log[x] p[0] p[1] ρ[ 0] - 4 x^(2 γ) γ κ g[1] Log[x]^2 p[0] p[ 1] ρ[0] - 4 x^(2 γ) γ^2 κ g[1] Log[x]^2 p[0] p[ 1] ρ[0] - 2 x^(2 γ) κ g[0] p[1]^2 ρ[0] - 2 x^(1 + 2 γ) κ g[1] p[1]^2 ρ[0] - 4 x^(2 γ) κ g[0] Log[x] p[1]^2 ρ[0] - 4 x^(2 γ) γ κ g[0] Log[x] p[1]^2 ρ[ 0] - 4 x^(1 + 2 γ) κ g[1] Log[x] p[1]^2 ρ[ 0] - 4 x^(1 + 2 γ) γ κ g[1] Log[ x] p[1]^2 ρ[0] - 2 x^(2 γ) κ g[0] Log[x]^2 p[1]^2 ρ[0] - 4 x^(2 γ) γ κ g[0] Log[x]^2 p[1]^2 ρ[ 0] - 2 x^(2 γ) γ^2 κ g[ 0] Log[x]^2 p[1]^2 ρ[0] - 2 x^(1 + 2 γ) κ g[1] Log[x]^2 p[1]^2 ρ[0] - 4 x^(1 + 2 γ) γ κ g[ 1] Log[x]^2 p[1]^2 ρ[0] - 2 x^(1 + 2 γ) γ^2 κ g[ 1] Log[x]^2 p[1]^2 ρ[0] - 8 x^(2 γ) κ g[0] Log[x] p[0] p[2] ρ[0] - 8 x^(1 + 2 γ) κ g[1] Log[x] p[0] p[2] ρ[0] - 8 x^(2 γ) γ κ g[0] Log[x]^2 p[0] p[ 2] ρ[0] - 8 x^(1 + 2 γ) γ κ g[1] Log[x]^2 p[0] p[ 2] ρ[0] - 8 x^(1 + 2 γ) κ g[0] Log[x] p[1] p[2] ρ[0] - 8 x^(2 + 2 γ) κ g[1] Log[x] p[1] p[2] ρ[0] - 8 x^(1 + 2 γ) κ g[0] Log[x]^2 p[1] p[2] ρ[ 0] - 8 x^(1 + 2 γ) γ κ g[0] Log[x]^2 p[ 1] p[2] ρ[0] - 8 x^(2 + 2 γ) κ g[1] Log[x]^2 p[1] p[2] ρ[ 0] - 8 x^(2 + 2 γ) γ κ g[1] Log[x]^2 p[ 1] p[2] ρ[0] - 8 x^(2 + 2 γ) κ g[0] Log[x]^2 p[2]^2 ρ[0] - 8 x^(3 + 2 γ) κ g[1] Log[x]^2 p[2]^2 ρ[0] - 4 x^(γ + δ) δ κ g[1] p[1] q[ 0] ρ[0] - 4 x^(γ + δ) δ κ g[1] Log[x] p[1] q[ 0] ρ[0] - 4 x^(γ + δ) γ δ κ g[1] Log[ x] p[1] q[0] ρ[0] - 8 x^(γ + δ) δ κ g[0] Log[x] p[2] q[ 0] ρ[0] - 8 x^(1 + γ + δ) δ κ g[1] Log[x] p[ 2] q[0] ρ[0] - 4 x^(γ + δ) κ g[1] p[0] q[1] ρ[0] - 4 x^(γ + δ) δ κ g[1] p[0] q[ 1] ρ[0] - 4 x^(γ + δ) γ κ g[1] Log[x] p[0] q[ 1] ρ[0] - 4 x^(γ + δ) γ δ κ g[1] Log[ x] p[0] q[1] ρ[0] - 4 x^(γ + δ) κ g[0] p[1] q[1] ρ[0] - 4 x^(γ + δ) δ κ g[0] p[1] q[ 1] ρ[0] - 4 x^(1 + γ + δ) κ g[1] p[1] q[1] ρ[ 0] - 4 x^(1 + γ + δ) δ κ g[1] p[ 1] q[1] ρ[0] - 4 x^(γ + δ) κ g[0] Log[x] p[1] q[1] ρ[ 0] - 4 x^(γ + δ) γ κ g[0] Log[ x] p[1] q[1] ρ[0] - 4 x^(γ + δ) δ κ g[0] Log[x] p[1] q[ 1] ρ[0] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[1] q[1] ρ[0] - 4 x^(1 + γ + δ) κ g[1] Log[x] p[1] q[ 1] ρ[0] - 4 x^(1 + γ + δ) γ κ g[1] Log[x] p[ 1] q[1] ρ[0] - 4 x^(1 + γ + δ) δ κ g[1] Log[x] p[ 1] q[1] ρ[0] - 4 x^(1 + γ + δ) γ δ κ g[ 1] Log[x] p[1] q[1] ρ[0] - 8 x^(1 + γ + δ) κ g[0] Log[x] p[2] q[ 1] ρ[0] - 8 x^(1 + γ + δ) δ κ g[0] Log[x] p[ 2] q[1] ρ[0] - 8 x^(2 + γ + δ) κ g[1] Log[x] p[2] q[ 1] ρ[0] - 8 x^(2 + γ + δ) δ κ g[1] Log[x] p[ 2] q[1] ρ[0] - 4 x^(2 δ) δ κ g[1] q[0] q[1] ρ[0] - 4 x^(2 δ) δ^2 κ g[1] q[0] q[1] ρ[0] - 2 x^(2 δ) κ g[0] q[1]^2 ρ[0] - 4 x^(2 δ) δ κ g[0] q[1]^2 ρ[0] - 2 x^(2 δ) δ^2 κ g[0] q[1]^2 ρ[0] - 2 x^(1 + 2 δ) κ g[1] q[1]^2 ρ[0] - 4 x^(1 + 2 δ) δ κ g[1] q[1]^2 ρ[0] - 2 x^(1 + 2 δ) δ^2 κ g[1] q[1]^2 ρ[ 0] - 8 x^(γ + δ) κ g[0] p[0] q[2] ρ[ 0] - 8 x^(1 + γ + δ) κ g[1] p[0] q[ 2] ρ[0] - 8 x^(γ + δ) γ κ g[0] Log[x] p[0] q[ 2] ρ[0] - 8 x^(1 + γ + δ) γ κ g[1] Log[x] p[ 0] q[2] ρ[0] - 8 x^(1 + γ + δ) κ g[0] p[1] q[2] ρ[ 0] - 8 x^(2 + γ + δ) κ g[1] p[1] q[ 2] ρ[0] - 8 x^(1 + γ + δ) κ g[0] Log[x] p[1] q[ 2] ρ[0] - 8 x^(1 + γ + δ) γ κ g[0] Log[x] p[ 1] q[2] ρ[0] - 8 x^(2 + γ + δ) κ g[1] Log[x] p[1] q[ 2] ρ[0] - 8 x^(2 + γ + δ) γ κ g[1] Log[x] p[ 1] q[2] ρ[0] - 16 x^(2 + γ + δ) κ g[0] Log[x] p[2] q[ 2] ρ[0] - 16 x^(3 + γ + δ) κ g[1] Log[x] p[2] q[ 2] ρ[0] - 8 x^(2 δ) δ κ g[0] q[0] q[2] ρ[0] - 8 x^(1 + 2 δ) δ κ g[1] q[0] q[2] ρ[ 0] - 8 x^(1 + 2 δ) κ g[0] q[1] q[2] ρ[0] - 8 x^(1 + 2 δ) δ κ g[0] q[1] q[2] ρ[ 0] - 8 x^(2 + 2 δ) κ g[1] q[1] q[2] ρ[0] - 8 x^(2 + 2 δ) δ κ g[1] q[1] q[2] ρ[ 0] - 8 x^(2 + 2 δ) κ g[0] q[2]^2 ρ[0] - 8 x^(3 + 2 δ) κ g[1] q[2]^2 ρ[0] - 2 g[1] ρ[1] - 4 α g[1] ρ[1] - 6 β g[1] ρ[1] - 4 β^2 g[1] ρ[1] - 6 x g[2] ρ[1] - 2 x^(2 γ) κ g[1] p[0]^2 ρ[1] - 4 x^(2 γ) γ κ g[1] Log[x] p[0]^2 ρ[ 1] - 2 x^(2 γ) γ^2 κ g[ 1] Log[x]^2 p[0]^2 ρ[1] - 4 x^(2 γ) κ g[0] p[0] p[1] ρ[1] - 4 x^(1 + 2 γ) κ g[1] p[0] p[1] ρ[1] - 4 x^(2 γ) κ g[0] Log[x] p[0] p[1] ρ[1] - 8 x^(2 γ) γ κ g[0] Log[x] p[0] p[1] ρ[ 1] - 4 x^(1 + 2 γ) κ g[1] Log[x] p[0] p[ 1] ρ[1] - 8 x^(1 + 2 γ) γ κ g[1] Log[x] p[0] p[ 1] ρ[1] - 4 x^(2 γ) γ κ g[0] Log[x]^2 p[0] p[ 1] ρ[1] - 4 x^(2 γ) γ^2 κ g[0] Log[x]^2 p[0] p[ 1] ρ[1] - 4 x^(1 + 2 γ) γ κ g[1] Log[x]^2 p[0] p[ 1] ρ[1] - 4 x^(1 + 2 γ) γ^2 κ g[1] Log[x]^2 p[0] p[ 1] ρ[1] - 2 x^(1 + 2 γ) κ g[0] p[1]^2 ρ[1] - 2 x^(2 + 2 γ) κ g[1] p[1]^2 ρ[1] - 4 x^(1 + 2 γ) κ g[0] Log[x] p[1]^2 ρ[1] - 4 x^(1 + 2 γ) γ κ g[0] Log[ x] p[1]^2 ρ[1] - 4 x^(2 + 2 γ) κ g[1] Log[x] p[1]^2 ρ[1] - 4 x^(2 + 2 γ) γ κ g[1] Log[ x] p[1]^2 ρ[1] - 2 x^(1 + 2 γ) κ g[0] Log[x]^2 p[1]^2 ρ[1] - 4 x^(1 + 2 γ) γ κ g[ 0] Log[x]^2 p[1]^2 ρ[1] - 2 x^(1 + 2 γ) γ^2 κ g[ 0] Log[x]^2 p[1]^2 ρ[1] - 2 x^(2 + 2 γ) κ g[1] Log[x]^2 p[1]^2 ρ[1] - 4 x^(2 + 2 γ) γ κ g[ 1] Log[x]^2 p[1]^2 ρ[1] - 2 x^(2 + 2 γ) γ^2 κ g[ 1] Log[x]^2 p[1]^2 ρ[1] - 8 x^(1 + 2 γ) κ g[0] Log[x] p[0] p[2] ρ[1] - 8 x^(2 + 2 γ) κ g[1] Log[x] p[0] p[2] ρ[1] - 8 x^(1 + 2 γ) γ κ g[0] Log[x]^2 p[0] p[ 2] ρ[1] - 8 x^(2 + 2 γ) γ κ g[1] Log[x]^2 p[0] p[ 2] ρ[1] - 8 x^(2 + 2 γ) κ g[0] Log[x] p[1] p[2] ρ[1] - 8 x^(3 + 2 γ) κ g[1] Log[x] p[1] p[2] ρ[1] - 8 x^(2 + 2 γ) κ g[0] Log[x]^2 p[1] p[2] ρ[ 1] - 8 x^(2 + 2 γ) γ κ g[0] Log[x]^2 p[ 1] p[2] ρ[1] - 8 x^(3 + 2 γ) κ g[1] Log[x]^2 p[1] p[2] ρ[ 1] - 8 x^(3 + 2 γ) γ κ g[1] Log[x]^2 p[ 1] p[2] ρ[1] - 8 x^(3 + 2 γ) κ g[0] Log[x]^2 p[2]^2 ρ[1] - 8 x^(4 + 2 γ) κ g[1] Log[x]^2 p[2]^2 ρ[1] - 4 x^(γ + δ) δ κ g[1] p[0] q[ 0] ρ[1] - 4 x^(γ + δ) γ δ κ g[1] Log[ x] p[0] q[0] ρ[1] - 4 x^(γ + δ) δ κ g[0] p[1] q[ 0] ρ[1] - 4 x^(1 + γ + δ) δ κ g[1] p[1] q[ 0] ρ[1] - 4 x^(γ + δ) δ κ g[0] Log[x] p[1] q[ 0] ρ[1] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[1] q[0] ρ[1] - 4 x^(1 + γ + δ) δ κ g[1] Log[x] p[ 1] q[0] ρ[1] - 4 x^(1 + γ + δ) γ δ κ g[ 1] Log[x] p[1] q[0] ρ[1] - 8 x^(1 + γ + δ) δ κ g[0] Log[x] p[ 2] q[0] ρ[1] - 8 x^(2 + γ + δ) δ κ g[1] Log[x] p[ 2] q[0] ρ[1] - 2 x^(2 δ) δ^2 κ g[1] q[0]^2 ρ[1] - 4 x^(γ + δ) κ g[0] p[0] q[1] ρ[1] - 4 x^(γ + δ) δ κ g[0] p[0] q[ 1] ρ[1] - 4 x^(1 + γ + δ) κ g[1] p[0] q[1] ρ[ 1] - 4 x^(1 + γ + δ) δ κ g[1] p[ 0] q[1] ρ[1] - 4 x^(γ + δ) γ κ g[0] Log[x] p[0] q[ 1] ρ[1] - 4 x^(γ + δ) γ δ κ g[0] Log[ x] p[0] q[1] ρ[1] - 4 x^(1 + γ + δ) γ κ g[1] Log[x] p[ 0] q[1] ρ[1] - 4 x^(1 + γ + δ) γ δ κ g[ 1] Log[x] p[0] q[1] ρ[1] - 4 x^(1 + γ + δ) κ g[0] p[1] q[1] ρ[ 1] - 4 x^(1 + γ + δ) δ κ g[0] p[ 1] q[1] ρ[1] - 4 x^(2 + γ + δ) κ g[1] p[1] q[1] ρ[ 1] - 4 x^(2 + γ + δ) δ κ g[1] p[ 1] q[1] ρ[1] - 4 x^(1 + γ + δ) κ g[0] Log[x] p[1] q[ 1] ρ[1] - 4 x^(1 + γ + δ) γ κ g[0] Log[x] p[ 1] q[1] ρ[1] - 4 x^(1 + γ + δ) δ κ g[0] Log[x] p[ 1] q[1] ρ[1] - 4 x^(1 + γ + δ) γ δ κ g[ 0] Log[x] p[1] q[1] ρ[1] - 4 x^(2 + γ + δ) κ g[1] Log[x] p[1] q[ 1] ρ[1] - 4 x^(2 + γ + δ) γ κ g[1] Log[x] p[ 1] q[1] ρ[1] - 4 x^(2 + γ + δ) δ κ g[1] Log[x] p[ 1] q[1] ρ[1] - 4 x^(2 + γ + δ) γ δ κ g[ 1] Log[x] p[1] q[1] ρ[1] - 8 x^(2 + γ + δ) κ g[0] Log[x] p[2] q[ 1] ρ[1] - 8 x^(2 + γ + δ) δ κ g[0] Log[x] p[ 2] q[1] ρ[1] - 8 x^(3 + γ + δ) κ g[1] Log[x] p[2] q[ 1] ρ[1] - 8 x^(3 + γ + δ) δ κ g[1] Log[x] p[ 2] q[1] ρ[1] - 4 x^(2 δ) δ κ g[0] q[0] q[1] ρ[1] - 4 x^(2 δ) δ^2 κ g[0] q[0] q[1] ρ[1] - 4 x^(1 + 2 δ) δ κ g[1] q[0] q[1] ρ[ 1] - 4 x^(1 + 2 δ) δ^2 κ g[1] q[0] q[ 1] ρ[1] - 2 x^(1 + 2 δ) κ g[0] q[1]^2 ρ[1] - 4 x^(1 + 2 δ) δ κ g[0] q[1]^2 ρ[1] - 2 x^(1 + 2 δ) δ^2 κ g[0] q[1]^2 ρ[ 1] - 2 x^(2 + 2 δ) κ g[1] q[1]^2 ρ[1] - 4 x^(2 + 2 δ) δ κ g[1] q[1]^2 ρ[1] - 2 x^(2 + 2 δ) δ^2 κ g[1] q[1]^2 ρ[ 1] - 8 x^(1 + γ + δ) κ g[0] p[0] q[ 2] ρ[1] - 8 x^(2 + γ + δ) κ g[1] p[0] q[2] ρ[ 1] - 8 x^(1 + γ + δ) γ κ g[0] Log[ x] p[0] q[2] ρ[1] - 8 x^(2 + γ + δ) γ κ g[1] Log[x] p[ 0] q[2] ρ[1] - 8 x^(2 + γ + δ) κ g[0] p[1] q[2] ρ[ 1] - 8 x^(3 + γ + δ) κ g[1] p[1] q[ 2] ρ[1] - 8 x^(2 + γ + δ) κ g[0] Log[x] p[1] q[ 2] ρ[1] - 8 x^(2 + γ + δ) γ κ g[0] Log[x] p[ 1] q[2] ρ[1] - 8 x^(3 + γ + δ) κ g[1] Log[x] p[1] q[ 2] ρ[1] - 8 x^(3 + γ + δ) γ κ g[1] Log[x] p[ 1] q[2] ρ[1] - 16 x^(3 + γ + δ) κ g[0] Log[x] p[2] q[ 2] ρ[1] - 16 x^(4 + γ + δ) κ g[1] Log[x] p[2] q[ 2] ρ[1] - 8 x^(1 + 2 δ) δ κ g[0] q[0] q[2] ρ[ 1] - 8 x^(2 + 2 δ) δ κ g[1] q[0] q[ 2] ρ[1] - 8 x^(2 + 2 δ) κ g[0] q[1] q[2] ρ[1] - 8 x^(2 + 2 δ) δ κ g[0] q[1] q[2] ρ[ 1] - 8 x^(3 + 2 δ) κ g[1] q[1] q[2] ρ[1] - 8 x^(3 + 2 δ) δ κ g[1] q[1] q[2] ρ[ 1] - 8 x^(3 + 2 δ) κ g[0] q[2]^2 ρ[1] - 8 x^(4 + 2 δ) κ g[1] q[2]^2 ρ[1] - 8 g[0] ρ[2] - 4 α g[0] ρ[2] - 16 β g[0] ρ[2] - 12 x g[1] ρ[2] - 16 x β g[1] ρ[2]); 

What I want to do is to organize the expression, i.e., to collect the coefficient of the same expression of x. However, even Collect[exp, x^_] cannot return a good result. How can I deal with it?

$\endgroup$
8
  • 1
    $\begingroup$ What about Log[x] etc.? $\endgroup$ Commented Nov 6 at 11:40
  • $\begingroup$ @MichaelE2 OP wants to collect powers of x treating all other non-power expressions depended on x as part of coefficients. $\endgroup$ Commented Nov 6 at 12:18
  • $\begingroup$ @azerbajdzan I think they want to do something else. It's not really clear, and the are two bits of evidence. One is that Collect[exp, x^_] does not work. Either that means that it fails your interpretation and not all powers are collected; or it means that collecting powers does not "collect the coefficient of the same expression of x" (emphasis mine). Or perhaps OP has another meaning I haven't imagined. $\endgroup$ Commented Nov 6 at 12:25
  • $\begingroup$ @MichaelE2 See my answer how the powers were collected. $\endgroup$ Commented Nov 6 at 12:27
  • $\begingroup$ @azerbajdzan I understand what you want to do. As I said I think that might be wrong (the third term in your output, for instance). See my answer to see the "same expression(s) of x" collected. I don't know what the OP wants, which was the point of my first comment. You may be right; I may be right; or the OP has something else in mind, and we're both wrong (seems less likely, though). $\endgroup$ Commented Nov 6 at 12:33

2 Answers 2

2
$\begingroup$

Maybe this can be done by Collect but in a very sophisticated/cumbersome manner (if I am not proven otherwise) so I guess using Cases is a better choice here.

FullSimplify@ can be removed from the code to speed it up if you do not need the coefficient to be in simplest forms.

(* definition of exp taken from OP *) collectedexp = Total[#*FullSimplify@Total[Cases[Expand@exp, #*q___, All]/#] & /@ Union[Cases[Expand@exp, x^_, All]]] (* veryfication that collected expression is same as original *) Expand[collectedexp] === Expand[exp] 

enter image description here

True 
$\endgroup$
2
$\begingroup$

Here's my interpretation:

ClearAll[FACTOR]; FACTOR /: FACTOR[e1_] FACTOR[e2_] := FACTOR[e1*e2]; FACTOR /: h_[FACTOR[e_]] := FACTOR[h[e]]; FACTOR /: (h : Except[Times | Plus, _Symbol])[FACTOR[e1_], FACTOR[e2_]] /; MemberQ[Attributes[h], NumericFunction] := FACTOR[h[e1, e2]]; FACTOR /: (h : Except[Times | Plus, _Symbol])[FACTOR[e1_], e2_] /; MemberQ[Attributes[h], NumericFunction] := FACTOR[h[e1, e2]]; FACTOR /: (h : Except[Times | Plus, _Symbol])[e1_, FACTOR[e2_]] /; MemberQ[Attributes[h], NumericFunction] := FACTOR[h[e1, e2]]; Collect[ Expand[ (* may be unneccessary *) 3 + 4 x + a 2^x + 3 x^3 BesselJ[x, x^2] +(* added test cases *) exp /. x -> FACTOR[x] ] , _FACTOR , Hold (* optional way to gather coefficient factors *) ] % /. FACTOR -> Identity // ReleaseHold (* put in normal form *) (* Hold[3] + FACTOR[x^3 BesselJ[x, x^2]] Hold[3] + FACTOR[x] Hold[4] + FACTOR[2^x] Hold[a] + FACTOR[x^(-2 + \[Alpha] + \[Beta] + 2 \[Gamma])] Hold[-2 \[Kappa] g[0] p[0]^2 \[Rho][0]] + FACTOR[x^(-2 + \[Alpha] + \[Beta] + 2 \[Gamma]) Log[x]] Hold[-4 \[Gamma] \[Kappa] g[0] p[0]^2 \[Rho][0]] +... *) (* 3 + 2^x a + 4 x + 3 x^3 BesselJ[x, x^2] - 2 x^(-2 + \[Alpha] + \[Beta] + 2 \[Gamma]) \[Kappa] g[0] p[ 0]^2 \[Rho][0] - 4 x^(-2 + \[Alpha] + \[Beta] + 2 \[Gamma]) \[Gamma] \[Kappa] g[ 0] Log[x] p[0]^2 \[Rho][0] -... *) 
$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.