This file lists TODO items for FFC. As usual, the priority depends
on the current interests of the various FFC developers. To edit this
file, it is convenient to install org-mode in Emacs.

* Fix bug in RT1
  - RT elements work for q = 0, 2, 3 but not for q = 1

* Fix bug in BDFM
  - Broken after mapping of reference element moved to FIAT

* Write introduction in manual
  - The introduction is currently empty

* Write about a, L, M in manual
  - Missing in current manual
  - Add example of computing functional

* Projections
  - Reimplement (worked before)
  - Add to manual

* Optimization
  - Reimplement (worked before)
  - Write about optimizations in manual
  - Add to man page

* BLAS mode
  - Reimplement level 2 BLAS (worked before)
  - Implement level 3 BLAS
  - Generate loops for geometry tensor
  - Add to man page

* BDM/RT elements in 3D
  - Add missing pieces to get BDM and RT elements work
  in 3D (they mostly work in 2D)

* Optionally generate a pair of .h and .cpp files
  - FFC currently only generates a single .h file. The UFC
  utils provides a simple way to organize the code in .cpp
  and or .h files, but FFC does not yet use this.
  - Add to man page

* Move arguments language and representation to options dictionary

* Display flop count
  - The flop count for evaluation of the element tensor should
  be printed during compilation

* Generate loops for geometry tensor in BLAS mode
  - It should be possible to reduce the size of the generated code
  for complicated forms by generating loops for the computation of
  the entries of the geometry tensor

* 1D elements

* QuadratureElement
  - Use array w for values and quadrature points

* UFL
  - Extend FFC form language
  - Differentiation of forms

* Time derivatives
  - Dt(u)

* Quad elements
  - Isoparametric mapping

* Tensor-valued functions

* Fix all FIXMEs
  - There are a few of these: find src/ffc -name '*.py' | xargs grep FIXME
