clad icon indicating copy to clipboard operation
clad copied to clipboard

Clad Documentation Hackathon.

Open parth-07 opened this issue 2 years ago • 7 comments

This issue is created to keep track of progress and responsibilities for the Clad documentation hackathon.

The following concepts along with their person-in-charge are as follows: '?' is used if no person is assigned responsibility yet for the particular task.

  • [x] Introduction to Clad (Ioana) (most of it can be taken directly from GitHub readme)
  • [ ] Introduction to automatic differentiation (Ioana)
  • [x] Clad installation and Usage (Ioana) (most of it can be taken directly from GitHub readme)
  • [ ] Using Clad
    • [x] Forward mode differentiation (Parth) (most of it can be taken directly from GitHub readme)
    • [ ] Reverse mode differentiation (Baidyanath) (most of it can be taken directly from GitHub readme)
    • [x] Hessian computation (Parth)
    • [x] Jacobian computation (Ioana)
    • [x] Array support (Baidyanath)
    • [x] Functor and lamba support (Parth)
    • [x] Differentiable Class types (Parth)
    • [x] Custom Derivatives (Parth)
  • [ ] Numerical differentiation fallback (Garima)
  • [ ] Error Estimation (Garima)
  • [ ] Debug Mode (Parth)
  • [ ] Core Concepts
    • [ ] How Clad works (Vassil)
    • [ ] The forward and reverse mode in detail (?)
    • [ ] Explain how different derived function types are computed (?)
    • [ ] Derivative types (Parth)
    • [x] Pushforward and Pullback support (Parth)
    • [ ] Custom Derivatives and why we need them. (Parth)
    • [ ] Differentiable class type concepts (Parth)
    • [ ] Error Estimation core concepts (Garima)
    • [ ] Numerical differentiation core concepts (Garima)
  • [ ] C++ features support and limitations (?)
  • [ ] Cuda Support (Baidyanath)
  • [ ] Clad API
    • [ ] clad::differentiate (?)
    • [ ] clad::gradient (?)
    • [ ] clad::hessian (?)
    • [ ] clad::jacobian (?)
    • [ ] clad::estimate_error (Garima)
  • [ ] Detailed Demos (all)
  • [ ] Developer's guide section
    • [x] Add link to clad internal doxygen documentation (?)
    • [ ] Add resources for getting started with Clang frontend transformation and automatic differentiation. (Vassil)
    • [ ] Add instructions and tips to set up the clad development environment (?)
  • [ ] FAQ (?)
  • [ ] Improve clad internal doxygen documentation website design (?)
  • [x] Add 'CONTRIBUTING.md` file (Vassil)

All of these items should go on the clad readthedocs website. For GitHub readme, we can reuse the introduction and add a link to a few other necessary sections that takes to the readthedocs website.

This document can be used as a rough outline to follow for the documentation.

parth-07 avatar Mar 21 '22 18:03 parth-07

Hi Parth! thanks for this issue, can you also just mark what goes in the readme and what in readthedocs? Thanks!

grimmmyshini avatar Mar 22 '22 08:03 grimmmyshini

I signed up for a bunch of items.

vgvassilev avatar Mar 22 '22 08:03 vgvassilev

Hi everyone, restructured the readme a little here: https://github.com/grimmmyshini/clad/tree/docs-readme-restructure#clad.

Things left to do in the README:

  1. Fill out the "How to contribute" section.
  2. Fill out info for clad hessian and jacobian modes.
  3. fill out the information in what can be differentiated. (Maybe @parth-07 can add stuff here?)
  4. Fill out the links to readthedocs.

grimmmyshini avatar Mar 22 '22 15:03 grimmmyshini

can you also just mark what goes in the readme and what in readthedocs?

All of these tasks should go in the readthedocs. I will mention this in the issue as well. For many items, we can just reuse the existing material from GitHub Readme and already existing material from readthedocs (but it needs to be restructured because we are also changing the layout).

parth-07 avatar Mar 22 '22 16:03 parth-07

fill out the information in what can be differentiated.

I am not sure if we should keep this section in the GitHub Readme. We want the GitHub readme to be very minimal, right?

parth-07 avatar Mar 22 '22 17:03 parth-07

fill out the information in what can be differentiated.

I am not sure if we should keep this section in the GitHub Readme. We want the GitHub readme to be very minimal, right?

Yes, but I think we can just add a line there directing to a more elaborate list of what can be differentiated?

grimmmyshini avatar Mar 23 '22 09:03 grimmmyshini

Yes, but I think we can just add a line there directing to a more elaborate list of what can be differentiated?

Yes, this sounds like a good idea.

parth-07 avatar Mar 23 '22 19:03 parth-07