stan-dev / math

The Stan Math Library is a C++ template library for automatic differentiation of any order using forward, reverse, and mixed modes. It includes a range of built-in functions for probabilistic modeling, linear algebra, and equation solving.
https://mc-stan.org
BSD 3-Clause "New" or "Revised" License
752 stars 188 forks source link

Update the Users Guide with "Getting Started" section #1883

Open SteveBronder opened 4 years ago

SteveBronder commented 4 years ago

Description

Our code base has gotten more complicated and we should probably add a new section, or update the Developer Guide so we can give a rundown for people interested in constributing.

Outline might be something like:

Then links to the ad testing framework and common gotchas like working with size zero matrices. Anything else? Or maybe it's time to update the stan math paper?

Current Version:

v3.2.0

bob-carpenter commented 4 years ago

We could write something new like the Stan math paper, but I'd love to have static matrices and adjoint methods for ODEs before that.

But we need more of a living doc to onboard new devs.

There are all sorts of things they need to know, depending on which part of the lib they want to interact with. I'm not sure even where to being with common gotchas---it's C++, so it's just gotchas all the way down, like different compiler optimization settings changing the way code works.

The main thing that's confusing is the arena-based memory and managing the multiple stacks and the nesting.

syclik commented 4 years ago

Thanks for writing that down! Yes, we should update it with anything that improves it... and prune out-of-date material.