Skip to content

Commit 8cd01f2

Browse files
authored
Correct headings for FastDifferentiation.jl GSoC (#2255)
1 parent 9602859 commit 8cd01f2

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

jsoc/gsoc/fast_differentiation.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
# FastDifferentiation.jl – Summer of Code
2+
13
[FastDifferentiation.jl](https://github.com/brianguenter/FastDifferentiation.jl) is a Julia package for computing very efficient symbolic derivatives of Julia functions and for compiling the derivatives into efficient executables. It can differentiate much larger expressions than other symbolic systems, such as Symbolics.jl, and the resulting derivatives are also much more efficient, rivaling hand computed derivatives in some cases (see the website for benchmark examples).
24

35
[FastDifferentiation.jl](https://github.com/brianguenter/FastDifferentiation.jl) also computes the exact sparsity patterns of Jacobians and Hessians (and any other order derivative) and detects common terms in derivatives of Rⁿ->Rᵐ functions for large n,m. As a consequence computation time of Jacobians generally scales sub-linearly as a function of n,m.
46

5-
67
However, the current system has several weaknesses. It is not currently possible to differentiate through conditional expressions so many commonly used Julia functions cannot be differentiated.
78
Derivatives of any order can be computed but orders above 3 or 4 become increasingly inefficient. These projects aim to address these weaknesse.
89

9-
# Add Conditionals to FastDifferentiation.jl
10+
## Add Conditionals to FastDifferentiation.jl
1011

1112
FastDifferentiation supports conditionals in function definitions but cannot yet compute derivatives of functions with conditionals:
1213
```julia
@@ -29,7 +30,7 @@ ERROR: Your expression contained a if_else expression. FastDifferentiation does
2930

3031
**Mentor:** [BrianGuenter](https://github.com/brianguenter/FastDifferentiation.jl)
3132

32-
# Add higher order derivatives to FastDifferentiation.jl
33+
## Add higher order derivatives to FastDifferentiation.jl
3334
FastDifferentiation.jl produces extremely efficient first derivatives. But, higher order derivatives become increasingly less efficient since they are computed by repeatedly applying the differentiation algorithm.
3435

3536
The fundamental cause of this behavior is that repeated higher order intermediate derivative terms are not detected and reused; instead they are computed from scratch. The goal of this project is to extend the FastDifferentiation algorithm to detect these common higher order terms and to reuse, rather than recompute them.
@@ -44,7 +45,7 @@ This will require a rewrite of the graph factorization code as well as some theo
4445

4546
**Mentor:** [BrianGuenter](https://github.com/brianguenter/FastDifferentiation.jl)
4647

47-
# Integrate FastDifferentiation.jl into Symbolics.jl
48+
## Integrate FastDifferentiation.jl into Symbolics.jl
4849

4950
FastDifferentiation.jl uses a new symbolic algorithm for automatic differentiation that can be orders of magnitude faster than conventional symbolic differentiation methods. Symoblics.jl could compute derivatives much faster using the FastDifferentiation algorithm. However implementation and data structure differences between the two systems make it difficult to add FastDifferentiation capabilities to Symbolics.jl.
5051

@@ -60,4 +61,4 @@ See [this](https://github.com/brianguenter/Proposals) page for a more detailed d
6061

6162
**Expected Outcome:** Well-tested and well-documented integration of FastDifferentiation into Symbolics.jl.
6263

63-
**Mentor:** [BrianGuenter](https://github.com/brianguenter/FastDifferentiation.jl)
64+
**Mentor:** [BrianGuenter](https://github.com/brianguenter/FastDifferentiation.jl)

0 commit comments

Comments
 (0)