I was going through Rodas4 solver source code and found that there are 2 different implementations of this solver - *Rodas4Cache* and *Rodas4ConstantCache*. Is there any principal difference between these 2 variants?

It looks that for *Rodas4ConstantCache* (ODE case) the *tgrad* argument appears to be unused. Whereas for *Rodas4Cache* (DAE case which can be represented by ODE in mass matrix form) *tgrad* is called inside function *calc_tderivative* which in turn is called by function *calc_rosenbrock_differentiation*. There is selective use of *tgrad* argument. Was it designed to be like that? Could be that i am getting it wrong.

Will apprecate your input. @ChrisRackauckas