# ElementaryRischDEX2(R, F)¶

Risch differential equation, wrapper for extended version.

do_param_RDE: (F, F, List F, Symbol, List Kernel F) -> Union(Record(ratpart: F, coeffs: Vector F), failed)

`do_param_RDE(f, h, lg, x, lk)` solves parametric Risch differential equation, that is returns `[y, [c1, ..., ck]]` such that dy/dx + `n` df/dx `y` + `c1` `g1` + … `cn` `gn` = `h` where `y` is in the is in field generated by `lk` and `ci` are constants or “failed” if there is no solution.

do_risch_DE: (F, F, Symbol, List Kernel F) -> Record(ans: F, right: F, primpart: F, sol?: Boolean)

`do_risch_DE(f, g, x, lk)` returns `[y, h, 0, b]` such that `dy/dx + df/dx y = h` and `b := h = g`. The equation `dy/dx + df/dx y = g` has no solution in the field generated by `lk` if `h \~~= g` (`y` is a partial solution in that case).

risch_de_ext: (Integer, F, F, Symbol) -> Record(ans: F, right: F, primpart: F, sol?: Boolean)

`risch_de_ext(n, f, g, x)` returns `[y, h, p, b]` such that `dy/dx + n df/dx y + exp(-nf)dp/dx = h` and `b := h = g`. The equation `dy/dx + n df/dx y = g` has no solution if `h \~~= g` (`y` is a partial solution in that case).