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.

* Conversion to UFL
  - Skipping factorization in tensor representation, does it matter?
    Check speed against old FFC.
  - Clean out old unused code (check coverage)
    -- ffc/common/exceptions.py
    -- ffc/compiler/obsolete/*
    -- ffc/fem/mapping
  
* Manual
  - The introduction is currently empty
  - Write about restrictions

# Should this also be in UFL?
* Projections
  - Reimplement (worked before)
  - Add to manual

* Optimization
  - Improve speed of optimisation for quadrature code (move parts to C++?)
  - Re-implement for tensor contraction (worked before)
  - Write about optimizations in manual
  - Add to man page
  - Fix output for compiler stage 3. This only applies for tensor
    representation

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

* 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

* UFC, Implement missing functions
  - evaluate_basis_all()
  - evaluate_basis_derivatives_all()
  - evaluate_dofs()
  - num_entity_dofs()
  - tabulate_entity_dofs()

* Missing support for UFL functionality
  - Restrictions of function spaces to subdomains
  - Restrictions of function spaces to Cells, this works for restrictions
    to facets.
    e.g., an element defined on a tetrahedron can be restricted to triangle:
      tetrahedron --> triangle
    If it will be useful, we also need to support restrictions like:
      tetrahedron --> tetrahedron
      tetrahedron --> interval
      tetrahedron --> vertex
    we just need to agree on the interpretation.


* Quad elements
  - Isoparametric mapping

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