-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODO
30 lines (30 loc) · 1.26 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- Sparse matrices
- Blocked or block-diagonal matrices
- Optimizations for the optimizer:
- Experiment with stochastic (MCMC-style / tempered) search
algorithms
- Add clever rewrite rules to reduce required search depth
(could be done by looking for multistep rewrites that tend
to occur on the solution path)
- Optimizer should 'show its work' and return a list of
rewrite rules applied
- implement http://en.wikipedia.org/wiki/Matrix_chain_multiplication
- Other matrix operations (with appropriate optimizer rewrite rules):
- decompositions: eigenvalue, SVD, QR, LU
- matrix derivatives
- Kronecker and Hadamard (pointwise) products
- "solve" functionality for implicitly defined variables
(e.g. solve for X,D in AX=XD, with D diag, should find
eigendecomposition of A)
- Other matrix properties:
- unitary
- stochastic
- rotation matrices (always commute with each other)
- real/complex
- singular / invertible
- Code generator should be smarter about parenthesis/order of
operations.
- Explicit consideration of numeric stability (currently we just
assume that fewer FLOPs is better). Give each matrix a condition
number, then calculate stability of the resulting expression.
- Web interface for easy public use