New formula for TAO.

TAO is a toolkit for optimization that builds upon PETSc.

Closes #335.