Skip to content

Commit

Permalink
update tutorial page
Browse files Browse the repository at this point in the history
  • Loading branch information
HDembinski committed Jun 24, 2020
1 parent b82ef78 commit 96325a8
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 43 deletions.
3 changes: 1 addition & 2 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@ How to make a release
- create a branch on the master, called release_<version>, make release edits there
- increase version number in iminuit/version.py
- update doc/changelog.rst
- check that new tutorials are listed in the tutorials section of the docs
- run `make integration` to do integration tests (if these fail, add tests to iminuit!)
- run `.ci/download_azure_artifacts.py` to download all wheels from the latest pipeline
- run `python -m twine upload dist/*` if everything looks ok
(missing files can be uploaded later, but existing files cannot be overridden!)
- merge release branch to master (do not squash!)
- merge release branch to master
- create release on Github
- conda-forge should pick this up automatically and generate conda packages
43 changes: 2 additions & 41 deletions doc/tutorials.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,45 +5,6 @@
Tutorials
=========

All the tutorials are in tutorial directory. You can view them online, too.
All the tutorials are in tutorial directory of the iminuit repository and `can be viewed online <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/>`_.

`Basic tutorial <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/basic_tutorial.ipynb>`_
---------------------------------------------------------------------------------------------------------------------------------

Covers the basics of using iminuit.

`iminuit and automatic differentiation with JAX <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/automatic_differentiation.ipynb>`_
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

How to compute function gradients for iminuit with jax_ and accelerate Python code with JAX's JIT compiler. Spoiler: a **32x** speed up over plain numpy is achieved. Also discusses how to do a least-squares fit with data that has uncertainties in *x* and *y*.

`How to accelerate and parallelize cost functions with Numba <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/jit_compilation_andparallelization_with_numba.ipynb>`_
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Shows how cost functions can be accelerated by Just-In-Time compilation with numba, and how important it is to optimize the most time-consuming hot spot.

`iminuit and an external minimizer <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/iminuit_and_external_minimizer.ipynb>`_
--------------------------------------------------------------------------------------------------------------------------------------------------------------

iminuit can run the HESSE algorithm on any point of the cost function. This means one can effectively combine iminuit with other minimizers: let the other minimizer find the minimum and only run iminuit to compute the parameter uncertainties. This does not work with MINOS, which requires that MIGRAD is run first.

`How to write a generic least-squares cost function <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/generic_least_squares_function.ipynb>`_
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Explains how iminuit reads function signatures and how the tooling can be used in a generic least-squares cost function that forwards the signature of the fitted model to iminuit.

`Uncertainty computation in iminuit <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/hesse_and_minos.ipynb>`_
------------------------------------------------------------------------------------------------------------------------------------------------

This is less of a tutorial and more of a write-up on how MINUIT (and thus iminuit) compute uncertainties from likelihood functions.

Outdated Cython tutorials
-------------------------

The following two tutorials are outdated. Users who want to speed up their fits should try the just-in-time compilers provided by numba_ or jax_ in CPython or use iminuit in PyPy to accelerate the computation. This is much simpler than using Cython and may achieve even better performance.

- `Advanced tutorial <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/advanced_tutorial.ipynb>`_.
Shows how to speed up the computation of the cost function with Cython.

- `Hard Core Cython tutorial <http://nbviewer.ipython.org/urls/raw.github.com/scikit-hep/iminuit/master/tutorial/hard_core_tutorial.ipynb>`_.
Goes into more detail on how to use Cython.
It is recommended to start with the basic tutorial. All other tutorials are optional, for those who want to know more about specific aspects.

0 comments on commit 96325a8

Please sign in to comment.