http://n.ethz.ch/~mmoeller/fms/index_e.html