Skip to content

Commit fcdc83f

Browse files
authored
Update README.md for New Era (#112)
* Update README.md * Update README.md Co-Authored-By: Nick Robinson <npr251@gmail.com> * Update README.md Co-Authored-By: Nick Robinson <npr251@gmail.com> * Update README.md Co-Authored-By: Nick Robinson <npr251@gmail.com> * Update README.md Co-Authored-By: Nick Robinson <npr251@gmail.com> * Apply suggestions from code review
1 parent 87ac641 commit fcdc83f

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

README.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,25 @@
55
[![Travis](https://travis-ci.org/JuliaDiff/ChainRules.jl.svg?branch=master)](https://travis-ci.org/JuliaDiff/ChainRules.jl)
66
[![Coveralls](https://coveralls.io/repos/github/JuliaDiff/ChainRules.jl/badge.svg?branch=master)](https://coveralls.io/github/JuliaDiff/ChainRules.jl?branch=master)
77

8-
**Docs:*
8+
**Docs:**
99
[![](https://img.shields.io/badge/docs-master-blue.svg)](https://JuliaDiff.github.io/ChainRules.jl/dev)
1010
[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://JuliaDiff.github.io/ChainRules.jl/stable)
1111

1212
The ChainRules package provides a variety of common utilities that can be used by downstream automatic differentiation (AD) tools to define and execute forward-, reverse-, and mixed-mode primitives.
1313

14-
This package is a WIP; the framework is essentially there, but there are a bunch of TODOs, virtually no tests, etc. PRs welcome! Documentation is incoming, which should help if you'd like to contribute.
14+
The core logic of ChainRules is implemented in [ChainRulesCore.jl](https://github.com/JuliaDiff/ChainRulesCore.jl).
15+
To add ChainRules support to your package, by defining new `rrule`s or `frules`, you only need to depend on the very light-weight package ChainRulesCore.jl.
16+
This repository contains ChainRules.jl, which is what people actually use directly.
17+
ChainRules reexports all the ChainRulesCore functionality, and has all the rules for the Julia standard library.
18+
and has all the rules for the julia standard library.
1519

16-
Here are some of the basic goals for the package:
1720

18-
- First-class support for complex differentiation via Wirtinger derivatives.
21+
Here are some of the core features of the package:
1922

2023
- Mixed-mode composability without being coupled to a specific AD implementation.
21-
24+
- Extensible rules: package authors can add rules (and thus AD support) to the functions in their packages, without needing to make a PR to ChainRules.jl .
25+
- Control-inverted design: rule authors can fully specify derivatives in a concise manner that supports computational efficiencies, so we will only compute as much as the user requests.
2226
- Propagation semantics built-in, with default implementations that allow rule authors to easily opt-in to common optimizations (fusion, increment elision, memoization, etc.).
2327

24-
- Control-inverted design: rule authors can fully specify derivatives in a concise manner while naturally allowing the caller to compute only what they need.
2528

2629
The ChainRules source code follows the [YASGuide](https://github.com/jrevels/YASGuide).

0 commit comments

Comments
 (0)