I would like to use a complicated function containing DifferenceRoot
as a replacement rule, but somehow it evaluates only in Table
. What am I doing wrong?
The code for the table:
\[ScriptH][k_] := DifferenceRoot[Function[{\[FormalY], \[FormalN]}, {-(1 + k)^2 + (3 + 4 k) \[FormalN] - 4 \[FormalN]^2 - 2 (-k - 1 + \[FormalN]) (-k/2 + \[FormalN]) (-k - 1 + 2 \[FormalN]) \[FormalY][\[FormalN]] + 2 (-k - 1 + \[FormalN]) (-k/2 + \[FormalN]) (-k - 1 + 2 \[FormalN]) \[FormalY][1 + \[FormalN]] == 0, \[FormalY][1] == 0}]];
Flatten[Table[Table[f[Δ, Δ - k] -> (1/12288 (Gamma[Δ + 2] Gamma[s + 3/2])/(Gamma[Δ + 3/2] Gamma[s + 1]) ((Δ - s) (Δ + s + 1))/((Δ - s - 1) (Δ + s)) /. {s -> Δ - k}) ((6 HarmonicNumber[Δ - k/2, 2] - 6 (HarmonicNumber[Δ + 1] - HarmonicNumber[Δ - k]) (HarmonicNumber[-(k/2) + Δ] - HarmonicNumber[k/2 - 1])) + 12 Sum[\[ScriptH][k][j + 1]/(Δ + 1 - j), {j, 0,k/2 - 1}] + 12 Sum[\[ScriptH][k][k - j + 1]/(Δ + 1 - j), {j,k/2 + 1, k}] + 12/((Δ + 1 - k/2) k) + Sum[12/(k - 2 i + 2) 1/(Δ + 2 - i), {i, k/2}]), {Δ, k, 4}], {k, 2, 2, 2}]] // FullSimplify
(*{f[2,0]->0,f[3,1]->5/7168,f[4,2]->5/3072}*)
I could use the results of the table as a replacement rule, but I need the range of $\Delta$ and $k$ to reach at least $150$ (instead of $4$ and $2$ in the example above), and it takes forever to generate the table. So instead I would like to have a replacement rule involving only the function:
testrule = {f[Δ_, s_] -> (1/12288 (Gamma[Δ + 2] Gamma[s + 3/2])/(Gamma[Δ + 3/2] Gamma[s + 1]) ((Δ - s) (Δ + s + 1))/((Δ - s - 1) (Δ + s))) ((6 HarmonicNumber[Δ - k/2, 2] - 6 (HarmonicNumber[Δ + 1] - HarmonicNumber[Δ - k]) (HarmonicNumber[-(k/2) + Δ] - HarmonicNumber[k/2 - 1])) + 12 Sum[\[ScriptH][k][j + 1]/(Δ + 1 - j), {j, 0, k/2 - 1}] + 12 Sum[\[ScriptH][k][k - j + 1]/(Δ + 1 - j), {j,k/2 + 1, k}] + 12/((Δ + 1 - k/2) k) + Sum[12/(k - 2 i + 2) 1/(Δ + 2 - i), {i, k/2}]) /. {k -> Δ - s}};
Flatten[Table[Table[f[Δ, Δ - k], {Δ, k,4}], {k, 2, 2, 2}]] /. testrule
(*{1/2560(-2+12 (-(1/16)+DifferenceRoot[Function[{\[FormalY],\[FormalN]},{(-4+\[FormalN]) (-2+\[FormalN]) \[FormalY][\[FormalN]]+(-11+10 \[FormalN]-2 \[FormalN]^2) \[FormalY][1+\[FormalN]]+(-3+\[FormalN]) (-1+\[FormalN]) \[FormalY][2+\[FormalN]]\[Equal]0,\[FormalY][0]\[Equal]0,\[FormalY][1]\[Equal]1/16}]][2])),1/1792(-(1/4)+12 (-(1/20)+DifferenceRoot[Function[{\[FormalY],\[FormalN]},{(-5+\[FormalN]) (-2+\[FormalN]) \[FormalY][\[FormalN]]+(-14+12 \[FormalN]-2 \[FormalN]^2) \[FormalY][1+\[FormalN]]+(-4+\[FormalN]) (-1+\[FormalN]) \[FormalY][2+\[FormalN]]\[Equal]0,\[FormalY][0]\[Equal]0,\[FormalY][1]\[Equal]1/20}]][2])),1/69125 (21/20+12 (-(1/24)+DifferenceRoot[Function[{\[FormalY],\[FormalN]},{(-6+\[FormalN]) (-2+\[FormalN]) \[FormalY][\[FormalN]]+(-17+14 \[FormalN]-2 \[FormalN]^2) \[FormalY][1+\[FormalN]]+(-5+\[FormalN]) (-1+\[FormalN]) \[FormalY][2+\[FormalN]]\[Equal]0,\[FormalY][0]\[Equal]0,\[FormalY][1]\[Equal]1/24}]][2]))}*)
But in this case, the DifferenceRoot
does not get evaluated. How can I fix that?