Mathematical basics for working with Turing?

Hello everyone,

I have been working with Turing on small models for a while now but still many times I don’t understand errors and concepts which are embedded in Turing functioning. For example intuition for forward or reverse diff, singularity error, Task exception errors while solving etc. I was wondering if there are resources available to look into whats actually happening in background rather than just getting results from Turing?

So if you guys know any link or book which can be beneficial for same.

Thank you :slight_smile:

For autodiff, I recommend having a careful read through the ChainRules docs, which are IMO the closest thing we have to a modern autodiff reference text.

For the rest, the errors aren’t Turing-specific, so there is no such resource. Searching each of the errors will turn up explanations as to the cause. e.g. singular exception indicates a matrix is singular (has at least one eigenvalue that is 0). It’s generally raised when performing a solve that requires the matrix be nonsingular. Task exception is a rather uninformative error that is raised when sampling multiple chains with MCMCThreads. When that happens, it’s generally best to sample a single chain while debugging, then go back to multiple chains.