m-a-d-n-e-s-s/madness — pull request #100 by richford (2014-09-09 21:30:10+00:00)
Title: Performance enhancements for inner_ext() methods

This pull request incorporates a few changes that @robertjharrison suggested to speed up the inner_ext methods:
* Most importantly, it starts refinement at the initial level instead of at the leaf nodes of the host function
* It allows the user to request no refinement below the leaf nodes (assuming they know something about the behavior of the provided function functor interface.
* It now uses the raw threshold instead of truncate_tol(thresh, key)

Note that inner_ext now traverses the tree of the "host" function in redundant form. By default it calls undo_redundant after computing the inner product, but if the user is going to be doing a bunch of inner products (e.g. in the pseudo-potential code) they're going to want to set keep_redundant to true and then manually undo_redundant when they're finished.