ODE solver using Rosenbrock-W schemes These methods are intended for problems with well-separated time scales, especially when a slow scale is strongly
nonlinear such that it is expensive to solve with a fully implicit method. The user should provide the stiff part
of the equation using TSSetIFunction() and the non-stiff part with TSSetRHSFunction().

Notes

This method currently only works with autonomous ODE and DAE.

Developer notes

Rosenbrock-W methods are typically specified for autonomous ODE

udot = f(u)

by the stage equations

k_i = h f(u_0 + sum_j alpha_ij k_j) + h J sum_j gamma_ij k_j

and step completion formula

u_1 = u_0 + sum_j b_j k_j

with step size h and coefficients alpha_ij, gamma_ij, and b_i. Implementing the method in this form would require f(u)
and the Jacobian J to be available, in addition to the shifted matrix I - h gamma_ii J. Following Hairer and Wanner,
we define new variables for the stage equations

y_i = gamma_ij k_j

The k_j can be recovered because Gamma is invertible. Let C be the lower triangular part of Gamma^{-1} and define

Note that Gamma^{-1} is lower triangular. With this definition of Ydot in terms of known quantities and the current
stage y_i, the stage equations reduce to performing one Newton step (typically with a lagged Jacobian) on the
equation